Google is committed to advancing racial equity for Black communities. See how.

nl::Weave::Profiles::Security::CertProvisioning::WeaveNodeOpAuthDelegate

This is an abstract class.

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

Abstract interface to which platform specific actions are delegated during Weave node operational authentication.

Summary

Public functions

EncodeOpCert(TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
Encode Weave operational certificate for the local node.
EncodeOpRelatedCerts(TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
Encode array of certificates related to the node operational certificate.
GenerateAndEncodeOpSig(const uint8_t *hash, uint8_t hashLen, TLVWriter & writer, uint64_t tag)=0
virtual WEAVE_ERROR
Generate and encode operational signature using local node's operational private key.

Public functions

EncodeOpCert

virtual WEAVE_ERROR EncodeOpCert(
  TLVWriter & writer,
  uint64_t tag
)=0

Encode Weave operational certificate for the local node.

When invoked, the implementation should write a local node operational certificate. The operational certificate should then be written in the form of a WeaveCertificate structure to the supplied TLV writer using the specified tag.

EncodeOpRelatedCerts

virtual WEAVE_ERROR EncodeOpRelatedCerts(
  TLVWriter & writer,
  uint64_t tag
)=0

Encode array of certificates related to the node operational certificate.

When invoked, the implementation should write certificates related to local node operational certificate. The related certificates should then be written in the form of an array of WeaveCertificate structures to the supplied TLV writer using the specified tag.

GenerateAndEncodeOpSig

virtual WEAVE_ERROR GenerateAndEncodeOpSig(
  const uint8_t *hash,
  uint8_t hashLen,
  TLVWriter & writer,
  uint64_t tag
)=0

Generate and encode operational signature using local node's operational private key.

When invoked, implementations must compute a signature on the given hash value using the node's operational private key. The generated signature should then be written in the form of a ECDSASignature structure to the supplied TLV writer using the specified tag.

Note: in cases where the node's corresponding Elliptic Curve private key is held in a local buffer, the GenerateAndEncodeWeaveECDSASignature() utility function can be useful for implementing this method.