O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

nl :: Tecer:: Perfis :: Segurança:: CASO:: WeaveCASEAuthDelegate

Esta é uma classe abstrata.

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

Interface abstrata para a qual as ações de autenticação são delegadas durante o estabelecimento da sessão CASE .

Resumo

Herança

Subclasses diretamente conhecidas: nl :: Weave :: DeviceManager :: WeaveDeviceManager

Funções públicas

BeginValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual WEAVE_ERROR
Chamado no início da validação do certificado.
EncodeNodeCertInfo (const BeginSessionContext & msgCtx,TLVWriter & writer)=0
virtual WEAVE_ERROR
Codifique as informações do certificado CASE para o nó local.
EncodeNodePayload (const BeginSessionContext & msgCtx, uint8_t *payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)
virtual WEAVE_ERROR
Codifique uma carga útil específica do aplicativo para ser incluída na mensagem CASE para o par.
EndValidation (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet)=0
virtual void
Chamado no final da validação do certificado.
GenerateNodeSignature (const BeginSessionContext & msgCtx, const uint8_t *msgHash, uint8_t msgHashLen,TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
Gere uma assinatura usando a chave privada do nó local.
HandleValidationResult (const BeginSessionContext & msgCtx, ValidationContext & validCtx, WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)=0
virtual WEAVE_ERROR
Chamado com o resultado da validação do certificado.
OnPeerCertsLoaded (const BeginSessionContext & msgCtx, WeaveDN & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx, WeaveCertificateSet & certSet)
virtual WEAVE_ERROR
Chamado depois que os certificados do par foram carregados.

Funções públicas

BeginValidation

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

Chamado no início da validação do certificado.

As implementações devem inicializar o objeto WeaveCertificateSet fornecido com recursos suficientes para lidar com a próxima validação do certificado. Neste momento, as implementações podem carregar certificados de raiz ou CA confiáveis ​​no conjunto de certificados ou esperar até que OnPeerCertsLoaded () seja chamado.

Cada certificado carregado no conjunto de certificados receberá um tipo de certificado padrão pela função de carregamento. As implementações devem ajustar esses tipos conforme necessário para garantir o tratamento correto do certificado durante a validação e a atribuição correta de WeaveAuthMode para interações CASE .

O contexto de validação fornecido será inicializado com um conjunto de critérios de validação padrão, que a implementação pode alterar conforme necessário. A implementação deve definir o campo EffectiveTime ou definir os sinalizadores de validação apropriados para suprimir a validação do tempo de vida do certificado.

Se forem desejados resultados de validação detalhados, a implementação pode inicializar os campos CertValidationResults e CertValidationLen.

As implementações são necessárias para manter quaisquer recursos alocados durante BeginValidation () até que o EndValidation () correspondente seja feito. As implementações têm a garantia de que EndValidation () será chamado exatamente uma vez para cada chamada bem-sucedida para BeginValidation () .

EncodeNodeCertInfo

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

Codifique as informações do certificado CASE para o nó local.

As implementações podem usar essa chamada para substituir a codificação padrão da estrutura CASE CertificateInformation para o nó local. Quando chamada, a implementação deve escrever uma estrutura CertificateInformation contendo, no mínimo, o certificado de entidade do nó local. A implementação pode incluir opcionalmente um conjunto de certificados relacionados e / ou âncoras de confiança.

EncodeNodePayload

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

Codifique uma carga útil específica do aplicativo para ser incluída na mensagem CASE para o par.

A implementação desse método é opcional. A implementação padrão retorna uma carga útil de comprimento zero.

EndValidation

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

Chamado no final da validação do certificado.

As implementações podem usar esta chamada para realizar a limpeza após a conclusão da validação da certificação. As implementações têm a garantia de que EndValidation () será chamado exatamente uma vez para cada chamada bem-sucedida para BeginValidation () .

GenerateNodeSignature

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

Gere uma assinatura usando a chave privada do nó local.

Quando chamadas, as implementações devem calcular uma assinatura no valor de hash fornecido usando a chave privada do nó. A assinatura gerada deve então ser escrita na forma de uma estrutura CASE ECDSASignature para a escrita TLV fornecida usando a etiqueta especificada.

Nos casos em que a chave privada do nó é mantida em um buffer local, a função de utilitário GenerateAndEncodeWeaveECDSASignature () pode ser útil para implementar esse método.

HandleValidationResult

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

Chamado com o resultado da validação do certificado.

As implementações podem usar esta chamada para inspecionar e possivelmente alterar o resultado da validação do certificado do par. Se a validação for bem-sucedida, validRes será definido como WEAVE_NO_ERROR. Nesse caso, o contexto de validação conterá detalhes sobre o resultado. Em particular, o campo TrustAnchor será definido para o certificado de âncora de confiança.

Se a implementação inicializou os campos CertValidationResults e CertValidationLen dentro da estrutura ValidationContext durante a chamada BeginValidation () , então esses campos conterão resultados de validação detalhados para cada certificado no conjunto de certificados.

As implementações podem sobrescrever isso definindo validRes com um valor de erro, fazendo com que a validação falhe.

Se a validação falhou, validRes refletirá o motivo da falha. As implementações podem substituir o resultado por um valor de erro diferente, mas NÃO DEVEM definir o resultado como WEAVE_NO_ERROR.

OnPeerCertsLoaded

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

Chamado depois que os certificados do par foram carregados.

As implementações podem usar esta chamada para finalizar os certificados de entrada e os critérios de validação que serão usados ​​para realizar a validação do certificado do par. No momento da chamada, os certificados fornecidos pelo par terão sido carregados no conjunto de certificados (incluindo seu próprio certificado, se houver). Além disso, os argumentos subjectDN e subjectKeyId terão sido inicializados com valores que serão usados ​​para resolver o certificado do par do conjunto de certificados. Se o par forneceu seu próprio certificado (em vez de uma referência de certificado), o campo EntityCert no argumento validCtx conterá um ponteiro para esse certificado.

Durante esta chamada, as implementações podem modificar o conteúdo do conjunto de certificados, incluindo a adição de novos certificados. Eles também podem alterar os argumentos subjectDN, subjectKeyId ou validCtx conforme necessário. Mais importante ainda, as implementações devem ajustar os campos de tipo de certificado com o certificado definido antes de retornar para garantir o tratamento correto dos certificados durante a validação e verificações de controle de acesso subsequentes.

NOTA: No caso de o par fornecer uma referência de certificado para si mesmo, em vez de um certificado completo, o campo EntityCert no contexto de validação conterá um NULL. Se uma implementação deseja oferecer suporte a referências de certificado, ela deve adicionar um certificado que corresponda ao DN do assunto do par e id da chave ao conjunto de certificados antes de retornar.

A implementação desse método é opcional. A implementação padrão não faz nada.