Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Kripto - Platform

Modul ini mencakup abstraksi platform untuk Kripto.

Ringkasan

Enumerasi

anonymous enum{
  OT_CRYPTO_KEY_USAGE_NONE = 0,
  OT_CRYPTO_KEY_USAGE_EXPORT = 1 << 0,
  OT_CRYPTO_KEY_USAGE_ENCRYPT = 1 << 1,
  OT_CRYPTO_KEY_USAGE_DECRYPT = 1 << 2,
  OT_CRYPTO_KEY_USAGE_SIGN_HASH = 1 << 3
}
enum
Enumerasi ini menentukan tanda penggunaan utama.
otCryptoKeyAlgorithm{
  OT_CRYPTO_KEY_ALG_VENDOR,
  OT_CRYPTO_KEY_ALG_AES_ECB,
  OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enum
Enumerasi ini menentukan algoritme utama.
otCryptoKeyStorage{
  OT_CRYPTO_KEY_STORAGE_VOLATILE,
  OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Enumerasi ini menentukan jenis penyimpanan utama.
otCryptoKeyType{
  OT_CRYPTO_KEY_TYPE_RAW,
  OT_CRYPTO_KEY_TYPE_AES,
  OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Enumerasi ini menentukan jenis kunci.

Typedef

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
Jenis data ini mewakili referensi kunci.

Fungsi

otPlatCryptoAesEncrypt(otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Mengenkripsi data yang diberikan.
otPlatCryptoAesFree(otCryptoContext *aContext)
Bebaskan konteks AES.
otPlatCryptoAesInit(otCryptoContext *aContext)
Menginisialisasi operasi AES.
otPlatCryptoAesSetKey(otCryptoContext *aContext, const otCryptoKey *aKey)
Tetapkan kunci untuk operasi AES.
otPlatCryptoDestroyKey(otCryptoKeyRef aKeyRef)
Hancurkan kunci yang disimpan di PSA ITS.
otPlatCryptoExportKey(otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
Ekspor kunci yang disimpan di PSA ITS.
otPlatCryptoHasKey(otCryptoKeyRef aKeyRef)
bool
Periksa apakah referensi kunci yang diteruskan memiliki kunci terkait di PSA ITS.
otPlatCryptoHkdfDeinit(otCryptoContext *aContext)
Membatalkan inisialisasi konteks HKDF.
otPlatCryptoHkdfExpand(otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
Lakukan langkah Perluas HKDF.
otPlatCryptoHkdfExtract(otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
Lakukan langkah Ekstrak HKDF.
otPlatCryptoHkdfInit(otCryptoContext *aContext)
Inisialisasi konteks HKDF.
otPlatCryptoHmacSha256Deinit(otCryptoContext *aContext)
Membatalkan inisialisasi operasi HMAC.
otPlatCryptoHmacSha256Finish(otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Selesaikan operasi HMAC.
otPlatCryptoHmacSha256Init(otCryptoContext *aContext)
Menginisialisasi operasi HMAC.
otPlatCryptoHmacSha256Start(otCryptoContext *aContext, const otCryptoKey *aKey)
Mulai operasi HMAC.
otPlatCryptoHmacSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Mengupdate operasi HMAC dengan input baru.
otPlatCryptoImportKey(otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Mengimpor kunci ke PSA ITS.
otPlatCryptoInit(void)
void
Melakukan inisialisasi modul Kripto.
otPlatCryptoRandomDeinit(void)
void
Inisialisasi generator nomor pseudorandom yang aman secara kriptografis (CSPRNG).
otPlatCryptoRandomGet(uint8_t *aBuffer, uint16_t aSize)
Mengisi buffer tertentu dengan byte acak yang aman secara kriptografis.
otPlatCryptoRandomInit(void)
void
Menginisialisasi generator angka pseudorandom yang aman secara kriptografis (CSPRNG).
otPlatCryptoSha256Deinit(otCryptoContext *aContext)
Membatalkan inisialisasi operasi SHA-256.
otPlatCryptoSha256Finish(otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Selesaikan operasi SHA-256.
otPlatCryptoSha256Init(otCryptoContext *aContext)
Lakukan inisialisasi operasi SHA-256.
otPlatCryptoSha256Start(otCryptoContext *aContext)
Mulai operasi SHA-256.
otPlatCryptoSha256Update(otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Mengupdate operasi SHA-256 dengan input baru.

Struct

otCryptoContext

Struktur ini menyimpan objek konteks untuk API platform.

otCryptoKey

Struktur ini mewakili Material Kunci yang diperlukan untuk operasi Kripto.

Enumerasi

enum anonim

 anonymous enum

Enumerasi ini menentukan tanda penggunaan utama.

Properti
OT_CRYPTO_KEY_USAGE_DECRYPT

Penggunaan Kunci: AES ECB.

OT_CRYPTO_KEY_USAGE_ENCRYPT

Penggunaan Kunci: Enkripsi (ditentukan vendor).

OT_CRYPTO_KEY_USAGE_EXPORT

Penggunaan Kunci: Kunci dapat diekspor.

OT_CRYPTO_KEY_USAGE_NONE

Penggunaan Kunci: Penggunaan Kunci kosong.

OT_CRYPTO_KEY_USAGE_SIGN_HASH

Penggunaan Kunci: HMAC SHA-256.

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

Enumerasi ini menentukan algoritme utama.

Properti
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritme Kunci: ECB AES.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritme Kunci: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritme Kunci: Vendor Buatan

otCryptoKeyStorage

 otCryptoKeyStorage

Enumerasi ini menentukan jenis penyimpanan utama.

Properti
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Persistensi Kunci: Kunci bersifat tetap.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Persistensi Kunci: Kunci tidak stabil.

otCryptoKeyType

 otCryptoKeyType

Enumerasi ini menentukan jenis kunci.

Properti
OT_CRYPTO_KEY_TYPE_AES

Jenis Kunci: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Jenis Kunci: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Jenis Kunci: Data Mentah.

Typedef

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Jenis data ini mewakili referensi kunci.

Fungsi

otPlatCryptoAesEncrypt

otError otPlatCryptoAesEncrypt(
  otCryptoContext *aContext,
  const uint8_t *aInput,
  uint8_t *aOutput
)

Mengenkripsi data yang diberikan.

Detail
Parameter
[in] aContext
Konteks untuk operasi AES.
[in] aInput
Pointer ke buffer input.
[in] aOutput
Pointer ke buffer output.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengenkripsi aInput.
OT_ERROR_FAILED
Gagal mengenkripsi aInput.
OT_ERROR_INVALID_ARGS
aContext atau aKey atau aOutput adalah NULL

otPlatCryptoAesBebas

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Bebaskan konteks AES.

Detail
Parameter
[in] aContext
Konteks untuk operasi AES.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil membebaskan konteks AES.
OT_ERROR_FAILED
Gagal membebaskan konteks AES.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Menginisialisasi operasi AES.

Detail
Parameter
[in] aContext
Konteks untuk operasi AES.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menginisialisasi operasi AES.
OT_ERROR_FAILED
Gagal Menginisialisasi operasi AES.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan konteks.

otPlatCryptoAesSetKey

otError otPlatCryptoAesSetKey(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

Tetapkan kunci untuk operasi AES.

Detail
Parameter
[in] aContext
Konteks untuk operasi AES.
[out] aKey
Kunci yang digunakan untuk operasi AES.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menetapkan kunci untuk operasi AES.
OT_ERROR_FAILED
Gagal menetapkan kunci untuk operasi AES.
OT_ERROR_INVALID_ARGS
aContext atau aKey adalah NULL

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

Hancurkan kunci yang disimpan di PSA ITS.

Detail
Parameter
[in] aKeyRef
Rujukan kunci yang akan dihancurkan
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menghancurkan kunci.
OT_ERROR_FAILED
Gagal menghancurkan kunci.

otPlatCryptoExportKey

otError otPlatCryptoExportKey(
  otCryptoKeyRef aKeyRef,
  uint8_t *aBuffer,
  size_t aBufferLen,
  size_t *aKeyLen
)

Ekspor kunci yang disimpan di PSA ITS.

Detail
Parameter
[in] aKeyRef
Rujukan kunci yang akan digunakan untuk operasi kripto.
[out] aBuffer
Pointer ke buffer tempat kunci perlu diekspor.
[in] aBufferLen
Panjang buffer yang diteruskan untuk menyimpan kunci yang diekspor.
[out] aKeyLen
Pointer untuk menampilkan panjang kunci yang diekspor.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengekspor aKeyRef.
OT_ERROR_FAILED
Gagal mengekspor aKeyRef.
OT_ERROR_INVALID_ARGS
aBuffer sebelumnya NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

Periksa apakah referensi kunci yang diteruskan memiliki kunci terkait di PSA ITS.

Detail
Parameter
[in] aKeyRef
Rujukan Kunci untuk diperiksa.
Nilai yang Ditampilkan
TRUE
Ada kunci terkait dengan aKeyRef.
FALSE
Tidak ada kunci terkait dengan aKeyRef.

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Membatalkan inisialisasi konteks HKDF.

Detail
Parameter
[in] aContext
Konteks untuk operasi HKDF.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil membatalkan inisialisasi operasi HKDF.
OT_ERROR_FAILED
Gagal membatalkan inisialisasi operasi HKDF.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoHkdfPerluas

otError otPlatCryptoHkdfExpand(
  otCryptoContext *aContext,
  const uint8_t *aInfo,
  uint16_t aInfoLength,
  uint8_t *aOutputKey,
  uint16_t aOutputKeyLength
)

Lakukan langkah Perluas HKDF.

Detail
Parameter
[in] aContext
Konteks operasi untuk operasi HKDF.
[in] aInfo
Pointer ke urutan Info.
[in] aInfoLength
Panjang urutan Info.
[out] aOutputKey
Pointer ke Kunci output.
[in] aOutputKeyLength
Ukuran buffer kunci output.
Nilai yang Ditampilkan
OT_ERROR_NONE
HKDF Luaskan berhasil.
OT_ERROR_FAILED
Perluasan HKDF gagal.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

ottlatCryptoHkdfEkstrak

otError otPlatCryptoHkdfExtract(
  otCryptoContext *aContext,
  const uint8_t *aSalt,
  uint16_t aSaltLength,
  const otCryptoKey *aInputKey
)

Lakukan langkah Ekstrak HKDF.

Detail
Parameter
[in] aContext
Konteks operasi untuk operasi HKDF.
[in] aSalt
Pointer ke Garam untuk HKDF.
[in] aSaltLength
Panjang Garam.
[in] aInputKey
Pointer ke tombol input.
Nilai yang Ditampilkan
OT_ERROR_NONE
Ekstrak HKDF berhasil.
OT_ERROR_FAILED
Ekstrak HKDF gagal.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inisialisasi konteks HKDF.

Detail
Parameter
[in] aContext
Konteks untuk operasi HKDF.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menginisialisasi operasi AES.
OT_ERROR_FAILED
Gagal Menginisialisasi operasi AES.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Membatalkan inisialisasi operasi HMAC.

Detail
Parameter
[in] aContext
Konteks untuk operasi HMAC.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil membatalkan inisialisasi operasi HMAC.
OT_ERROR_FAILED
Gagal membatalkan inisialisasi operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoHmacSha256Selesai

otError otPlatCryptoHmacSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aBuf,
  size_t aBufLength
)

Selesaikan operasi HMAC.

Detail
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[out] aBuf
Pointer ke buffer output.
[in] aBufLength
Panjang aBuf dalam byte.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menyelesaikan operasi HMAC.
OT_ERROR_FAILED
Gagal menyelesaikan operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext atau aBuf adalah NULL

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

Menginisialisasi operasi HMAC.

Detail
Parameter
[in] aContext
Konteks untuk operasi HMAC.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil melakukan inisialisasi operasi HMAC.
OT_ERROR_FAILED
Gagal menginisialisasi operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoHmacSha256Mulai

otError otPlatCryptoHmacSha256Start(
  otCryptoContext *aContext,
  const otCryptoKey *aKey
)

Mulai operasi HMAC.

Detail
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[in] aKey
Materi kunci yang akan digunakan untuk operasi HMAC.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memulai operasi HMAC.
OT_ERROR_FAILED
Gagal memulai operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext atau aKey adalah NULL

Pembaruan otPlatCryptoHmacSha256

otError otPlatCryptoHmacSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

Mengupdate operasi HMAC dengan input baru.

Detail
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[in] aBuf
Pointer ke buffer input.
[in] aBufLength
Panjang aBuf dalam byte.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memperbarui HMAC dengan operasi input baru.
OT_ERROR_FAILED
Gagal memperbarui operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext atau aBuf adalah NULL

otPlatCryptoImportKey

otError otPlatCryptoImportKey(
  otCryptoKeyRef *aKeyRef,
  otCryptoKeyType aKeyType,
  otCryptoKeyAlgorithm aKeyAlgorithm,
  int aKeyUsage,
  otCryptoKeyStorage aKeyPersistence,
  const uint8_t *aKey,
  size_t aKeyLen
)

Mengimpor kunci ke PSA ITS.

Catatan:Jika OT_CRYPTO_KEY_STORAGE_PERSISTENT diteruskan untuk aKeyPersistence, aKeyRef adalah input dan platform harus menggunakan aKeyRef yang diberikan dan HARUS tidak mengubahnya. Jika OT_CRYPTO_KEY_STORAGE_VOLATILE diteruskan untuk aKeyPersistence, aKeyRef merupakan output, nilai awal tidak menjadi masalah dan API platform HARUS mengupdatenya untuk menampilkan referensi kunci baru.

Detail
Parameter
[in,out] aKeyRef
Pointer ke ref tombol yang akan digunakan untuk operasi kripto.
[in] aKeyType
Encoding Jenis Kunci untuk kunci.
[in] aKeyAlgorithm
Encoding algoritme kunci untuk kunci.
[in] aKeyUsage
Encoding Penggunaan Kunci untuk kunci (kombinasi OT_CRYPTO_KEY_USAGE_*).
[in] aKeyPersistence
Persistensi Kunci untuk kunci ini
[in] aKey
Kunci aktual yang akan diimpor.
[in] aKeyLen
Panjang kunci yang akan diimpor.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil mengimpor kunci.
OT_ERROR_FAILED
Gagal mengimpor kunci.
OT_ERROR_INVALID_ARGS
aKey disetel ke NULL.

API ini hanya digunakan oleh OT core saat OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE diaktifkan.

otPlatCryptoInit

void otPlatCryptoInit(
  void
)

Melakukan inisialisasi modul Kripto.

otPlatCryptoCryptoDeinit

void otPlatCryptoRandomDeinit(
  void
)

Inisialisasi generator nomor pseudorandom yang aman secara kriptografis (CSPRNG).

otPlatCryptoRandomGet

otError otPlatCryptoRandomGet(
  uint8_t *aBuffer,
  uint16_t aSize
)

Mengisi buffer tertentu dengan byte acak yang aman secara kriptografis.

Detail
Parameter
[out] aBuffer
Pointer ke buffer untuk diisi dengan byte acak.
[in] aSize
Ukuran buffer (jumlah byte yang akan diisi).
Nilai yang Ditampilkan
OT_ERROR_NONE
Buffering berhasil diisi dengan nilai-nilai acak.
OT_ERROR_FAILED
Operasi gagal.

otPlatCryptoCryptoInit ini

void otPlatCryptoRandomInit(
  void
)

Menginisialisasi generator angka pseudorandom yang aman secara kriptografis (CSPRNG).

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Membatalkan inisialisasi operasi SHA-256.

Detail
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil membatalkan inisialisasi operasi SHA-256.
OT_ERROR_FAILED
Gagal membatalkan inisialisasi operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoSha256Selesai

otError otPlatCryptoSha256Finish(
  otCryptoContext *aContext,
  uint8_t *aHash,
  uint16_t aHashSize
)

Selesaikan operasi SHA-256.

Detail
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
[in] aHash
Pointer ke buffer output, tempat hash perlu disimpan.
[in] aHashSize
Panjang aHash dalam byte.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menyelesaikan operasi SHA-256.
OT_ERROR_FAILED
Gagal menyelesaikan operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext atau aHash adalah NULL

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

Lakukan inisialisasi operasi SHA-256.

Detail
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil menginisialisasi operasi SHA-256.
OT_ERROR_FAILED
Gagal menginisialisasi operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoSha256Mulai

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Mulai operasi SHA-256.

Detail
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memulai operasi SHA-256.
OT_ERROR_FAILED
Gagal memulai operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext sebelumnya NULL

otPlatCryptoSha256Update

otError otPlatCryptoSha256Update(
  otCryptoContext *aContext,
  const void *aBuf,
  uint16_t aBufLength
)

Mengupdate operasi SHA-256 dengan input baru.

Detail
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
[in] aBuf
Pointer ke buffer input.
[in] aBufLength
Panjang aBuf dalam byte.
Nilai yang Ditampilkan
OT_ERROR_NONE
Berhasil memperbarui SHA-256 dengan operasi input baru.
OT_ERROR_FAILED
Gagal memperbarui operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext atau aBuf adalah NULL

Resource

Topik Referensi OpenThread API berasal dari kode sumber, yang tersedia di GitHub. Untuk mengetahui informasi selengkapnya, atau untuk berkontribusi ke dokumentasi kami, lihat Referensi.