Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

nl::Tenun::Kripto

Namespace ini mencakup semua antarmuka dalam Weave untuk dukungan kriptografis bersama.

Ringkasan

Enumerasi

X963EncodedPointFormat enum

Typedef

AES128CTRDRBG typedef
AES128CTRMode typedef
AES256CTRMode typedef
EntropyFunct)(uint8_t *buf, size_t bufSize) typedef
int(*
Tanda tangan fungsi yang digunakan untuk mengumpulkan data acak dari sumber entropi.
HKDFSHA1 typedef
HKDFSHA256 typedef
HMACSHA1 typedef
HMACSHA256 typedef

Fungsi

ClearSecretData(uint8_t *buf, uint32_t len)
NL_DLL_EXPORT void
Menghapus len byte pertama dari area memori buf.
ConstantTimeCompare(const uint8_t *buf1, const uint8_t *buf2, uint16_t len)
bool
Membandingkan len byte pertama area memori buf1 dan area memori 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)
Membuat dan mengenkode tanda tangan HMAC Weave.
GenerateAndEncodeWeaveRSASignature(OID sigAlgoOID, TLVWriter & writer, uint64_t tag, const uint8_t *hash, uint8_t hashLen, const uint8_t *keyDER, uint16_t keyDERLen)
Membuat dan mengenkode tanda tangan RSA Weave.
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
Dapatkan ukuran Elliptic Curve (dalam 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)
Verifikasi tanda tangan HMAC Weave.
VerifyRSASignature(OID sigAlgoOID, const uint8_t *hash, uint8_t hashLen, const EncodedRSASignature & sig, const uint8_t *certDER, uint16_t certDERLen)
Verifikasi tanda tangan Weave RSA.

Class

nl::Tenun::Crypto::Mode CTR
nl::Tenun::Crypto::CTR_DRBG
nl::Tenun::Kripto::EncodedECDSASignature
nl::Weave::Crypto::EncodedECPrivateKey
nl::Weave::Crypto::EncodedECPublicKey
nl::Tenun::Crypto::Tanda Tangan Encoded
nl::Weave::Crypto::EncodedRSAKey
nl::Weave::Crypto::EncodedRSASignature
nl::Tenun::Kripto::HKDF
nl::Tenun::Kripto::HKDFSHA1Or256
nl::Tenun::Crypto::HMAC

Enumerasi

X963EncodedPointFormat

 X963EncodedPointFormat

Typedef

AES128CTRDRBG

CTR_DRBG< Platform::Security::AES128BlockCipherEnc > AES128CTRDRBG

Mode AES128CTR

CTRMode< Platform::Security::AES128BlockCipherEnc > AES128CTRMode

Mode AES256CTR

CTRMode< Platform::Security::AES256BlockCipherEnc > AES256CTRMode

EntropiFunct

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

Tanda tangan fungsi yang digunakan untuk mengumpulkan data acak dari sumber entropi.

Hongkong1

HKDF< Platform::Security::SHA1 > HKDFSHA1

HKDFSHA256

HKDF< Platform::Security::SHA256 > HKDFSHA256

HMACSHA1

HMAC< Platform::Security::SHA1 > HMACSHA1

HMACSHA256

HMAC< Platform::Security::SHA256 > HMACSHA256

Fungsi

HapusDataRahasia

NL_DLL_EXPORT void ClearSecretData(
  uint8_t *buf,
  uint32_t len
)

Menghapus len byte pertama dari area memori buf.

Dalam implementasi ini, len byte pertama area memori buf diisi dengan nol.

Detail
Parameter
[in] buf
Pointer ke buffer memori yang menyimpan data rahasia yang harus dihapus.
[in] len
Menentukan ukuran data rahasia dalam byte.

ConstantTimeCompare

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

Membandingkan len byte pertama area memori buf1 dan area memori buf2.

Waktu yang diambil oleh fungsi ini tidak bergantung pada data dalam area memori buf1 dan buf2.

Detail
Parameter
[in] buf1
Pointer ke blok memori.
[in] buf2
Pointer ke blok memori.
[in] len
Ukuran area memori untuk dibandingkan dalam byte.
Nilai yang Ditampilkan
true
jika len byte pertama dari area memori buf1 dan buf2 sama.
false
sebaliknya.

DekodeBIGNUMNilai

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

DekodeECDSASignature

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

DekodeEC

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

DekodeX962ECPoint

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

DekodeX962ECPoint

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
)

EnkodeBIGNUMValueLE

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

EncodeECDSASignature

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

EncodeX962ECPoint

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

FixLenSigToECDSASig

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

GenerateAndEncodeWeaveHMACSignature

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

Membuat dan mengenkode tanda tangan HMAC Weave.

Menghitung tanda tangan HMAC untuk data tertentu menggunakan kunci rahasia dan menulis tanda tangan sebagai struktur Weave HMACSignature ke penulis TLV yang ditentukan dengan tag tertentu.

Detail
Parameter
[in] sigAlgoOID
OID algoritme yang akan digunakan untuk membuat tanda tangan HMAC.
[in] writer
Objek TLVWriter tempat tanda tangan yang dienkode harus ditulis.
[in] tag
TLV yang akan dikaitkan dengan struktur tanda tangan yang dienkode.
[in] data
Buffering yang berisi data yang akan ditandatangani.
[in] dataLen
Panjang data dalam byte.
[in] key
Buffering yang berisi kunci rahasia yang akan digunakan untuk membuat tanda tangan HMAC.
[in] keyLen
Panjang kunci rahasia dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika operasi berhasil.
other
Kode error Weave lainnya yang terkait dengan encoding tanda tangan.

GenerateAndEncodeWeaveRSASignature

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

Membuat dan mengenkode tanda tangan RSA Weave.

Menghitung tanda tangan RSA menggunakan kunci pribadi RSA yang dienkode X509 dan hash pesan yang ditentukan, serta menulis tanda tangan sebagai struktur Weave RSASignature ke penulis TLV yang ditentukan dengan tag tertentu.

Detail
Parameter
[in] sigAlgoOID
OID algoritme yang akan digunakan untuk membuat tanda tangan RSA.
[in] writer
Objek TLVWriter tempat tanda tangan yang dienkode harus ditulis.
[in] tag
TLV yang akan dikaitkan dengan struktur tanda tangan yang dienkode.
[in] hash
Buffering yang berisi hash data yang akan ditandatangani.
[in] hashLen
Panjang hash data dalam byte.
[in] keyDER
Buffering berisi kunci pribadi yang akan digunakan untuk membuat tanda tangan. Kunci pribadi diharapkan dienkode sebagai struktur kunci pribadi RSA X509.
[in] keyDERLen
Panjang kunci pribadi yang dienkode dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika operasi berhasil.
other
Kode error Weave lainnya yang terkait dengan decoding kunci pribadi, yang menghasilkan tanda tangan atau encoding tanda tangan.

GenerateECDHKey

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

GenerateECDSASignature

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

GenerateECDSASignature

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
)

Dapatkan ukuran Elliptic Curve (dalam byte).

Detail
Parameter
[in] curveOID
OID Kurva Elliptik yang Ditentukan.
Nilai yang Ditampilkan
Returns
0 jika CurveOID yang ditentukan tidak mendukung Kurva Elliptik. Jika tidak, menampilkan ukuran kurva dalam byte.

GetECGroupForCurve

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

ByteByte

void ReverseBytes(
  uint8_t *buf,
  size_t len
)

ShaNIDDariSigAlgoOID

int ShaNIDFromSigAlgoOID(
  OID sigAlgoOID
)

VerifikasiECDSASignature

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

VerifikasiECDSASignature

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

VerifikasiHMACSignature

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

Verifikasi tanda tangan HMAC Weave.

Memverifikasi tanda tangan HMAC menggunakan data tertentu dan kunci rahasia yang akan digunakan untuk memverifikasi tanda tangan.

Detail
Parameter
[in] sigAlgoOID
OID algoritme yang akan digunakan untuk membuat tanda tangan HMAC.
[in] data
Buffering yang berisi data yang akan ditandatangani.
[in] dataLen
Panjang data dalam byte.
[in] sig
Tanda tangan HMAC yang dienkode untuk diverifikasi.
[in] key
Buffering yang berisi kunci rahasia yang akan digunakan untuk membuat tanda tangan HMAC.
[in] keyLen
Panjang kunci rahasia dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika verifikasi tanda tangan HMAC berhasil.
WEAVE_ERROR_INVALID_SIGNATURE
Jika verifikasi tanda tangan HMAC gagal.

VerifikasiRSASignature

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

Verifikasi tanda tangan Weave RSA.

Memverifikasi tanda tangan RSA menggunakan hash data tertentu dan sertifikat RSA berenkode X509 yang berisi kunci publik untuk digunakan untuk memverifikasi tanda tangan.

Detail
Parameter
[in] sigAlgoOID
OID algoritme yang akan digunakan untuk membuat tanda tangan RSA.
[in] hash
Buffering yang berisi hash data yang akan ditandatangani.
[in] hashLen
Panjang hash data dalam byte.
[in] sig
Tanda tangan RSA yang dienkode untuk diverifikasi.
[in] certDER
Buffering yang berisi sertifikat dengan kunci publik yang akan digunakan untuk memverifikasi tanda tangan. Sertifikat ini diharapkan dienkode DER pada struktur RSA X509.
[in] certDERLen
Panjang sertifikat yang dienkode dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika operasi berhasil.