nl:: Weave:: Profiles:: Security:: CASE:: WeaveCASEAuthDelegate
Bu, soyut bir sınıftır.
#include <src/lib/profiles/security/WeaveCASE.h>
CASE oturumu kurulurken kimlik doğrulama işlemleri için yetki verilen soyut arayüz.
Özet
Devralma
Doğrudan Bilinen Alt Sınıflar: nl::Weave::DeviceManager::WeaveDeviceManager
Herkese açık işlevler |
|
---|---|
BeginValidation(const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
|
virtual WEAVE_ERROR
Sertifika doğrulamasının başında çağrılır.
|
EncodeNodeCertInfo(const BeginSessionContext & msgCtx, TLVWriter & writer)=0
|
virtual WEAVE_ERROR
Yerel düğüm için CASE Sertifika Bilgilerini kodlayın.
|
EncodeNodePayload(const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
|
virtual WEAVE_ERROR
Eşe gönderilen CASE mesajına dahil edilecek uygulamaya özel bir yük kodlayın.
|
EndValidation(const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
|
virtual void
Sertifika doğrulamasının sonunda çağrılır.
|
GenerateNodeSignature(const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer, uint64_t tag)=0
|
virtual WEAVE_ERROR
Yerel düğümün özel anahtarını kullanarak bir imza oluşturun.
|
HandleValidationResult(const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
|
virtual WEAVE_ERROR
Sertifika doğrulamasının sonucuyla çağrıldı.
|
OnPeerCertsLoaded(const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
|
virtual WEAVE_ERROR
Eşin sertifikaları yüklendikten sonra çağrılır.
|
Herkese açık işlevler
BeginValidation
virtual WEAVE_ERROR BeginValidation( const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet )=0
Sertifika doğrulamasının başında çağrılır.
Uygulamaların, sağlanan WeaveCertificateSet nesnesini yaklaşan sertifika doğrulamasını işlemek için yeterli kaynakla başlatması gerekir. Bu sırada Uygulamalar, güvenilir kök veya CA sertifikalarını sertifika kümesine yükleyebilir veya OnPeerCertsLoaded() çağrılana kadar bekleyebilir.
Sertifika kümesine yüklenen her sertifika, yükleme işlevi tarafından varsayılan bir sertifika türü atanır. Uygulamalar, doğrulama sırasında sertifikanın doğru şekilde işlenmesini ve CASE etkileşimleri için WeaveAuthMode'un doğru atanmasını sağlamak amacıyla bu türleri gerektiği şekilde düzenlemelidir.
Sağlanan doğrulama bağlamı, bir dizi varsayılan doğrulama ölçütüyle başlatılır. Bu ölçütler, uygulama gerektiğinde değişebilir. Uygulama, EffectiveTime alanını veya sertifika ömür boyu doğrulamasını engellemek için uygun doğrulama işaretlerini ayarlamalıdır.
Ayrıntılı doğrulama sonuçları istenirse uygulama, CertationResults ve CertValidationLen alanlarını başlatabilir.
Karşılık gelen EndValidation() işlevi çağrılana kadar, BeginValidation() esnasında tahsis edilen kaynakların korunması için bazı uygulamalar gereklidir. Uygulamalarda, BeginValidation() işlevine yapılan her başarılı çağrı için EndValidation() yönteminin tam olarak bir kez çağrılacağı garanti edilir.
EncodeNodeCertInfo
virtual WEAVE_ERROR EncodeNodeCertInfo( const BeginSessionContext & msgCtx, TLVWriter & writer )=0
Yerel düğüm için CASE Sertifika Bilgilerini kodlayın.
Uygulamalar, yerel düğümün CASE CertificateInfo yapısının varsayılan kodlamasını geçersiz kılmak için bu çağrıyı kullanabilir. Çağrı yapıldığında, uygulama en azından yerel düğümün varlık sertifikasını içeren bir CertificateInfo yapısı yazmalıdır. Uygulama, isteğe bağlı olarak bir dizi ilgili sertifika ve/veya güven çapasını içerebilir.
EncodeNodePayload
virtual WEAVE_ERROR EncodeNodePayload( const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen )
Eşe gönderilen CASE mesajına dahil edilecek uygulamaya özel bir yük kodlayın.
Bu yöntemi uygulamak isteğe bağlıdır. Varsayılan uygulama sıfır uzunlukta bir yük döndürür.
EndValidation
virtual void EndValidation( const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet )=0
Sertifika doğrulamasının sonunda çağrılır.
Uygulamalar, sertifika doğrulaması tamamlandıktan sonra temizlik yapmak için bu çağrıyı kullanabilir. Uygulamalarda, BeginValidation() işlevine yapılan her başarılı çağrı için EndValidation() yönteminin tam olarak bir kez çağrılacağı garanti edilir.
GenerateNodeSignature
virtual WEAVE_ERROR GenerateNodeSignature( const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen, TLVWriter & writer, uint64_t tag )=0
Yerel düğümün özel anahtarını kullanarak bir imza oluşturun.
Çağrıldığında, uygulamaların belirli bir karma değeri üzerinde düğümün özel anahtarını kullanarak bir imza hesaplaması gerekir. Ardından, oluşturulan imza, belirtilen etiket kullanılarak sağlanan TLV'ye yazma için CASE ECDSASignature yapısı biçiminde yazılmalıdır.
Düğümün özel anahtarının yerel bir arabellekte tutulduğu durumlarda, GenerateAndEncodeWeaveECDSASignature() yardımcı program işlevi bu yöntemi uygulamak için yararlı olabilir.
HandleValidationResult
virtual WEAVE_ERROR HandleValidationResult( const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes )=0
Sertifika doğrulamasının sonucuyla çağrıldı.
Uygulamalar, eş sertifikasının doğrulanmasının sonucunu incelemek ve muhtemelen değiştirmek için bu çağrıyı kullanabilir. Doğrulama başarılı olduysa currentRes değeri WEAVE_NO_ERROR olarak ayarlanır. Bu durumda, doğrulama bağlamı sonuçla ilgili ayrıntıları içerir. Özellikle, TrustAnchor alanı güven bağlantısı sertifikasına ayarlanır.
Uygulama, çağrılan BeginValidation() işlemi sırasında ValidationContext yapısındaki CertValidationResults ve CertationLen alanlarını başlattıysa bu alanlar, sertifika grubundaki her bir sertifikanın ayrıntılı doğrulama sonuçlarını içerir.
Uygulamalar, currentRes'i bir hata değerine ayarlayarak bunu geçersiz kılabilir, böylece doğrulamanın başarısız olmasına neden olabilir.
Doğrulama başarısız olduysa trueRes hatanın nedenini yansıtır. Uygulamalar, sonucu farklı bir hata değeriyle geçersiz kılabilir, ancak sonucu WEAVE_NO_ERROR olarak AYARLAMAMALIDIR.
OnPeerCertsLoaded
virtual WEAVE_ERROR OnPeerCertsLoaded( const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet )
Eşin sertifikaları yüklendikten sonra çağrılır.
Uygulamalar, giriş sertifikalarını ve eş sertifikasının doğrulanmasında kullanılacak doğrulama ölçütlerini tamamlamak için bu çağrıyı kullanabilir. Çağrı sırasında, eş tarafından sağlanan sertifikalar, sertifika kümesine (varsa kendi sertifikası da dahil) yüklenmiştir. Ek olarak,subjectDN vesubjectKeyId bağımsız değişkenleri, sertifika kümesinden eşin sertifikasını çözümlemek için kullanılacak değerler için başlatılacaktır. Eş, kendi sertifikasını sağladıysa (sertifika referansı yerine) o zaman currentCtx bağımsız değişkenindeki EntityCert alanı bu sertifikaya işaret eden bir işaretçi içerir.
Bu çağrı sırasında uygulamalar, yeni sertifikaların eklenmesi de dahil olmak üzere sertifika kümesinin içeriğini değiştirebilir. Ayrıca, gerektiğindesubjectDN,subjectKeyId veya currentCtx bağımsız değişkenlerini de değiştirebilirler. En önemlisi, doğrulama ve sonraki erişim denetimi kontrolleri sırasında sertifikaların doğru şekilde işlenmesi için uygulamaların sertifika türü alanlarını sertifika ayarıyla geri gelmeden önce ayarlaması gerekir.
NOT: Eşin kendisi için tam sertifika yerine bir sertifika referansı sağlaması durumunda, doğrulama bağlamında EntityCert alanı bir NULL değeri içerir. Bir uygulama, sertifika referanslarını desteklemek isterse geri dönmeden önce sertifika kümesine eşin konu DN'si ve anahtar kimliği ile eşleşen bir sertifika eklemelidir.
Bu yöntemi uygulamak isteğe bağlıdır. Varsayılan uygulama herhangi bir işlem yapmaz.