nl:: Weave:: Profiles:: Security:: CASE:: WeaveCASEAuthDelegate
Bu soyut bir sınıftır.
#include <src/lib/profiles/security/WeaveCASE.h>
CASE oturumu kurulumu sırasında kimlik doğrulama işlemlerinin devredildiği 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ş tarafa gönderilecek CASE mesajına eklenecek 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 imza oluşturun.
|
HandleValidationResult(const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
|
virtual WEAVE_ERROR
Sertifika doğrulama sonucuyla çağrılır.
|
OnPeerCertsLoaded(const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
|
virtual WEAVE_ERROR
Eş tarafın 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, sağlanan WeaveCertificateSet nesnesini yaklaşan sertifika doğrulamasını gerçekleştirecek yeterli kaynaklarla başlatmalıdır. 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 grubuna yüklenen her sertifika, yükleme işlevi tarafından varsayılan bir sertifika türüne atanır. Doğrulama sırasında sertifikanın doğru şekilde ele alınmasını ve CASE etkileşimleri için WeaveAuthMode'un doğru şekilde atanmasını sağlamak amacıyla, uygulamalar bu türleri gerektiği gibi ayarlamalıdır.
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, sertifika geçerlilik süresi doğrulamasını engellemek için EffectiveTime alanını veya uygun doğrulama işaretlerini ayarlamalıdır.
Ayrıntılı doğrulama sonuçları isteniyorsa uygulama, CertValidationResults ve CertValidationLen alanlarını başlatabilir.
Uygulamaların, ilgili EndValidation() çağrılana kadar BeginValidation() sırasında ayrılan tüm kaynakları koruması gerekir. Uygulamalarda, BeginValidation() çağrısının her başarılı çağrısı için EndValidation() işlevinin 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 Bilgileri'ni kodlayın.
Uygulamalar, yerel düğüm için CASE CertificateInformation yapısının varsayılan kodlamasını geçersiz kılmak üzere 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 ankrajı 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 temizleme işlemi yapmak için bu çağrıyı kullanabilir. Uygulamalarda, BeginValidation() çağrısının her başarılı çağrısı için EndValidation() işlevinin 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 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şlemine 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ğrulama sonucuyla çağrılır.
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ı olursa validRes, 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, BeginValidation() çağrısı sırasında ValidationContext yapısındaki CertValidationResults ve CertValidationLen alanlarını başlatmışsa bu alanlar, sertifika grubundaki her sertifika için ayrıntılı doğrulama sonuçlarını içerir.
Uygulamalar, validRes değerini bir hata değerine ayarlayarak bunu geçersiz kılabilir ve böylece doğrulamanın başarısız olmasına neden olabilir.
Doğrulama başarısız olursa validRes, başarısızlığın nedenini yansıtır. Uygulamalar sonucu farklı bir hata değeriyle geçersiz kılabilir ancak sonucu WEAVE_NO_ERROR olarak AYARMAMALIDIR.
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ş sertifikanızın doğrulamasını yapmak için kullanılacak doğrulama ölçütlerini kesinleştirmek üzere 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. Ayrıca, subjectDN ve subjectKeyId bağımsız değişkenleri, sertifika grubundan eşlenik sertifikalarını çözmek için kullanılacak değerlerle başlatılır. Eş, sertifika referansı yerine kendi sertifikasını sağladıysa validCtx bağımsız değişkenindeki EntityCert alanı bu sertifikanın işaretçisini içerir.
Bu çağrı sırasında, yeni sertifika ekleme de dahil olmak üzere sertifika grubunun içeriği değiştirilebilir. 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 istiyorsa döndürmeden önce sertifika grubuna eşlemenin özne 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.