Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl :: 짜다:: 프로필 :: 보안:: 케이스:: WeaveCASEAuthDelegate

이것은 추상 클래스입니다.

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

인증 작업을하는 동안 위임되는 추상 인터페이스 사례 세션 설정.

요약

계승

기존의 서브 클래스를 직접 : NL :: 위브 :: DeviceManager :: WeaveDeviceManager

공공 기능

BeginValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
인증서 유효성 검사 시작시 호출됩니다.
EncodeNodeCertInfo (const BeginSessionContext & msgCtx,TLVWriter & writer)=0
virtual WEAVE_ERROR
인코딩 CASE 로컬 노드에 대한 인증서 정보.
EncodeNodePayload (const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
응용 프로그램 특정 페이로드를 인코딩하는에 포함되는 CASE의 피어에 메세지.
EndValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual void
인증서 유효성 검사가 끝날 때 호출됩니다.
GenerateNodeSignature (const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen,TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
로컬 노드의 개인 키를 사용하여 서명을 생성합니다.
HandleValidationResult (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
virtual WEAVE_ERROR
인증서 유효성 검사 결과로 호출됩니다.
OnPeerCertsLoaded (const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
virtual WEAVE_ERROR
피어의 인증서가로드 된 후 호출됩니다.

공공 기능

BeginValidation

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

인증서 유효성 검사 시작시 호출됩니다.

구현은 제공된 초기화해야합니다 WeaveCertificateSet의 다가오는 인증서 유효성 검사를 처리하기 위해 충분한 자원을 가진 개체를. 이 때 구현 인증서 집합으로 신뢰할 수있는 루트 또는 CA 인증서를로드 할 수 있습니다, 또는 때까지 기다립니다 () OnPeerCertsLoaded 이라고합니다.

인증서 세트에로드 된 각 인증서에는로드 기능에 의해 기본 인증서 유형이 할당됩니다. 구현 검증하는 동안 인증서의 올바른 치료와 대한 WeaveAuthMode의 올바른 할당을 보장하기 위해 필요에 따라 이러한 유형을 조정해야 CASE의 상호 작용을.

제공된 유효성 검사 컨텍스트는 기본 유효성 검사 기준 집합으로 초기화되며 필요에 따라 구현에서 변경할 수 있습니다. 구현은 EffectiveTime 필드를 설정하거나 인증서 수명 유효성 검사를 억제하기 위해 적절한 유효성 검사 플래그를 설정해야합니다.

자세한 유효성 검사 결과가 필요한 경우 구현에서 CertValidationResults 및 CertValidationLen 필드를 초기화 할 수 있습니다.

구현이 중 할당 된 자원을 유지해야 BeginValidation ()을 해당까지 EndValidation () 한다라고합니다. 구현이 보장된다 EndValidation ()가 정확히 각 성공적으로 호출되면 호출됩니다 BeginValidation () .

EncodeNodeCertInfo

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

인코딩 CASE 로컬 노드에 대한 인증서 정보.

구현의 기본 인코딩 오버라이드 (override)이 호출을 사용할 수 있습니다 CASE의 로컬 노드에 대한 CertificateInformation 구조를. 호출 될 때 구현은 최소한 로컬 노드의 엔티티 인증서를 포함하는 CertificateInformation 구조를 작성해야합니다. 구현에는 관련 인증서 및 / 또는 신뢰 앵커 세트가 선택적으로 포함될 수 있습니다.

EncodeNodePayload

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

응용 프로그램 특정 페이로드를 인코딩하는에 포함되는 CASE의 피어에 메세지.

이 메서드 구현은 선택 사항입니다. 기본 구현은 길이가 0 인 페이로드를 반환합니다.

EndValidation

virtual void EndValidation(
  const BeginSessionContext & msgCtx,
  ValidationContext & validCtx,
  WeaveCertificateSet & certSet
)=0

인증서 유효성 검사가 끝날 때 호출됩니다.

구현은이 호출을 사용하여 인증 유효성 검사가 완료된 후 정리를 수행 할 수 있습니다. 구현이 보장된다 EndValidation ()가 정확히 각 성공적으로 호출되면 호출됩니다 BeginValidation () .

GenerateNodeSignature

virtual WEAVE_ERROR GenerateNodeSignature(
  const BeginSessionContext & msgCtx,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  TLVWriter & writer,
  uint64_t tag
)=0

로컬 노드의 개인 키를 사용하여 서명을 생성합니다.

호출 될 때 구현은 노드의 개인 키를 사용하여 주어진 해시 값에 대한 서명을 계산해야합니다. 생성 된 서명은 다음의 형태로 기록되어야 CASE의 공급에 ECDSASignature 구조 TLV의 특정 태그를 사용하여 기록.

노드의 개인 키가 로컬 버퍼에 유지되는 경우, GenerateAndEncodeWeaveECDSASignature () 유틸리티 함수는이 방법을 구현하는 데 유용 할 수있다.

HandleValidationResult

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

인증서 유효성 검사 결과로 호출됩니다.

구현은이 호출을 사용하여 피어의 인증서 유효성 검사 결과를 검사하고 변경할 수 있습니다. 유효성 검사가 성공하면 validRes가 WEAVE_NO_ERROR로 설정됩니다. 이 경우 유효성 검사 컨텍스트에는 결과에 대한 세부 정보가 포함됩니다. 특히 TrustAnchor 필드는 신뢰 앵커 인증서로 설정됩니다.

구현이 내 CertValidationResults 및 CertValidationLen 필드를 초기화하는 경우 ValidationContext의 동안 구조를 () BeginValidation 라고, 다음 필드는 인증서 세트의 각 인증서에 대한 세부 검증 결과를 포함합니다.

구현시 validRes를 오류 값으로 설정하여이를 재정 의하여 유효성 검사가 실패 할 수 있습니다.

유효성 검사가 실패하면 validRes에 실패 이유가 반영됩니다. 구현은 결과를 다른 오류 값으로 재정의 할 수 있지만 결과를 WEAVE_NO_ERROR로 설정해서는 안됩니다.

OnPeerCertsLoaded

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

피어의 인증서가로드 된 후 호출됩니다.

구현은이 호출을 사용하여 입력 인증서와 피어 인증서의 유효성 검사를 수행하는 데 사용될 유효성 검사 기준을 완성 할 수 있습니다. 호출시 피어가 제공 한 인증서는 인증서 세트 (있는 경우 자체 인증서 포함)에로드됩니다. 또한 subjectDN 및 subjectKeyId 인수는 인증서 집합에서 피어의 인증서를 확인하는 데 사용되는 값으로 초기화됩니다. 피어가 인증서 참조가 아닌 자체 인증서를 제공 한 경우 validCtx 인수 내의 EntityCert 필드에 해당 인증서에 대한 포인터가 포함됩니다.

이 호출 중에 구현은 새 인증서 추가를 포함하여 인증서 세트의 내용을 수정할 수 있습니다. 또한 필요에 따라 subjectDN, subjectKeyId 또는 validCtx 인수를 변경할 수 있습니다. 가장 중요한 것은 구현시 인증 및 후속 액세스 제어 검사 중에 인증서가 올바르게 처리되도록 반환하기 전에 인증서 세트로 인증서 유형 필드를 조정해야한다는 것입니다.

참고 : 피어가 전체 인증서가 아닌 자체에 대한 인증서 참조를 제공하는 경우 유효성 검사 컨텍스트의 EntityCert 필드에 NULL이 포함됩니다. 구현에서 인증서 참조를 지원하려면 반환하기 전에 피어의 주체 DN 및 키 ID와 일치하는 인증서를 인증서 세트에 추가해야합니다.

이 메서드 구현은 선택 사항입니다. 기본 구현은 아무것도하지 않습니다.