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::Profil::Keamanan

Namespace ini mencakup semua antarmuka dalam Weave untuk profil Keamanan Weave.

Ringkasan

Enumerasi

@235 enum
Flag Tujuan Kunci Sertifikat X.509.
@236 enum
Tanda Penggunaan Kunci Sertifikat X.509.
@237 enum
Bendera Sertifikat Menenun.
@238 enum
Flag Dekode Sertifikat Tenun.
@239 enum
Tanda Validasi Sertifikat Tenun.
@240 enum
@280 enum
@281 enum
@282 enum
@283 enum
@284 enum
@285 enum
@286 enum
@287 enum
@288 enum
@289 enum

Typedef

GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig) typedef
Buat tanda tangan ECDSA menggunakan kunci pribadi node Weave lokal.

Variabel

gProvisioningBundleKDFSalt = "Weave Provisioning Bundle v1"[]
const char

Fungsi

CASECertInfoFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t & certInfoLen)
Membaca Token Akses Weave dan membuat struktur TLV Info Sertifikat CASE yang berisi sertifikat dari token akses.
CASECertInfoFromAccessToken(TLVReader & reader, TLVWriter & writer)
Membaca Token Akses Weave dan menulis struktur CASE Info Sertifikat TLV yang berisi sertifikat dari token akses.
ConvertAuthorityKeyIdentifierExtension(ASN1Reader & reader, TLVWriter & writer)
ConvertCertificate(ASN1Reader & reader, TLVWriter & writer)
ConvertDistinguishedName(ASN1Reader & reader, TLVWriter & writer, uint64_t tag)
ConvertECDSASignature_DERToWeave(const uint8_t *sigBuf, uint8_t sigLen, TLVWriter & writer, uint64_t tag)
ConvertExtension(ASN1Reader & reader, TLVWriter & writer)
ConvertExtensions(ASN1Reader & reader, TLVWriter & writer)
ConvertSubjectPublicKeyInfo(ASN1Reader & reader, TLVWriter & writer)
ConvertValidity(ASN1Reader & reader, TLVWriter & writer)
ConvertWeaveCertToX509Cert(const uint8_t *weaveCert, uint32_t weaveCertLen, uint8_t *x509CertBuf, uint32_t x509CertBufSize, uint32_t & x509CertLen)
ConvertX509CertToWeaveCert(const uint8_t *x509Cert, uint32_t x509CertLen, uint8_t *weaveCertBuf, uint32_t weaveCertBufSize, uint32_t & weaveCertLen)
DecodeConvertAuthorityKeyIdentifierExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertBasicConstraintsExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertCert(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertDN(TLVReader & reader, ASN1Writer & writer, WeaveDN & dn)
DecodeConvertECDSASignature(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtendedKeyUsageExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertExtensions(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertKeyUsageExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertRSASignature(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertSubjectKeyIdentifierExtension(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertSubjectPublicKeyInfo(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertTBSCert(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeConvertValidity(TLVReader & reader, ASN1Writer & writer, WeaveCertificateData & certData)
DecodeCopyECDSASignature_DER(const uint8_t *sigBuf, uint8_t sigLen, EncodedECDSASignature & sig)
DecodeWeaveCert(const uint8_t *weaveCert, uint32_t weaveCertLen, WeaveCertificateData & certData)
DecodeWeaveCert(TLVReader & reader, WeaveCertificateData & certData)
DecodeWeaveDN(TLVReader & reader, WeaveDN & dn)
DecodeWeaveECDSASignature(TLVReader & reader, EncodedECDSASignature & sig)
DecodeWeaveECPrivateKey(const uint8_t *buf, uint32_t len, uint32_t & weaveCurveId, EncodedECPublicKey & pubKey, EncodedECPrivateKey & privKey)
NL_DLL_EXPORT WEAVE_ERROR
DescribeWeaveCertId(OID attrOID, uint64_t weaveCertId)
const char *
DetermineCertType(WeaveCertificateData & cert)
Menentukan jenis umum sertifikat Weave.
EncodeWeaveECDSASignature(TLVWriter & writer, EncodedECDSASignature & sig, uint64_t tag)
EncodeWeaveECPrivateKey(uint32_t weaveCurveId, const EncodedECPublicKey *pubKey, const EncodedECPrivateKey & privKey, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outLen)
NL_DLL_EXPORT WEAVE_ERROR
ExtractCertFromAccessToken(TLVReader & reader, TLVWriter & writer, uint64_t tag)
Membaca Token Akses Weave dan mengekstrak Sertifikat Token Akses.
ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t & privKeyLen)
Membaca Token Akses Weave dan mengekstrak kunci pribadi.
ExtractPrivateKeyFromAccessToken(TLVReader & reader, TLVWriter & writer)
Membaca Token Akses Weave dan mengekstrak kunci pribadi.
GenerateAndEncodeWeaveECDSASignature(TLVWriter & writer, uint64_t tag, const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *signingKey, uint16_t signingKeyLen)
Membuat dan mengenkode tanda tangan Weave ECDSA.
GenerateOperationalDeviceCert(uint64_t deviceId, EncodedECPublicKey & devicePubKey, uint8_t *cert, uint16_t certBufSize, uint16_t & certLen, GenerateECDSASignatureFunct genCertSignature)
NL_DLL_EXPORT WEAVE_ERROR
Membuat sertifikat perangkat operasional Weave.
GetWeaveSignatureAlgo(const uint8_t *sig, uint16_t sigLen, OID & sigAlgoOID)
Indent(FILE *out, uint16_t count)
void
InsertRelatedCertificatesIntoWeaveSignature(uint8_t *sigBuf, uint16_t sigLen, uint16_t sigBufLen, const uint8_t *relatedCerts, uint16_t relatedCertsLen, uint16_t & outSigLen)
IsCertificateExtensionTag(uint64_t tag)
bool
IsCurveInSet(uint32_t curveId, uint8_t curveSet)
bool
IsSupportedCurve(uint32_t curveId)
bool
IsWeaveIdX509Attr(OID oid)
bool
IsWeaveX509Attr(OID oid)
bool
LoadAccessTokenCerts(const uint8_t *accessToken, uint32_t accessTokenLen, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
Memuat sertifikat dalam token akses ke dalam kumpulan sertifikat Weave.
LoadAccessTokenCerts(TLVReader & reader, WeaveCertificateSet & certSet, uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
Memuat sertifikat dalam token akses ke dalam kumpulan sertifikat Weave.
MakeDeviceCredentialHash(const char *serialNum, size_t serialNumLen, const char *deviceId, size_t deviceIdLen, const char *deviceSecret, size_t deviceSecretLen, char *hashBuf, size_t hashBufSize)
NL_DLL_EXPORT WEAVE_ERROR
Membuat hash verifikasi (dalam format base-64) untuk serangkaian kredensial perangkat Thermostat tertentu.
MakeWeaveProvisioningHash(uint64_t nodeId, const char *weaveCert, size_t weaveCertLen, const char *weavePrivKey, size_t weavePrivKeyLen, const char *pairingCode, size_t pairingCodeLen, char *hashBuf, size_t hashBufSize)
NL_DLL_EXPORT WEAVE_ERROR
Buat hash verifikasi (dalam format base-64) untuk sekumpulan informasi penyediaan Weave tertentu.
OIDToWeaveCurveId(ASN1::OID curveOID)
uint32_t
PackCertTime(const ASN1UniversalTime & time, uint32_t & packedTime)
NL_DLL_EXPORT WEAVE_ERROR
Mengonversi tanggal/waktu sertifikat (dalam bentuk struktur waktu universal ASN.1) menjadi tanggal/waktu sertifikat yang dikemas.
PackedCertDateToTime(uint16_t packedDate)
NL_DLL_EXPORT uint32_t
Konversikan tanggal sertifikat yang dikemas ke tanggal/waktu sertifikat dikemas yang sesuai, dengan bagian waktu nilai tersebut ditetapkan ke 00:00:00.
PackedCertTimeToDate(uint32_t packedTime)
NL_DLL_EXPORT uint16_t
Konversikan tanggal/waktu sertifikat yang dikemas menjadi tanggal sertifikat yang dikemas.
ParseWeaveIdAttribute(ASN1Reader & reader, uint64_t & weaveIdOut)
PrintCert(FILE *out, const WeaveCertificateData & cert, const WeaveCertificateSet *certSet, uint16_t indent, bool verbose)
NL_DLL_EXPORT void
PrintCertArray(FILE *out, TLVReader & reader, uint16_t indent)
PrintCertReference(FILE *out, TLVReader & reader, uint16_t indent)
PrintCertType(FILE *out, uint8_t certType)
void
PrintCertValidationResults(FILE *out, const WeaveCertificateSet & certSet, const ValidationContext & validContext, uint16_t indent)
NL_DLL_EXPORT void
PrintECDSASignature(FILE *out, TLVReader & reader, uint16_t indent)
PrintHexField(FILE *out, const char *name, uint16_t indent, uint16_t count, const uint8_t *data)
void
PrintPackedDate(FILE *out, uint16_t t)
void
PrintPackedTime(FILE *out, uint32_t t)
void
PrintWeaveDN(FILE *out, const WeaveDN & dn)
void
PrintWeaveDN(FILE *out, TLVReader & reader)
PrintWeaveSignature(FILE *out, TLVReader & reader, uint16_t indent)
SecondsSinceEpochToPackedCertTime(uint32_t secondsSinceEpoch)
NL_DLL_EXPORT uint32_t
Mengonversi jumlah detik sejak 1970-01-01 00:00:00 UTC menjadi tanggal/waktu sertifikat yang dikemas.
TranslateOpenSSLError(WEAVE_ERROR defaultErr)
UnpackCertTime(uint32_t packedTime, ASN1UniversalTime & time)
NL_DLL_EXPORT WEAVE_ERROR
Keluarkan tanggal/waktu sertifikat yang dikemas ke dalam struktur waktu universal ASN.1.
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
NL_DLL_EXPORT WEAVE_ERROR
VerifyWeaveSignature(const uint8_t *msgHash, uint8_t msgHashLen, const uint8_t *sig, uint16_t sigLen, OID expectedSigAlgoOID, WeaveCertificateSet & certSet, ValidationContext & certValidContext)
NL_DLL_EXPORT WEAVE_ERROR
WeaveCurveIdToOID(uint32_t weaveCurveId)
NL_DLL_EXPORT OID

Class

nl::Weave::Profiles::Keamanan::CertificateKeyId
nl::Weave::Profiles::Keamanan::ValidationContext
nl::Weave::Profiles::Keamanan::WeaveCertificateData
nl::Weave::Profiles::Keamanan::WeaveCertificateSet
nl::Weave::Profiles::Keamanan::WeaveDN
nl::Weave::Profiles::Keamanan::WeaveProvisioningBundle
nl::Weave::Profiles::Keamanan::WeaveSignatureGenerator

Menghasilkan WeaveSignature menggunakan kunci pribadi dalam memori.

nl::Weave::Profiles::Keamanan::WeaveSignatureGeneratorBase

Menyediakan fungsionalitas generik untuk menghasilkan WeaveSignatures.

Namespace

nl::Tenun::Profil::Keamanan::AppKeys

Namespace ini mencakup semua antarmuka dalam Weave untuk library kunci aplikasi Weave dalam profil keamanan Weave.

nl::Tenun::Profil::Keamanan::CASE

Namespace ini mencakup semua antarmuka dalam Weave untuk protokol Certificate Authenticationd Session Enforcement (CASE) dalam profil keamanan Weave.

nl::Weave::Profiles::Keamanan::CertProvisioning

Namespace ini mencakup semua antarmuka dalam Weave untuk protokol Penyediaan Sertifikat Weave dalam profil keamanan Weave.

nl::Tenun::Profil::Keamanan::KeyExport

Namespace ini mencakup semua antarmuka dalam Weave untuk protokol ekspor kunci dalam profil keamanan Weave.

nl::Tenun::Profil::Keamanan::TEMPAT

Namespace ini mencakup semua antarmuka dalam protokol Weave for the Password Authenticationd Session Enforcement (PASE) dalam profil keamanan Weave.

nl::Tenun::Profil::Keamanan::Kode sandi

Namespace ini mencakup semua antarmuka dalam Weave untuk library kode sandi Weave dalam profil keamanan Weave.

nl::Tenun::Profil::Keamanan::Ambil

Namespace ini mencakup semua antarmuka dalam Weave untuk protokol Token Authenticationd Key Exchange (Take) dalam profil Keamanan Weave.

Enumerasi

@235

 @235

Flag Tujuan Kunci Sertifikat X.509.

@236

 @236

Tanda Penggunaan Kunci Sertifikat X.509.

@237

 @237

Bendera Sertifikat Menenun.

Berisi informasi tentang sertifikat yang telah dimuat ke dalam objek WeaveCertSet.

@238

 @238

Flag Dekode Sertifikat Tenun.

Berisi informasi yang menentukan cara sertifikat harus didekode.

@239

 @239

Tanda Validasi Sertifikat Tenun.

Berisi informasi yang menentukan cara memvalidasi sertifikat.

@240

 @240

@280

 @280

@281

 @281

@282

 @282

@283

 @283

@284

 @284

@285

 @285

@286

 @286

@287

 @287

@288

 @288

@289

 @289

Typedef

GenerateECDSASignatureFunct

WEAVE_ERROR(* GenerateECDSASignatureFunct)(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature &ecdsaSig)

Buat tanda tangan ECDSA menggunakan kunci pribadi node Weave lokal.

Saat dipanggil, implementasi harus menghitung tanda tangan pada nilai hash yang diberikan menggunakan kunci pribadi node.

Detail
Parameter
[in] hash
Buffering yang berisi hash sertifikat yang akan ditandatangani.
[in] hashLen
Panjang hash yang digunakan dalam byte.
[in] ecdsaSig
Referensi ke objek tanda tangan ecdsa, tempat hasil fungsi ini disimpan.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika operasi berhasil.

Variabel

ProvisioningBundleKDFSalt

const char gProvisioningBundleKDFSalt[] = "Weave Provisioning Bundle v1"

Fungsi

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  uint8_t *certInfoBuf,
  uint16_t certInfoBufSize,
  uint16_t & certInfoLen
)

Membaca Token Akses Weave dan membuat struktur TLV Info Sertifikat CASE yang berisi sertifikat dari token akses.

Fungsi ini mendekode Token Akses Weave tertentu dan mengenkode TLV untuk struktur Info Sertifikat CASE Weave. Kolom EntityCertificate dalam struktur CertificateInfo ditetapkan ke sertifikat token akses, dan kolom terkaitCertificates (jika ada) diatur ke kolom yang sesuai dalam token akses.

Detail
Parameter
accessToken
Pointer ke buffer yang berisi Token Akses Weave yang dienkode.
accessTokenLen
Panjang token akses yang dienkode.
certInfoBuf
Pointer ke buffering tempat struktur info sertifikat CASE harus dienkode.
certInfoBufSize
Ukuran buffer yang diarahkan oleh certInfoBuf.
certInfoLen
Referensi ke bilangan bulat akan ditetapkan ke panjang struktur info sertifikat yang dienkode. CATATAN: Nilai ini hanya ditetapkan saat fungsi berhasil ditampilkan.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika struktur info sertifikat CASE akses berhasil dienkode.
tlv-errors
Error tenun yang terkait dengan membaca atau menulis TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

CASECertInfoFromAccessToken

WEAVE_ERROR CASECertInfoFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Membaca Token Akses Weave dan menulis struktur CASE Info Sertifikat TLV yang berisi sertifikat dari token akses.

Fungsi ini membaca Token Akses Weave dari TLVReader tertentu dan menulis TLV untuk struktur Info Sertifikat CASE Weave ke TLVWriter. Kolom EntityCertificate dalam struktur CertificateInfo ditetapkan ke sertifikat token akses, dan kolom terkaitCertificates (jika ada) diatur ke kolom yang sesuai dalam token akses.

Detail
Parameter
[in] reader
TLVReader yang diposisikan pada Token Akses Weave.
[in] writer
TLVWriter yang akan digunakan untuk merekam info sertifikat CASE output.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika struktur info sertifikat CASE akses berhasil dienkode.
tlv-errors
Error tenun yang terkait dengan membaca atau menulis TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

ConvertAuthorityKeyIdentifierExtension

WEAVE_ERROR ConvertAuthorityKeyIdentifierExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

SertifikatKonversi

WEAVE_ERROR ConvertCertificate(
  ASN1Reader & reader,
  TLVWriter & writer
)

MengonversiDistinguishedName

WEAVE_ERROR ConvertDistinguishedName(
  ASN1Reader & reader,
  TLVWriter & writer,
  uint64_t tag
)

MengonversiECDSASignature_DERToWeave

WEAVE_ERROR ConvertECDSASignature_DERToWeave(
  const uint8_t *sigBuf,
  uint8_t sigLen,
  TLVWriter & writer,
  uint64_t tag
)

ConvertExtension

WEAVE_ERROR ConvertExtension(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertExtensions

WEAVE_ERROR ConvertExtensions(
  ASN1Reader & reader,
  TLVWriter & writer
)

MengonversiSubjectPublicKeyInfo

WEAVE_ERROR ConvertSubjectPublicKeyInfo(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertValiditas

WEAVE_ERROR ConvertValidity(
  ASN1Reader & reader,
  TLVWriter & writer
)

ConvertWeaveCertToX509Cert

WEAVE_ERROR ConvertWeaveCertToX509Cert(
  const uint8_t *weaveCert,
  uint32_t weaveCertLen,
  uint8_t *x509CertBuf,
  uint32_t x509CertBufSize,
  uint32_t & x509CertLen
)

MengonversiX509CertToWeaveCert

WEAVE_ERROR ConvertX509CertToWeaveCert(
  const uint8_t *x509Cert,
  uint32_t x509CertLen,
  uint8_t *weaveCertBuf,
  uint32_t weaveCertBufSize,
  uint32_t & weaveCertLen
)

DecodeConvertAuthorityKeyIdentifierExtension

WEAVE_ERROR DecodeConvertAuthorityKeyIdentifierExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertBasicConstraintsExtension

WEAVE_ERROR DecodeConvertBasicConstraintsExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertCert

WEAVE_ERROR DecodeConvertCert(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DekodeKonversiDN

WEAVE_ERROR DecodeConvertDN(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveDN & dn
)

Tanda TanganDecodeConvertECDSA

WEAVE_ERROR DecodeConvertECDSASignature(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertExtendedKeyUsageExtension

WEAVE_ERROR DecodeConvertExtendedKeyUsageExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DekodeKonversiEkstensi

WEAVE_ERROR DecodeConvertExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertExtensions

WEAVE_ERROR DecodeConvertExtensions(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertKeyUsageExtension

WEAVE_ERROR DecodeConvertKeyUsageExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

Tanda TanganDecodeConvertRSA

WEAVE_ERROR DecodeConvertRSASignature(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertSubjectKeyIdentifierExtension

WEAVE_ERROR DecodeConvertSubjectKeyIdentifierExtension(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertSubjectPublicKeyInfo

WEAVE_ERROR DecodeConvertSubjectPublicKeyInfo(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DekodeKonversiTBSCert

WEAVE_ERROR DecodeConvertTBSCert(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DecodeConvertValidity

WEAVE_ERROR DecodeConvertValidity(
  TLVReader & reader,
  ASN1Writer & writer,
  WeaveCertificateData & certData
)

DekodeSalinECDSASignature_DER

WEAVE_ERROR DecodeCopyECDSASignature_DER(
  const uint8_t *sigBuf,
  uint8_t sigLen,
  EncodedECDSASignature & sig
)

DekodeWeaveCert

WEAVE_ERROR DecodeWeaveCert(
  const uint8_t *weaveCert,
  uint32_t weaveCertLen,
  WeaveCertificateData & certData
)

DekodeWeaveCert

WEAVE_ERROR DecodeWeaveCert(
  TLVReader & reader,
  WeaveCertificateData & certData
)

DekodeWeaveDN

WEAVE_ERROR DecodeWeaveDN(
  TLVReader & reader,
  WeaveDN & dn
)

Tanda Tangan DecodeWeaveECDSA

WEAVE_ERROR DecodeWeaveECDSASignature(
  TLVReader & reader,
  EncodedECDSASignature & sig
)

DekodeWeaveECPrivateKey

NL_DLL_EXPORT WEAVE_ERROR DecodeWeaveECPrivateKey(
  const uint8_t *buf,
  uint32_t len,
  uint32_t & weaveCurveId,
  EncodedECPublicKey & pubKey,
  EncodedECPrivateKey & privKey
)

JelaskanWeaveCertId

const char * DescribeWeaveCertId(
  OID attrOID,
  uint64_t weaveCertId
)

MenentukanCertCertType

WEAVE_ERROR DetermineCertType(
  WeaveCertificateData & cert
)

Menentukan jenis umum sertifikat Weave.

Fungsi ini melakukan penilaian umum terhadap jenis sertifikat berdasarkan struktur DN subjek dan ekstensi yang ada. Aplikasi bebas menggantikan penilaian ini dengan menyetel cert.CertType ke nilai lain, termasuk yang ditentukan aplikasi.

Secara umum, aplikasi hanya akan memercayai sertifikat pembanding jika sertifikat tersebut ditautkan ke root certificate tepercaya. Namun, jenis yang ditetapkan pada sertifikat dapat memengaruhi sifat kepercayaan ini, misalnya untuk mengizinkan atau melarang akses ke fitur tertentu. Oleh karena itu, perubahan pada algoritme ini dapat memiliki efek yang SANGAT PENTING dan POTENSIALNYA pada keamanan sistem secara keseluruhan, dan tidak boleh dilakukan tanpa pemahaman yang menyeluruh tentang implikasinya.

CATATAN: Sertifikat token akses tidak dapat dibedakan hanya berdasarkan strukturnya. Dengan demikian, fungsi ini tidak akan pernah menetapkan cert.CertType = kCertType_AccessToken.

Tanda Tangan EncodeWeaveECDSA

WEAVE_ERROR EncodeWeaveECDSASignature(
  TLVWriter & writer,
  EncodedECDSASignature & sig,
  uint64_t tag
)

EncodeWeaveECPrivateKey

NL_DLL_EXPORT WEAVE_ERROR EncodeWeaveECPrivateKey(
  uint32_t weaveCurveId,
  const EncodedECPublicKey *pubKey,
  const EncodedECPrivateKey & privKey,
  uint8_t *outBuf,
  uint32_t outBufSize,
  uint32_t & outLen
)

EkstrakCertFromAccessToken

WEAVE_ERROR ExtractCertFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer,
  uint64_t tag
)

Membaca Token Akses Weave dan mengekstrak Sertifikat Token Akses.

Fungsi ini membaca Token Akses Weave dari TLVReader dan menulis Sertifikat Token Akses ke TLVWriter yang ditentukan.

Detail
Parameter
[in] reader
TLVReader yang diposisikan pada Token Akses Weave.
[in] writer
TLVWriter tempat sertifikat akan ditulis.
[in] tag
Tag TLV yang akan digunakan saat menulis sertifikat.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika struktur info sertifikat CASE akses berhasil dienkode.
tlv-errors
Error tenun yang terkait dengan membaca atau menulis TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

MengekstrakKeyKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  uint8_t *privKeyBuf,
  uint16_t privKeyBufSize,
  uint16_t & privKeyLen
)

Membaca Token Akses Weave dan mengekstrak kunci pribadi.

Fungsi ini mendekode Token Akses Weave tertentu dan mengekstrak kolom kunci pribadi dari token.

Detail
Parameter
accessToken
Pointer ke buffer yang berisi Token Akses Weave yang dienkode.
accessTokenLen
Panjang token akses yang dienkode.
privKeyBuf
Pointer ke buffer tempat struktur kunci pribadi harus dienkode.
privKeyBufSize
Ukuran buffer yang diarahkan oleh privKeyBuf.
privKeyLen
Referensi ke bilangan bulat akan ditetapkan ke panjang kunci pribadi. CATATAN: Nilai ini hanya ditetapkan saat fungsi berhasil ditampilkan.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika kunci pribadi berhasil diekstrak.
tlv-errors
Error tenun yang terkait dengan membaca atau menulis TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

MengekstrakKeyKeyFromAccessToken

WEAVE_ERROR ExtractPrivateKeyFromAccessToken(
  TLVReader & reader,
  TLVWriter & writer
)

Membaca Token Akses Weave dan mengekstrak kunci pribadi.

Fungsi ini mendekode Token Akses Weave tertentu dan mengekstrak kolom kunci pribadi dari token.

Detail
Parameter
[in] reader
TLVReader yang diposisikan pada Token Akses Weave.
[in] writer
TLVWriter tempat kunci pribadi akan ditulis.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika kunci pribadi berhasil diekstrak.
tlv-errors
Error tenun yang terkait dengan membaca atau menulis TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

GenerateAndEncodeWeaveECDSASignature

WEAVE_ERROR GenerateAndEncodeWeaveECDSASignature(
  TLVWriter & writer,
  uint64_t tag,
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *signingKey,
  uint16_t signingKeyLen
)

Membuat dan mengenkode tanda tangan Weave ECDSA.

Menghitung tanda tangan ECDSA menggunakan kunci pribadi dan hash pesan yang ditentukan serta menulis tanda tangan sebagai struktur Weave ECDSASignature ke penulis TLV yang ditentukan dengan tag tertentu.

Detail
Parameter
[in] writer
Objek TLVWriter tempat tanda tangan yang dienkode harus ditulis.
[in] tag
TLV yang akan dikaitkan dengan struktur tanda tangan yang dienkode.
[in] msgHash
Buffering yang berisi hash pesan yang akan ditandatangani.
[in] msgHashLen
Panjang hash pesan dalam byte.
[in] signingKey
Buffering berisi kunci pribadi yang akan digunakan untuk membuat tanda tangan. Kunci pribadi diharapkan dienkode sebagai struktur TLV Weave EllipticCurvePrivateKey.
[in] signingKeyLen
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.

GenerateOperationalDeviceCert

NL_DLL_EXPORT WEAVE_ERROR GenerateOperationalDeviceCert(
  uint64_t deviceId,
  EncodedECPublicKey & devicePubKey,
  uint8_t *cert,
  uint16_t certBufSize,
  uint16_t & certLen,
  GenerateECDSASignatureFunct genCertSignature
)

Membuat sertifikat perangkat operasional Weave.

Fungsi ini membuat sertifikat operasional Weave yang ditandatangani sendiri yang dienkode dalam format TLV Weave.

Detail
Parameter
deviceId
ID perangkat operasional Weave.
devicePubKey
Menenun kunci publik perangkat operasional.
cert
Pointer ke buffer tempat sertifikat yang dihasilkan akan ditulis.
certBufSize
Panjang dalam byte buffer sertifikat yang disediakan.
certLen
Panjang byte dari sertifikat yang dihasilkan.
genCertSignature
Pointer ke fungsi yang menghasilkan tanda tangan ECDSA pada hash sertifikat yang diberikan menggunakan kunci pribadi perangkat operasional.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika sertifikat Weave berhasil dibuat.

GetWeaveSignatureAlgo

WEAVE_ERROR GetWeaveSignatureAlgo(
  const uint8_t *sig,
  uint16_t sigLen,
  OID & sigAlgoOID
)

Indentasi

void Indent(
  FILE *out,
  uint16_t count
)

Sisipkan SertifikatTerkaitIntoWeaveSignature

WEAVE_ERROR InsertRelatedCertificatesIntoWeaveSignature(
  uint8_t *sigBuf,
  uint16_t sigLen,
  uint16_t sigBufLen,
  const uint8_t *relatedCerts,
  uint16_t relatedCertsLen,
  uint16_t & outSigLen
)

IsExtensionExtensionTag

bool IsCertificateExtensionTag(
  uint64_t tag
)

IsCurveInSet

bool IsCurveInSet(
  uint32_t curveId,
  uint8_t curveSet
)

KurvaIsSupported

bool IsSupportedCurve(
  uint32_t curveId
)

IsWeaveIdX509Attr

bool IsWeaveIdX509Attr(
  OID oid
)

IsWeaveX509Attr

bool IsWeaveX509Attr(
  OID oid
)

LoadAccessTokenCerts

WEAVE_ERROR LoadAccessTokenCerts(
  const uint8_t *accessToken,
  uint32_t accessTokenLen,
  WeaveCertificateSet & certSet,
  uint16_t decodeFlags,
  WeaveCertificateData *& accessTokenCert
)

Memuat sertifikat dalam token akses ke dalam kumpulan sertifikat Weave.

Fungsi ini mendekode token akses Weave tertentu dan memuat sertifikat token akses ke objek set sertifikat Weave yang ditentukan. Jika token akses berisi satu atau beberapa sertifikat terkait, token ini juga dimuat ke dalam kumpulan sertifikat.

Detail
Parameter
accessToken
Pointer ke buffer yang berisi Token Akses Weave yang dienkode.
accessTokenLen
Panjang token akses yang dienkode.
certSet
Kumpulan sertifikat tempat sertifikat token akses harus dimuat.
decodeFlags
Tanda dekode sertifikat yang harus digunakan saat memuat sertifikat.
accessTokenCert
Referensi ke pointer yang akan ditetapkan ke struktur data sertifikat Weave untuk sertifikat token akses. CATATAN: Pointer ini hanya akan ditetapkan jika fungsi berhasil ditampilkan.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika sertifikat token akses berhasil dimuat.
tlv-errors
Error tenun yang terkait dengan membaca TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

LoadAccessTokenCerts

WEAVE_ERROR LoadAccessTokenCerts(
  TLVReader & reader,
  WeaveCertificateSet & certSet,
  uint16_t decodeFlags,
  WeaveCertificateData *& accessTokenCert
)

Memuat sertifikat dalam token akses ke dalam kumpulan sertifikat Weave.

Fungsi ini membaca token akses Weave dari TLVReader tertentu dan memuat sertifikat token akses ke objek set sertifikat Weave yang ditentukan. Jika token akses berisi satu atau beberapa sertifikat terkait, token ini juga dimuat ke dalam kumpulan sertifikat.

Detail
Parameter
reader
Objek TLVReader yang diposisikan tepat sebelum Token Akses Weave.
certSet
Kumpulan sertifikat tempat sertifikat token akses harus dimuat.
decodeFlags
Tanda dekode sertifikat yang harus digunakan saat memuat sertifikat.
accessTokenCert
Referensi ke pointer yang akan ditetapkan ke struktur data sertifikat Weave untuk sertifikat token akses. CATATAN: Nilai ini hanya ditetapkan saat fungsi berhasil ditampilkan.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika sertifikat token akses berhasil dimuat.
tlv-errors
Error tenun yang terkait dengan membaca TLV.
cert-errors
Error tenun yang terkait dengan decoding sertifikat Weave.
platform-errors
Error khusus platform lainnya.

MembuatHashKredensialPerangkat

NL_DLL_EXPORT WEAVE_ERROR MakeDeviceCredentialHash(
  const char *serialNum,
  size_t serialNumLen,
  const char *deviceId,
  size_t deviceIdLen,
  const char *deviceSecret,
  size_t deviceSecretLen,
  char *hashBuf,
  size_t hashBufSize
)

Membuat hash verifikasi (dalam format base-64) untuk serangkaian kredensial perangkat Thermostat tertentu.

Detail
Parameter
[in] serialNum
Pointer ke buffer yang berisi nomor seri perangkat.
[in] serialNumLen
Panjang string nomor seri.
[in] deviceId
Pointer ke buffer yang berisi id perangkat.
[in] deviceIdLen
Panjang ID perangkat.
[in] deviceSecret
Pointer ke buffer yang berisi rahasia perangkat.
[in] deviceSecretLen
Panjang rahasia perangkat.
[in,out] hashBuf
Pointer ke buffer yang akan menerima nilai hash verifikasi, dalam format base-64. String output akan menjadi null. Buffering ini harus setidaknya sebesar kDeviceCredentialHashLength + 1.
[in] hashBufSize
Ukuran buffer yang ditunjukkan oleh hashBuf dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode berhasil.
WEAVE_ERROR_INVALID_STRING_LENGTH
Jika salah satu nilai input terlalu panjang (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer yang diberikan terlalu kecil untuk menyimpan nilai hash yang dihasilkan.

HashMakeWeaveProvisioning

NL_DLL_EXPORT WEAVE_ERROR MakeWeaveProvisioningHash(
  uint64_t nodeId,
  const char *weaveCert,
  size_t weaveCertLen,
  const char *weavePrivKey,
  size_t weavePrivKeyLen,
  const char *pairingCode,
  size_t pairingCodeLen,
  char *hashBuf,
  size_t hashBufSize
)

Buat hash verifikasi (dalam format base-64) untuk sekumpulan informasi penyediaan Weave tertentu.

Detail
Parameter
[in] nodeId
ID node Weave perangkat.
[in] weaveCert
Pointer ke buffer yang berisi sertifikat perangkat Weave dalam format base-64.
[in] weaveCertLen
Panjang nilai sertifikat yang ditunjukkan oleh weaveCert.
[in] weavePrivKey
Pointer ke buffer yang berisi kunci pribadi perangkat Weave dalam format base-64.
[in] weavePrivKeyLen
Panjang nilai kunci pribadi yang ditunjukkan oleh weavePrivKey.
[in] pairingCode
Pointer ke buffer yang berisi kode penyambungan perangkat.
[in] pairingCodeLen
Panjang nilai kode penghubung yang ditunjukkan oleh penyambunganCode.
[in,out] hashBuf
Pointer ke buffer yang akan menerima nilai hash verifikasi, dalam format base-64. String output akan menjadi null. Buffering ini harus setidaknya sebesar kWeaveProvisioningHashLength + 1.
[in] hashBufSize
Ukuran buffer yang ditunjukkan oleh hashBuf dalam byte.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode berhasil.
WEAVE_ERROR_INVALID_STRING_LENGTH
Jika salah satu nilai input terlalu panjang (> 65535).
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer yang diberikan terlalu kecil untuk menyimpan nilai hash yang dihasilkan.

OIDToWeaveCurveId

uint32_t OIDToWeaveCurveId(
  ASN1::OID curveOID
)

WaktuBersertifikat

NL_DLL_EXPORT WEAVE_ERROR PackCertTime(
  const ASN1UniversalTime & time,
  uint32_t & packedTime
)

Mengonversi tanggal/waktu sertifikat (dalam bentuk struktur waktu universal ASN.1) menjadi tanggal/waktu sertifikat yang dikemas.

Tanggal/waktu sertifikat yang dikemas memberikan representasi ringkas untuk nilai waktu dalam sertifikat (notBefore dan notAfter) yang tidak memerlukan perhitungan kalender lengkap.

Tanggal/waktu sertifikat yang dikemas berisi kolom tanggal/waktu kalender, yaitu tahun, bulan, hari, jam, menit, detik yang dikemas ke dalam bilangan bulat yang tidak ditandatangani. Representasi bit diatur sedemikian rupa sehingga perbandingan ordinal nilai tanggal/waktu yang dikemas sesuai dengan urutan alami waktu yang sesuai. Untuk mengurangi ukurannya, tanggal/waktu sertifikat yang dikemas dibatasi dalam mewakili waktu yang ada pada atau setelah 2000/01/01 00:00:00. Jika ditempatkan dalam bilangan bulat 32-bit tanpa tanda tangan, tanggal/waktu sertifikat yang dikemas dapat mewakili waktu hingga tahun 2133.

Detail
Parameter
time
Tanggal/waktu kalender yang akan dikonversi.
packedTime
Referensi ke bilangan bulat yang akan menerima tanggal/waktu yang terpaket.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika waktu input berhasil dikonversi.
ASN1_ERROR_UNSUPPORTED_ENCODING
Jika waktu input berisi nilai tahun yang tidak dapat direpresentasikan dalam nilai waktu sertifikat yang dikemas.

PackedCertDateToTime

NL_DLL_EXPORT uint32_t PackedCertDateToTime(
  uint16_t packedDate
)

Konversikan tanggal sertifikat yang dikemas ke tanggal/waktu sertifikat dikemas yang sesuai, dengan bagian waktu nilai tersebut ditetapkan ke 00:00:00.

Detail
Parameter
packedDate
Tanggal sertifikat yang dipaketkan untuk dikonversi.
Menampilkan
Tanggal/waktu sertifikat paket yang sesuai.

PackedCertTimeToDate

NL_DLL_EXPORT uint16_t PackedCertTimeToDate(
  uint32_t packedTime
)

Konversikan tanggal/waktu sertifikat yang dikemas menjadi tanggal sertifikat yang dikemas.

Tanggal sertifikat yang dikemas berisi kolom tanggal tahun kalender, bulan, yang dikemas ke dalam bilangan bulat yang tidak ditandatangani. Bit disusun sedemikian rupa sehingga perbandingan ordinal nilai tanggal terkemas sesuai dengan urutan alami tanggal yang sesuai. Untuk mengurangi ukurannya, tanggal sertifikat yang dikemas dibatasi untuk mewakili tanggal pada atau setelah 2000/01/01. Jika ditempatkan dalam bilangan bulat 16-bit tanpa tanda tangan, tanggal sertifikat yang dikemas dapat merepresentasikan tanggal hingga tahun 2176.

Detail
Parameter
packedTime
Tanggal/waktu sertifikat yang dikemas untuk dikonversi.
Menampilkan
Tanggal sertifikat paket yang sesuai.

ParseWeaveIdAttribute

WEAVE_ERROR ParseWeaveIdAttribute(
  ASN1Reader & reader,
  uint64_t & weaveIdOut
)

PrintCert

NL_DLL_EXPORT void PrintCert(
  FILE *out,
  const WeaveCertificateData & cert,
  const WeaveCertificateSet *certSet,
  uint16_t indent,
  bool verbose
)

PrintCertArray

WEAVE_ERROR PrintCertArray(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

Referensi Referensi Cetak

WEAVE_ERROR PrintCertReference(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

PrintCertType

void PrintCertType(
  FILE *out,
  uint8_t certType
)

PrintCertValidationResults

NL_DLL_EXPORT void PrintCertValidationResults(
  FILE *out,
  const WeaveCertificateSet & certSet,
  const ValidationContext & validContext,
  uint16_t indent
)

Tanda TanganECDSA Cetak

WEAVE_ERROR PrintECDSASignature(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

PrintHexField

void PrintHexField(
  FILE *out,
  const char *name,
  uint16_t indent,
  uint16_t count,
  const uint8_t *data
)

PrintPackedDate

void PrintPackedDate(
  FILE *out,
  uint16_t t
)

WaktuPengemasan

void PrintPackedTime(
  FILE *out,
  uint32_t t
)

PrintWeaveDN

void PrintWeaveDN(
  FILE *out,
  const WeaveDN & dn
)

PrintWeaveDN

WEAVE_ERROR PrintWeaveDN(
  FILE *out,
  TLVReader & reader
)

Tanda Tangan Weave

WEAVE_ERROR PrintWeaveSignature(
  FILE *out,
  TLVReader & reader,
  uint16_t indent
)

DetikSejakEpochToPackedCertTime

NL_DLL_EXPORT uint32_t SecondsSinceEpochToPackedCertTime(
  uint32_t secondsSinceEpoch
)

Mengonversi jumlah detik sejak 1970-01-01 00:00:00 UTC menjadi tanggal/waktu sertifikat yang dikemas.

Detail
Parameter
secondsSinceEpoch
Jumlah detik sejak 1970-01-01 00:00:00 UTC. Catatan: nilai ini kompatibel dengan nilai positif dari nilai time_t POSIX, hingga tahun 2105.
Menampilkan
Tanggal/waktu sertifikat paket yang sesuai.

Kesalahan OpenOpenSSL

WEAVE_ERROR TranslateOpenSSLError(
  WEAVE_ERROR defaultErr
)

Waktu Pembongkaran

NL_DLL_EXPORT WEAVE_ERROR UnpackCertTime(
  uint32_t packedTime,
  ASN1UniversalTime & time
)

Keluarkan tanggal/waktu sertifikat yang dikemas ke dalam struktur waktu universal ASN.1.

Detail
Parameter
packedTime
Waktu sertifikat yang dikemas untuk dibuka.
time
Referensi ke struktur ASN1UniversalTime untuk menerima tanggal/waktu yang belum dibuka.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika waktu input berhasil dibuka.

VerifikasiTanda TanganWeave

NL_DLL_EXPORT WEAVE_ERROR VerifyWeaveSignature(
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *sig,
  uint16_t sigLen,
  WeaveCertificateSet & certSet,
  ValidationContext & certValidContext
)

VerifikasiTanda TanganWeave

NL_DLL_EXPORT WEAVE_ERROR VerifyWeaveSignature(
  const uint8_t *msgHash,
  uint8_t msgHashLen,
  const uint8_t *sig,
  uint16_t sigLen,
  OID expectedSigAlgoOID,
  WeaveCertificateSet & certSet,
  ValidationContext & certValidContext
)

WeaveCurveIdToOID

NL_DLL_EXPORT OID WeaveCurveIdToOID(
  uint32_t weaveCurveId
)