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

Plat-crypto

Modul ini mencakup abstraksi platform untuk Crypto.

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
Pencacahan ini mendefinisikan flag penggunaan kunci.
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
enum
Pencacahan ini mendefinisikan algoritma kunci.
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
enum
Pencacahan ini mendefinisikan jenis penyimpanan kunci.
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
enum
Pencacahan ini mendefinisikan tipe kunci.

Typedefs

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

Fungsi

otPlatCryptoAesEncrypt ( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
Enkripsi data yang diberikan.
otPlatCryptoAesFree ( otCryptoContext *aContext)
Bebaskan konteks AES.
otPlatCryptoAesInit ( otCryptoContext *aContext)
Inisialisasi operasi AES.
otPlatCryptoAesSetKey ( otCryptoContext *aContext, const otCryptoKey *aKey)
Atur kunci untuk operasi AES.
otPlatCryptoDestroyKey ( otCryptoKeyRef aKeyRef)
Hancurkan kunci yang tersimpan 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 ref kunci yang diteruskan memiliki kunci terkait di PSA ITS.
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
Menginisialisasi 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)
Menginisialisasi operasi HMAC.
otPlatCryptoHmacSha256Finish ( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
Selesaikan operasi HMAC.
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
Inisialisasi operasi HMAC.
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
Mulai operasi HMAC.
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Perbarui operasi HMAC dengan input baru.
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
Impor kunci ke PSA ITS.
otPlatCryptoInit (void)
Inisialisasi modul Crypto.
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
Inisialisasi operasi SHA-256.
otPlatCryptoSha256Finish ( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
Selesaikan operasi SHA-256.
otPlatCryptoSha256Init ( otCryptoContext *aContext)
Inisialisasi operasi SHA-256.
otPlatCryptoSha256Start ( otCryptoContext *aContext)
Mulai operasi SHA-256.
otPlatCryptoSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
Perbarui operasi SHA-256 dengan input baru.

Struktur

otCryptoContext

Struktur ini menyimpan objek konteks untuk API platform.

otCryptoKey

Struktur ini mewakili Bahan Kunci yang diperlukan untuk operasi Crypto.

Enumerasi

enum anonim

 anonymous enum

Pencacahan ini mendefinisikan flag penggunaan kunci.

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

Pencacahan ini mendefinisikan algoritma kunci.

Properti
OT_CRYPTO_KEY_ALG_AES_ECB

Algoritma Kunci: AES ECB.

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

Algoritma Kunci: HMAC SHA-256.

OT_CRYPTO_KEY_ALG_VENDOR

Algoritma Kunci: Ditentukan Vendor.

otCryptoKeyStorage

 otCryptoKeyStorage

Pencacahan ini mendefinisikan jenis penyimpanan kunci.

Properti
OT_CRYPTO_KEY_STORAGE_PERSISTENT

Kegigihan Kunci: Kuncinya persisten.

OT_CRYPTO_KEY_STORAGE_VOLATILE

Kegigihan Kunci: Kunci tidak stabil.

otCryptoKeyType

 otCryptoKeyType

Pencacahan ini mendefinisikan tipe kunci.

Properti
OT_CRYPTO_KEY_TYPE_AES

Tipe Kunci: AES.

OT_CRYPTO_KEY_TYPE_HMAC

Tipe Kunci: HMAC.

OT_CRYPTO_KEY_TYPE_RAW

Jenis Kunci: Data Mentah.

Typedefs

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

Tipe data ini mewakili referensi kunci.

Fungsi

otPlatCryptoAesEncrypt

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

Enkripsi data yang diberikan.

rincian
Parameter
[in] aContext
Konteks untuk operasi AES.
[in] aInput
Pointer ke buffer masukan.
[in] aOutput
Pointer ke buffer keluaran.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil dienkripsi aInput .
OT_ERROR_FAILED
Gagal untuk mengenkripsi aInput .
OT_ERROR_INVALID_ARGS
aContext atau aKey atau aOutput yang NULL

otPlatCryptoAesGratis

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

Bebaskan konteks AES.

rincian
Parameter
[in] aContext
Konteks untuk operasi AES.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membebaskan konteks AES.
OT_ERROR_FAILED
Gagal membebaskan konteks AES.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

Inisialisasi operasi AES.

rincian
Parameter
[in] aContext
Konteks untuk operasi AES.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil Menginisialisasi operasi AES.
OT_ERROR_FAILED
Gagal Menginisialisasi operasi AES.
OT_ERROR_INVALID_ARGS
aContext adalah NULL
OT_ERROR_NO_BUFS
Tidak dapat mengalokasikan konteks.

otPlatCryptoAesSetKey

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

Atur kunci untuk operasi AES.

rincian
Parameter
[in] aContext
Konteks untuk operasi AES.
[out] aKey
Kunci yang digunakan untuk operasi AES.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mengatur kunci untuk operasi AES.
OT_ERROR_FAILED
Gagal menyetel 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.

rincian
Parameter
[in] aKeyRef
Ref kunci untuk dihancurkan
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menghancurkan kunci.
OT_ERROR_FAILED
Gagal menghancurkan kuncinya.

otPlatCryptoExportKey

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

Ekspor kunci yang disimpan di PSA ITS.

rincian
Parameter
[in] aKeyRef
Referensi 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 mengembalikan panjang kunci yang diekspor.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil diekspor aKeyRef .
OT_ERROR_FAILED
Gagal mengekspor aKeyRef .
OT_ERROR_INVALID_ARGS
aBuffer adalah NULL

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

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

rincian
Parameter
[in] aKeyRef
Ref Kunci untuk memeriksa.
Mengembalikan Nilai
TRUE
Ada kunci terkait dengan aKeyRef .
FALSE
Tidak ada kunci terkait dengan aKeyRef .

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

Menginisialisasi konteks HKDF.

rincian
Parameter
[in] aContext
Konteks untuk operasi HKDF.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membatalkan operasi HKDF yang diinisialisasi.
OT_ERROR_FAILED
Gagal membatalkan operasi HKDF yang diinisialisasi.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoHkdfPerluas

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

Lakukan langkah Perluas HKDF.

rincian
Parameter
[in] aContext
Konteks operasi untuk operasi HKDF.
[in] aInfo
Pointer ke urutan Info.
[in] aInfoLength
Panjang urutan Info.
[out] aOutputKey
Pointer ke Kunci keluaran.
[in] aOutputKeyLength
Ukuran buffer kunci keluaran.
Mengembalikan Nilai
OT_ERROR_NONE
Perluasan HKDF berhasil.
OT_ERROR_FAILED
Perluasan HKDF gagal.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoHkdfExtract

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

Lakukan langkah Ekstrak HKDF.

rincian
Parameter
[in] aContext
Konteks operasi untuk operasi HKDF.
[in] aSalt
Pointer ke Garam untuk HKDF.
[in] aInfoLength
panjang Garam.
[in] aInputKey
Arahkan ke tombol input.
Mengembalikan Nilai
OT_ERROR_NONE
Ekstrak HKDF berhasil.
OT_ERROR_FAILED
Ekstrak HKDF gagal.

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

Inisialisasi konteks HKDF.

rincian
Parameter
[in] aContext
Konteks untuk operasi HKDF.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil Menginisialisasi operasi AES.
OT_ERROR_FAILED
Gagal Menginisialisasi operasi AES.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

Menginisialisasi operasi HMAC.

rincian
Parameter
[in] aContext
Konteks untuk operasi HMAC.
Mengembalikan Nilai
OT_ERROR_NONE
Operasi HMAC berhasil tidak diinisialisasi.
OT_ERROR_FAILED
Gagal melakukan operasi HMAC yang tidak diinisialisasi.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoHmacSha256Selesai

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

Selesaikan operasi HMAC.

rincian
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[out] aBuf
Sebuah pointer ke buffer output.
[in] aBufLength
Panjang aBuf dalam bytes.
Mengembalikan Nilai
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
)

Inisialisasi operasi HMAC.

rincian
Parameter
[in] aContext
Konteks untuk operasi HMAC.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menginisialisasi operasi HMAC.
OT_ERROR_FAILED
Gagal menginisialisasi operasi HMAC.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoHmacSha256Mulai

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

Mulai operasi HMAC.

rincian
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[in] aKey
Bahan utama yang akan digunakan untuk operasi HMAC.
Mengembalikan Nilai
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
)

Perbarui operasi HMAC dengan input baru.

rincian
Parameter
[in] aContext
Konteks untuk operasi HMAC.
[in] aBuf
Sebuah pointer ke buffer input.
[in] aBufLength
Panjang aBuf dalam bytes.
Mengembalikan Nilai
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
)

Impor kunci ke PSA ITS.

Catatan: Jika OT_CRYPTO_KEY_STORAGE_PERSISTENT dilewatkan untuk aKeyPersistence maka aKeyRef adalah masukan dan platform harus menggunakan aKeyRef diberikan dan tidak harus mengubahnya. Jika OT_CRYPTO_KEY_STORAGE_VOLATILE dilewatkan untuk aKeyPersistence maka aKeyRef adalah output, nilai awal tidak masalah dan platform API HARUS memperbaruinya untuk mengembalikan ref kunci baru.

rincian
Parameter
[in,out] aKeyRef
Pointer ke ref kunci yang akan digunakan untuk operasi kripto.
[in] aKeyType
Pengkodean Jenis Kunci untuk kunci.
[in] aKeyAlgorithm
Encoding algoritma kunci untuk kunci.
[in] aKeyUsage
Penggunaan Kunci encoding untuk kunci (kombinasi dari OT_CRYPTO_KEY_USAGE_* ).
[in] aKeyPersistence
Kegigihan Kunci untuk kunci ini
[in] aKey
Kunci sebenarnya yang akan diimpor.
[in] aKeyLen
Panjang kunci yang akan diimpor.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mengimpor kunci.
OT_ERROR_FAILED
Gagal mengimpor kunci.
OT_ERROR_INVALID_ARGS
aKey ditetapkan untuk NULL.

API ini hanya digunakan oleh inti OT ketika OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE diaktifkan.

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

Inisialisasi modul Crypto.

rincian
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menginisialisasi modul Crypto.
OT_ERROR_FAILED
Gagal menginisialisasi modul Crypto.

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

Inisialisasi operasi SHA-256.

rincian
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membatalkan operasi SHA-256 yang diinisialisasi.
OT_ERROR_FAILED
Gagal membatalkan operasi SHA-256 yang diinisialisasi.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoSha256Selesai

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

Selesaikan operasi SHA-256.

rincian
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
[in] aContextSize
Ukuran konteks operasi SHA-256.
[in] aHash
Sebuah pointer ke buffer output, di mana hash perlu disimpan.
[in] aHashSize
Panjang aHash dalam bytes.
Mengembalikan Nilai
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
)

Inisialisasi operasi SHA-256.

rincian
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menginisialisasi operasi SHA-256.
OT_ERROR_FAILED
Gagal menginisialisasi operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

otPlatCryptoSha256Mulai

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

Mulai operasi SHA-256.

rincian
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil memulai operasi SHA-256.
OT_ERROR_FAILED
Gagal memulai operasi SHA-256.
OT_ERROR_INVALID_ARGS
aContext adalah NULL

Pembaruan otPlatCryptoSha256

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

Perbarui operasi SHA-256 dengan input baru.

rincian
Parameter
[in] aContext
Konteks untuk operasi SHA-256.
[in] aBuf
Sebuah pointer ke buffer input.
[in] aBufLength
Panjang aBuf dalam bytes.
Mengembalikan Nilai
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