Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Weave::Kryptografie

Dieser Namespace enthält alle Weave-Schnittstellen zur gemeinsamen kryptografischen Unterstützung.

Fazit

Aufzählungen

X963EncodedPointFormat enum

Typdef.

AES128CTRDRBG Typdef
AES128CTRMode Typdef
AES256CTRMode Typdef
EntropyFunct)(uint8_t *buf, size_t bufSize) Typdef
int(*
Signatur einer Funktion, die verwendet wird, um zufällige Daten aus einer Entropiequelle zu erfassen.
HKDFSHA1 Typdef
HKDFSHA256 Typdef
HMACSHA1 Typdef
HMACSHA256 Typdef

Funktionen

ClearSecretData(uint8_t *buf, uint32_t len)
NL_DLL_EXPORT void
Löscht die ersten len Byte des Arbeitsspeicherbereichs buf.
ConstantTimeCompare(const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
Vergleicht die ersten len Byte des Arbeitsspeicherbereichs buf1 und des Arbeitsspeicherbereichs buf2.
DecodeBIGNUMValueLE(BIGNUM & val, uint16_t size, const uint8_t *& p)
DecodeECDSASignature(const EncodedECDSASignature & encodedSig, ECDSA_SIG *& sig)
DecodeECKey(OID curveOID, const EncodedECPrivateKey *encodedPrivKey, const EncodedECPublicKey *encodedPubKey, EC_KEY *& ecKey)
NL_DLL_EXPORT WEAVE_ERROR
DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t encodedPointLen, EC_GROUP *group, EC_POINT *& point)
NL_DLL_EXPORT WEAVE_ERROR
DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t encodedPointLen, BIGNUM *& x, BIGNUM *& y)
ECDHComputeSharedSecret(OID curveOID, const EC_GROUP *ecGroup, const EC_POINT *pubKeyPoint, const BIGNUM *privKeyBN, uint8_t *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t & sharedSecretLen)
NL_DLL_EXPORT WEAVE_ERROR
ECDHComputeSharedSecret(OID curveOID, const EncodedECPublicKey & encodedPubKey, const EncodedECPrivateKey & encodedPrivKey, uint8_t *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t & sharedSecretLen)
ECDSASigToFixedLenSig(OID curveOID, const ECDSA_SIG *ecSig, uint8_t *fixedLenSig)
ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
void
ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
int
EncodeBIGNUMValueLE(const BIGNUM & val, uint16_t size, uint8_t *& p)
EncodeECDSASignature(const ECDSA_SIG *sig, EncodedECDSASignature & encodedSig)
EncodeX962ECPoint(OID curveOID, EC_GROUP *ecGroup, const EC_POINT *point, uint8_t *buf, uint16_t bufSize, uint16_t & encodedPointLen)
NL_DLL_EXPORT WEAVE_ERROR
FixedLenSigToECDSASig(OID curveOID, const uint8_t *fixedLenSig, ECDSA_SIG *& ecSig)
GenerateAndEncodeWeaveHMACSignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *data, uint16_t dataLen, const uint8_t *key, uint16_t keyLen)
Generieren und codieren Sie eine Weave-HMAC-Signatur.
GenerateAndEncodeWeaveRSASignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
Hier kannst du eine Weave-RSA-Signatur generieren und codieren.
GenerateECDHKey(OID curveOID, EncodedECPublicKey & encodedPubKey, EncodedECPrivateKey & encodedPrivKey)
GenerateECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECPrivateKey & encodedPrivKey, EncodedECDSASignature & encodedSig)
GenerateECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECPrivateKey & encodedPrivKey, uint8_t *fixedLenSig)
GetCurveG(OID curveOID, EncodedECPublicKey & encodedPubKey)
GetCurveSize(const OID curveOID, const EC_GROUP *ecGroup)
int
GetCurveSize(const OID curveOID)
int
Größe des elliptischen Kurvendiagramms abrufen (in Byte).
GetECGroupForCurve(OID curveOID, EC_GROUP *& ecGroup)
NL_DLL_EXPORT WEAVE_ERROR
ReverseBytes(uint8_t *buf, size_t len)
void
ShaNIDFromSigAlgoOID(OID sigAlgoOID)
int
VerifyECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const EncodedECDSASignature & encodedSig, const EncodedECPublicKey & encodedPubKey)
VerifyECDSASignature(OID curveOID, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *fixedLenSig, const EncodedECPublicKey & encodedPubKey)
VerifyHMACSignature(OID sigAlgoOID, const uint8_t *data, uint16_t dataLen, const EncodedHMACSignature & sig, const uint8_t *key, uint16_t keyLen)
Prüfen Sie eine Weave-Signatur.
VerifyRSASignature(OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
Bestätigen Sie eine Weave-RSA-Signatur.

Klassen

nl::Weave::Krypta::CTRMode
nl::Weave::Krypta::CTR_DRBG
nl::Weave::Krypta::EncodedECDSASignature
nl::Weave::Krypta::EncodedECPrivateKey
nl::Weave::Krypta::EncodedECPublicKey
nl::Weave::Krypta::EncodedHMACSignature
nl::Weave::Krypta::EncodedRSAKey
nl::Weave::Krypta::EncodedRSASignature
nl::Weave::Krypta::HKDF
nl::Weave::Krypta::HKDFSHA1Or256
nl::Weave::Krypta::HMAC

Aufzählungen

X963EncodedPointFormat

 X963EncodedPointFormat

Typdef.

AES128-CTRDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

AES128-CTR-Modus

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

AES256CTRMode

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

Entropie

int(* EntropyFunct)(uint8_t *buf, size_t bufSize)

Signatur einer Funktion, die verwendet wird, um zufällige Daten aus einer Entropiequelle zu erfassen.

HHKDF1

HKDF< Platform::Security::SHA1 > HKDFSHA1

HHK226

HKDF< Platform::Security::SHA256 > HKDFSHA256

HMACSHA1-

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256-

HMAC< Platform::Security::SHA256 > HMACSHA256

Funktionen

Logo: ClearSecretData

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

Löscht die ersten len Byte des Arbeitsspeicherbereichs buf.

Bei dieser Implementierung sind die len Byte des Arbeitsspeicherbereichs buf mit Nullen gefüllt.

Details
Parameter
[in] buf
Mauszeiger auf einen Zwischenspeicher mit geheimen Daten, die gelöscht werden sollen.
[in] len
Gibt die geheime Datengröße in Byte an.

KonstanteZeitvergleich

bool ConstantTimeCompare(
  const uint8_t *buf1,
  const uint8_t *buf2,
  uint16_t len
)

Vergleicht die ersten len Byte des Arbeitsspeicherbereichs buf1 und des Arbeitsspeicherbereichs buf2.

Die Zeit, die diese Funktion benötigt, ist unabhängig von den Daten in den Speicherbereichen buf1 und buf2.

Details
Parameter
[in] buf1
Bewegen Sie den Mauszeiger auf einen Speicherblock.
[in] buf2
Bewegen Sie den Mauszeiger auf einen Speicherblock.
[in] len
Größe des zu vergleichenden Arbeitsspeicherbereichs in Byte.
Rückgabewerte
true
Wenn die ersten len Byte des Arbeitsspeicherbereichs buf1 und buf2 identisch sind.
false
Andernfalls

DecodeBIGNUMWert LE

WEAVE_ERROR DecodeBIGNUMValueLE(
  BIGNUM & val,
  uint16_t size,
  const uint8_t *& p
)

EcodeECDSA-Signatur

WEAVE_ERROR DecodeECDSASignature(
  const EncodedECDSASignature & encodedSig,
  ECDSA_SIG *& sig
)

EcodeECKey

NL_DLL_EXPORT WEAVE_ERROR DecodeECKey(
  OID curveOID,
  const EncodedECPrivateKey *encodedPrivKey,
  const EncodedECPublicKey *encodedPubKey,
  EC_KEY *& ecKey
)

DecodeX962ECPunkt

NL_DLL_EXPORT WEAVE_ERROR DecodeX962ECPoint(
  const uint8_t *encodedPoint,
  uint16_t encodedPointLen,
  EC_GROUP *group,
  EC_POINT *& point
)

DecodeX962ECPunkt

WEAVE_ERROR DecodeX962ECPoint(
  const uint8_t *encodedPoint,
  uint16_t encodedPointLen,
  BIGNUM *& x,
  BIGNUM *& y
)

ECDHComputeSharedSecret

NL_DLL_EXPORT WEAVE_ERROR ECDHComputeSharedSecret(
  OID curveOID,
  const EC_GROUP *ecGroup,
  const EC_POINT *pubKeyPoint,
  const BIGNUM *privKeyBN,
  uint8_t *sharedSecretBuf,
  uint16_t sharedSecretBufSize,
  uint16_t & sharedSecretLen
)

ECDHComputeSharedSecret

WEAVE_ERROR ECDHComputeSharedSecret(
  OID curveOID,
  const EncodedECPublicKey & encodedPubKey,
  const EncodedECPrivateKey & encodedPrivKey,
  uint8_t *sharedSecretBuf,
  uint16_t sharedSecretBufSize,
  uint16_t & sharedSecretLen
)

ECDSASigToFixedLenSig

WEAVE_ERROR ECDSASigToFixedLenSig(
  OID curveOID,
  const ECDSA_SIG *ecSig,
  uint8_t *fixedLenSig
)

ECDSA_SIG_get0

void ECDSA_SIG_get0(
  const ECDSA_SIG *sig,
  const BIGNUM **pr,
  const BIGNUM **ps
)

ECDSA_SIG_Set0

int ECDSA_SIG_set0(
  ECDSA_SIG *sig,
  BIGNUM *r,
  BIGNUM *s
)

CodierenBIGNUMWertLE

WEAVE_ERROR EncodeBIGNUMValueLE(
  const BIGNUM & val,
  uint16_t size,
  uint8_t *& p
)

Codier-ECDSA-Signatur

WEAVE_ERROR EncodeECDSASignature(
  const ECDSA_SIG *sig,
  EncodedECDSASignature & encodedSig
)

CodiertX962ECPoint

NL_DLL_EXPORT WEAVE_ERROR EncodeX962ECPoint(
  OID curveOID,
  EC_GROUP *ecGroup,
  const EC_POINT *point,
  uint8_t *buf,
  uint16_t bufSize,
  uint16_t & encodedPointLen
)

Fester LENSigToECDSASig

WEAVE_ERROR FixedLenSigToECDSASig(
  OID curveOID,
  const uint8_t *fixedLenSig,
  ECDSA_SIG *& ecSig
)

GenerateAndEncodingWeaveHMACSignatur

WEAVE_ERROR GenerateAndEncodeWeaveHMACSignature(
  OID sigAlgoOID,
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *data,
  uint16_t dataLen,
  const uint8_t *key,
  uint16_t keyLen
)

Generieren und codieren Sie eine Weave-HMAC-Signatur.

Berechnet eine HMAC-Signatur für eine bestimmte Daten mithilfe eines geheimen Schlüssels und schreibt die Signatur als Weave-HMAC-Signaturstruktur an den angegebenen TLV-Autor mit dem angegebenen Tag.

Details
Parameter
[in] sigAlgoOID
OID-Algorithmus zum Generieren der HMAC-Signatur.
[in] writer
Das TLVWriter-Objekt, in das die codierte Signatur geschrieben werden soll.
[in] tag
TLV-Tag, das der codierten Signaturstruktur zugeordnet werden soll.
[in] data
Ein Zwischenspeicher mit den zu signierenden Daten.
[in] dataLen
Die Länge der Daten in Byte.
[in] key
Ein Zwischenspeicher mit dem geheimen Schlüssel zum Generieren der HMAC-Signatur.
[in] keyLen
Die Länge des geheimen Schlüssels in Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn der Vorgang erfolgreich war.
other
Andere Weave-Fehlercodes, die mit der Signaturcodierung zusammenhängen.

GenerateAndEncodingWeaveRSA, Signatur generieren und codieren

WEAVE_ERROR GenerateAndEncodeWeaveRSASignature(
  OID sigAlgoOID,
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *hash,
  uint8_t hashLen,
  const uint8_t *keyDER,
  uint16_t keyDERLen
)

Hier kannst du eine Weave-RSA-Signatur generieren und codieren.

Berechnet eine RSA-Signatur mit einem bestimmten X509-codierten privaten RSA-Schlüssel und Nachrichten-Hash und schreibt die Signatur als Weave-RSA-Struktur in den angegebenen TLV-Autor mit dem angegebenen Tag.

Details
Parameter
[in] sigAlgoOID
OID-Algorithmus zum Generieren der RSA-Signatur.
[in] writer
Das TLVWriter-Objekt, in das die codierte Signatur geschrieben werden soll.
[in] tag
TLV-Tag, das der codierten Signaturstruktur zugeordnet werden soll.
[in] hash
Ein Zwischenspeicher mit dem Hash der zu signierenden Daten.
[in] hashLen
Die Länge des Daten-Hashs in Byte.
[in] keyDER
Ein Zwischenspeicher mit dem privaten Schlüssel zum Erstellen der Signatur. Der private Schlüssel wird voraussichtlich als X509-RSA-Struktur codiert.
[in] keyDERLen
Die Länge des codierten privaten Schlüssels.
Rückgabewerte
WEAVE_NO_ERROR
Wenn der Vorgang erfolgreich war.
other
Andere Weave-Fehlercodes beim Decodieren des privaten Schlüssels, zum Generieren der Signatur oder zum Codieren der Signatur.

ECECHH-Schlüssel generieren

WEAVE_ERROR GenerateECDHKey(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey,
  EncodedECPrivateKey & encodedPrivKey
)

Signatur generieren

WEAVE_ERROR GenerateECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECPrivateKey & encodedPrivKey,
  EncodedECDSASignature & encodedSig
)

Signatur generieren

WEAVE_ERROR GenerateECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECPrivateKey & encodedPrivKey,
  uint8_t *fixedLenSig
)

GetCurveG

WEAVE_ERROR GetCurveG(
  OID curveOID,
  EncodedECPublicKey & encodedPubKey
)

GetCurveSize

int GetCurveSize(
  const OID curveOID,
  const EC_GROUP *ecGroup
)

GetCurveSize

int GetCurveSize(
  const OID curveOID
)

Größe des elliptischen Kurvendiagramms abrufen (in Byte).

Details
Parameter
[in] curveOID
Angegebene OID-Kurven-OID.
Rückgabewerte
Returns
0, wenn die angegebene CurveOID nicht von der Elliptikkurve unterstützt wird Andernfalls wird die Kurvengröße in Byte zurückgegeben.

Logo: GetECGroupForCurve

NL_DLL_EXPORT WEAVE_ERROR GetECGroupForCurve(
  OID curveOID,
  EC_GROUP *& ecGroup
)

Rückwärts

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDVonSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

EDSA-Signatur verifizieren

WEAVE_ERROR VerifyECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const EncodedECDSASignature & encodedSig,
  const EncodedECPublicKey & encodedPubKey
)

EDSA-Signatur verifizieren

WEAVE_ERROR VerifyECDSASignature(
  OID curveOID,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *fixedLenSig,
  const EncodedECPublicKey & encodedPubKey
)

HMAC-Signatur bestätigen

WEAVE_ERROR VerifyHMACSignature(
  OID sigAlgoOID,
  const uint8_t *data,
  uint16_t dataLen,
  const EncodedHMACSignature & sig,
  const uint8_t *key,
  uint16_t keyLen
)

Prüfen Sie eine Weave-Signatur.

Verifiziert eine HMAC-Signatur mit bestimmten Daten und einem geheimen Schlüssel, der zur Überprüfung der Signatur verwendet wird.

Details
Parameter
[in] sigAlgoOID
OID-Algorithmus zum Generieren der HMAC-Signatur.
[in] data
Ein Zwischenspeicher mit den zu signierenden Daten.
[in] dataLen
Die Länge der Daten in Byte.
[in] sig
Codierte HMAC-Signatur, die überprüft werden soll.
[in] key
Ein Zwischenspeicher mit dem geheimen Schlüssel zum Generieren der HMAC-Signatur.
[in] keyLen
Die Länge des geheimen Schlüssels in Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn die HMAC-Signaturüberprüfung erfolgreich war.
WEAVE_ERROR_INVALID_SIGNATURE
Falls die HMAC-Signaturüberprüfung fehlgeschlagen ist.

VerificationRSA-Signatur

WEAVE_ERROR VerifyRSASignature(
  OID sigAlgoOID,
  const uint8_t *hash,
  uint8_t hashLen,
  const EncodedRSASignature & sig,
  const uint8_t *certDER,
  uint16_t certDERLen
)

Bestätigen Sie eine Weave-RSA-Signatur.

Verifiziert eine RSA-Signatur mit dem angegebenen Daten-Hash und einem X509-codierten RSA-Zertifikat mit dem öffentlichen Schlüssel zur Bestätigung der Signatur.

Details
Parameter
[in] sigAlgoOID
OID-Algorithmus zum Generieren der RSA-Signatur.
[in] hash
Ein Zwischenspeicher mit dem Hash der zu signierenden Daten.
[in] hashLen
Die Länge des Daten-Hashs in Byte.
[in] sig
Codierte RSA-Signatur zur Bestätigung.
[in] certDER
Ein Zwischenspeicher mit dem Zertifikat mit öffentlichem Schlüssel, der zum Überprüfen der Signatur verwendet wird. Bei dem Zertifikat wird voraussichtlich eine X509-RSA-Struktur codiert.
[in] certDERLen
Die Länge des codierten Zertifikats in Byte.
Rückgabewerte
WEAVE_NO_ERROR
Wenn der Vorgang erfolgreich war.