nl:: örgü:: Profiller:: Güvenlik:: DURUM:: WeaveCASEAuthDelegate

Bu soyut bir sınıftır.

#include <src/lib/profiles/security/WeaveCASE.h>

Kimlik doğrulama eylemler sırasında delege edildiği için Özet arayüz VAKA oturumu kurulması.

Özet

miras

Bilinen Altsınıflar Doğrudan: nl :: Dokuma :: DeviceManager :: WeaveDeviceManager

Kamu işlevleri

BeginValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Sertifika doğrulamasının başlangıcında çağrılır.
EncodeNodeCertInfo (const BeginSessionContext & msgCtx,TLVWriter & writer)=0
virtual WEAVE_ERROR
Encode VAKA yerel düğüm için sertifika bilgiler.
EncodeNodePayload (const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
Uygulamaya özel yükü kodlama dahil edilecek ÖRNEK eşe mesajı.
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 sonucuyla çağrılır.
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.

Kamu işlevleri

Doğrulamayı Başlat

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

Sertifika doğrulamasının başlangıcında çağrılır.

Uygulamalar verilen başlatması gerektiği WeaveCertificateSet yaklaşan sertifika doğrulama işlemek için yeterli kaynağa sahip bir nesne. Şu anda Uygulamalar sertifika kümesi haline güvenilen kök veya CA sertifikaları yükleyebilir veya kadar bekleyin () OnPeerCertsLoaded denir.

Sertifika kümesine yüklenen her sertifikaya, yükleme işlevi tarafından varsayılan bir sertifika türü atanacaktır. Uygulamalar doğrulama işlemi sırasında belgesinin doğru tedavisi ve için WeaveAuthMode doğru belirlenmesini sağlamak için gerekli olarak, bu tür ayarlamalıdır ÖRNEK etkileşimleri.

Sağlanan doğrulama bağlamı, uygulamanın gerektiği gibi değiştirebileceği bir dizi varsayılan doğrulama kriteri ile başlatılacaktır. Uygulama, ya Etkin Zaman alanını ayarlamalı ya da sertifika ömrü doğrulamasını bastırmak için uygun doğrulama bayraklarını ayarlamalıdır.

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

Uygulamalar sırasında ayrılan tüm kaynakları korumak için gerekli olan BeginValidation () karşılık gelen kadar EndValidation () yapılır adlandırılır. Uygulamalar garanti edilir EndValidation () tam olarak her başarılı çağrı için bir kez adı verilecek BeginValidation () .

EncodeNodeCertInfo

virtual WEAVE_ERROR EncodeNodeCertInfo(
  const BeginSessionContext & msgCtx,
  TLVWriter & writer
)=0

Encode VAKA yerel düğüm için sertifika bilgiler.

Uygulamalar varsayılan kodlamayı geçersiz kılmak için bu çağrıyı kullanabilirsiniz VAKA yerel düğüm için CertificateInformation yapısı. Çağrıldığında, uygulama 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 sertifika ve/veya güven çapa içerebilir.

EncodeNodePayload

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

Uygulamaya özel yükü kodlama dahil edilecek ÖRNEK eşe mesajı.

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 yapmak için bu çağrıyı kullanabilir. Uygulamalar garanti edilir EndValidation () tam olarak her başarılı çağrı için bir kez adı verilecek BeginValidation () .

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, düğümün özel anahtarını kullanarak verilen karma değerde bir imza hesaplamalıdır. Üretilen imza ardından şeklinde yazılmalıdır VAKA tedarik etmek ECDSASignature yapısı TLV belirtilen etiketi kullanarak yazma.

Düğümün özel anahtar, yerel bir tampon maddesi içinde tutulur durumlarda, GenerateAndEncodeWeaveECDSASignature () yardımcı fonksiyonu bu yöntemin uygulanması için faydalı 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, bu çağrıyı, eşin sertifikasının doğrulanmasının sonucunu incelemek ve muhtemelen değiştirmek için kullanabilir. Doğrulama başarılı olursa, validRes WEAVE_NO_ERROR olarak ayarlanacaktır. Bu durumda, doğrulama bağlamı sonuçla ilgili ayrıntıları içerecektir. Özellikle TrustAnchor alanı, güven çapa sertifikasına ayarlanacaktır.

Uygulama içinde CertValidationResults ve CertValidationLen alanları başlatıldı ise ValidationContext esnasında yapının () BeginValidation adlandırılan, daha sonra bu alanlar belgesi kümesindeki her bir sertifika için detaylı bir değerlendirme sonuçları ihtiva edecektir.

Uygulamalar, validRes'i bir hata değerine ayarlayarak bunu geçersiz kılabilir, böylece doğrulama başarısız olur.

Doğrulama başarısız olursa, validRes başarısızlığın nedenini yansıtacaktır. Uygulamalar sonucu farklı bir hata değerine geçersiz kılabilir, ancak sonucu WEAVE_NO_ERROR olarak AYARLAMAMALIDIR.

OnPeerCertsYüklendi

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 emsal sertifikasının doğrulamasını gerçekleştirmek için kullanılacak doğrulama kriterlerini sonlandırmak için bu çağrıyı kullanabilir. Çağrı zamanında, eş tarafından sağlanan sertifikalar, sertifika setine (varsa kendi sertifikası dahil) yüklenmiş olacaktır. Ayrıca, konuDN ve konuKeyId bağımsız değişkenleri, eşin sertifikasını sertifika kümesinden çözümlemek için kullanılacak değerlere başlatılmış olacaktır. Eş kendi sertifikasını sağladıysa (bir sertifika referansı yerine), validCtx bağımsız değişkenindeki EntityCert alanı, o sertifikaya yönelik bir işaretçi içerecektir.

Bu çağrı sırasında, uygulamalar, yeni sertifikalar eklemek de dahil olmak üzere sertifika setinin içeriğini değiştirebilir. Ayrıca, konuDN, konuKeyId veya geçerliCtx bağımsız değişkenlerini gerektiği gibi değiştirebilirler. En önemlisi, uygulamalar, doğrulama ve sonraki erişim kontrol kontrolleri sırasında sertifikaların doğru şekilde işlenmesini sağlamak için geri dönmeden önce sertifika türü alanlarını sertifika seti ile ayarlamalıdır.

NOT: Eşin tam bir sertifika yerine kendisi için bir sertifika referansı sağlaması durumunda, doğrulama bağlamındaki EntityCert alanı bir NULL içerecektir. Bir uygulama sertifika referanslarını desteklemek istiyorsa, geri dönmeden önce sertifika setine 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 hiçbir şey yapmaz.