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 yetkilendirildiği soyut arayüz.

Özet

Devralma

Doğrudan Bilinen Alt Sınıflar: nl::Weave::DeviceManager::WeaveDeviceManager

Kamu işlevleri

BeginValidation(const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Sertifika doğrulama işleminin 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
Uygulamaya özel yükü, eşe gönderilen CASE mesajına dahil edilecek şekilde 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ğrulama işleminin sonucuyla çağrıldı.
OnPeerCertsLoaded(const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
virtual WEAVE_ERROR
Emsalin sertifikaları yüklendikten sonra çağrıldı.

Kamu işlevleri

BeginValidation

virtual WEAVE_ERROR BeginValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

Sertifika doğrulama işleminin başında çağrılır.

Uygulamalar, sağlanan WeaveCertificateSet nesnesini, yaklaşan sertifika doğrulamasını işlemek için yeterli kaynakla başlatmalıdır. Bu aşamada 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 sertifikaya, 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 üzere bu türleri gerektiği şekilde ayarlamalıdır.

Sağlanan doğrulama bağlamı, bir dizi varsayılan doğrulama ölçütüyle başlatılır. Bu ölçütlerin uygulanması gerektiğinde değişebilir. Uygulama, EffectiveTime alanını ayarlamalı veya sertifika ömrü doğrulamasını engellemek için uygun doğrulama işaretlerini ayarlamalıdır.

Ayrıntılı doğrulama sonuçları isteniyorsa uygulama, CertValidationResults ve CertValidationLen alanlarını başlatır.

Uygulamalar, ilgili EndValidation() işlevi çağrılana kadar BeginValidation() sırasında ayrılan kaynakları korumak için gereklidir. Uygulamalarda, EndValidation() işlevinin, her bir başarılı BeginValidation() çağrısı için 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 CertificateInformation yapısının varsayılan kodlamasını geçersiz kılmak üzere bu çağrıyı kullanabilir. Uygulama çağrıldığında, en azından yerel düğümün varlık sertifikasını içeren bir CertificateInformation yapısı yazmalıdır. Uygulama, isteğe bağlı olarak bir dizi ilgili sertifikayı ve/veya güven çapalarını içerebilir.

EncodeNodePayload

virtual WEAVE_ERROR EncodeNodePayload(
  const BeginSessionContext & msgCtx,
  uint8_t *payloadBuf,
  uint16_t payloadBufSize,
  uint16_t & payloadLen
)

Uygulamaya özel yükü, eşe gönderilen CASE mesajına dahil edilecek şekilde kodlayın.

Bu yöntemin uygulanması 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 gerçekleştirmek için bu çağrıyı kullanabilir. Uygulamalarda, EndValidation() işlevinin, her bir başarılı BeginValidation() çağrısı için 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.

Uygulamalar çağrıldığında, düğümün özel anahtarını kullanarak belirtilen karma değeri üzerinde bir imza hesaplaması gerekir. Oluşturulan imza, daha sonra belirtilen etiket kullanılarak, sağlanan TLV yazısına bir CASE ECDSASignature yapısı biçiminde yazılmalıdır.

Düğümün özel anahtarının yerel bir arabelleğe alındığı durumlarda, GenerateAndEncodeWeaveECDSASignature() yardımcı program işlevi bu yöntemin uygulanması için yararlı olabilir.

HandleValidationResult

virtual WEAVE_ERROR HandleValidationResult(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet,
  WEAVE_ERROR & validRes
)=0

Sertifika doğrulama işleminin sonucuyla çağrıldı.

Uygulamalar, eş sertifikasının doğrulanması sonucunu incelemek ve muhtemelen değiştirmek için bu çağrıyı kullanabilir. Doğrulama başarılı olduysa validRes değeri WEAVE_NO_ERROR olarak ayarlanır. Bu durumda, doğrulama bağlamı sonuçla ilgili ayrıntıları içerecektir. Özellikle TrustAnchor alanı, güven bağlantısı sertifikasına ayarlanacaktır.

Uygulama, çağrılan BeginValidation() işlemi sırasında ValidationContext yapısındaki CertValidationResults ve CertValidationLen alanlarını başlatırsa bu alanlar, sertifika grubundaki her sertifika için ayrıntılı doğrulama sonuçları içerir.

Uygulamalar, currentRes değerini bir hata değerine ayarlayarak bunu geçersiz kılabilir ve doğrulamanın başarısız olmasına neden olabilir.

Doğrulama başarısız olduysa validRes, hatanın nedenini yansıtır. Uygulamalar, sonucu farklı bir hata değeriyle geçersiz kılabilir, ancak sonuç WEAVE_NO_ERROR olarak AYARLANMAMALIDIR.

OnPeerCertsLoaded

virtual WEAVE_ERROR OnPeerCertsLoaded(
  const BeginSessionContext & msgCtx,
  WeaveDN & subjectDN,
  CertificateKeyId & subjectKeyId,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)

Emsalin sertifikaları yüklendikten sonra çağrıldı.

Uygulamalar, eş sertifikasının doğrulanmasını gerçekleştirmek için kullanılacak giriş sertifikalarını ve doğrulama ölçütlerini kesinleştirmek için bu çağrıyı kullanabilir. Çağrı sırasında, eş tarafından sağlanan sertifikalar, sertifika grubuna (varsa kendi sertifikası da dahil) yüklenmiş olur. Ayrıca, sertifika grubundan eş sertifikasını çözümlemek için kullanılacak değerlere subjectDN ve subjectKeyId bağımsız değişkenleri başlatılır. Eş, kendi sertifikasını (sertifika referansı yerine) sağladıysa currentCtx bağımsız değişkenindeki EntityCert alanı, bu sertifikanın işaretçisini içerir.

Bu adı taşıyan uygulamalar, yeni sertifikaların eklenmesi de dahil olmak üzere sertifika grubunun içeriğini değiştirebilir. Gerekirse subjectDN, subjectKeyId veya validCtx 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şlenebilmesi için uygulamalar, geri dönmeden önce sertifika türü alanlarını bu sertifikayla düzenlemelidir.

NOT: Eşin tam bir sertifika yerine kendisi için bir sertifika referansı sağlaması durumunda, doğrulama bağlamındaki EntityCert alanı NULL değeri içerir. Bir uygulama sertifika referanslarını desteklemek istiyorsa döndürmeden önce ayarlanan sertifikaya eşin konu DN'si ve anahtar kimliği ile eşleşen bir sertifika eklemelidir.

Bu yöntemin uygulanması isteğe bağlıdır. Varsayılan uygulama hiçbir şey yapmaz.