Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Plat-crypto

このモジュールには、Cryptoのプラットフォーム抽象化が含まれています。

概要

列挙

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
この列挙は、主要な使用フラグを定義します。
otCryptoKeyAlgorithm {
OT_CRYPTO_KEY_ALG_VENDOR ,
OT_CRYPTO_KEY_ALG_AES_ECB ,
OT_CRYPTO_KEY_ALG_HMAC_SHA_256
}
列挙型
この列挙は、主要なアルゴリズムを定義します。
otCryptoKeyStorage {
OT_CRYPTO_KEY_STORAGE_VOLATILE ,
OT_CRYPTO_KEY_STORAGE_PERSISTENT
}
列挙型
この列挙は、主要なストレージタイプを定義します。
otCryptoKeyType {
OT_CRYPTO_KEY_TYPE_RAW ,
OT_CRYPTO_KEY_TYPE_AES ,
OT_CRYPTO_KEY_TYPE_HMAC
}
列挙型
この列挙は、キータイプを定義します。

Typedef

otCryptoContext typedef
otCryptoKey typedef
struct otCryptoKey
otCryptoKeyRef typedef
uint32_t
このデータ型は、キー参照を表します。

関数

otPlatCryptoAesEncrypt ( otCryptoContext *aContext, const uint8_t *aInput, uint8_t *aOutput)
指定されたデータを暗号化します。
otPlatCryptoAesFree ( otCryptoContext *aContext)
AESコンテキストを解放します。
otPlatCryptoAesInit ( otCryptoContext *aContext)
AES操作を初期化します。
otPlatCryptoAesSetKey ( otCryptoContext *aContext, const otCryptoKey *aKey)
AES操作のキーを設定します。
otPlatCryptoDestroyKey ( otCryptoKeyRef aKeyRef)
PSAITSに保存されているキーを破棄します。
otPlatCryptoExportKey ( otCryptoKeyRef aKeyRef, uint8_t *aBuffer, size_t aBufferLen, size_t *aKeyLen)
PSAITSに保存されているキーをエクスポートします。
otPlatCryptoHasKey ( otCryptoKeyRef aKeyRef)
bool
渡されたキー参照にPSAITSに関連付けられたキーがあるかどうかを確認します。
otPlatCryptoHkdfDeinit ( otCryptoContext *aContext)
HKDFコンテキストの初期化を解除します。
otPlatCryptoHkdfExpand ( otCryptoContext *aContext, const uint8_t *aInfo, uint16_t aInfoLength, uint8_t *aOutputKey, uint16_t aOutputKeyLength)
HKDF展開ステップを実行します。
otPlatCryptoHkdfExtract ( otCryptoContext *aContext, const uint8_t *aSalt, uint16_t aSaltLength, const otCryptoKey *aInputKey)
HKDF抽出ステップを実行します。
otPlatCryptoHkdfInit ( otCryptoContext *aContext)
HKDFコンテキストを初期化します。
otPlatCryptoHmacSha256Deinit ( otCryptoContext *aContext)
HMAC操作の初期化を解除します。
otPlatCryptoHmacSha256Finish ( otCryptoContext *aContext, uint8_t *aBuf, size_t aBufLength)
HMAC操作を完了します。
otPlatCryptoHmacSha256Init ( otCryptoContext *aContext)
HMAC操作を初期化します。
otPlatCryptoHmacSha256Start ( otCryptoContext *aContext, const otCryptoKey *aKey)
HMAC操作を開始します。
otPlatCryptoHmacSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
新しい入力でHMAC操作を更新します。
otPlatCryptoImportKey ( otCryptoKeyRef *aKeyRef, otCryptoKeyType aKeyType, otCryptoKeyAlgorithm aKeyAlgorithm, int aKeyUsage, otCryptoKeyStorage aKeyPersistence, const uint8_t *aKey, size_t aKeyLen)
キーをPSAITSにインポートします。
otPlatCryptoInit (void)
Cryptoモジュールを初期化します。
otPlatCryptoSha256Deinit ( otCryptoContext *aContext)
SHA-256操作の初期化を解除します。
otPlatCryptoSha256Finish ( otCryptoContext *aContext, uint8_t *aHash, uint16_t aHashSize)
SHA-256操作を終了します。
otPlatCryptoSha256Init ( otCryptoContext *aContext)
SHA-256操作を初期化します。
otPlatCryptoSha256Start ( otCryptoContext *aContext)
SHA-256操作を開始します。
otPlatCryptoSha256Update ( otCryptoContext *aContext, const void *aBuf, uint16_t aBufLength)
新しい入力でSHA-256操作を更新します。

構造体

otCryptoContext

この構造体は、プラットフォームAPIのコンテキストオブジェクトを格納します。

otCryptoKey

この構造は、暗号操作に必要なキーマテリアルを表しています。

列挙

匿名列挙型

 anonymous enum

この列挙は、主要な使用フラグを定義します。

プロパティ
OT_CRYPTO_KEY_USAGE_DECRYPT

主な使用法:AESECB。

OT_CRYPTO_KEY_USAGE_ENCRYPT

主な使用法:暗号化(ベンダー定義)。

OT_CRYPTO_KEY_USAGE_EXPORT

キーの使用法:キーはエクスポートできます。

OT_CRYPTO_KEY_USAGE_NONE

キーの使用法:キーの使用法は空です。

OT_CRYPTO_KEY_USAGE_SIGN_HASH

主な使用法:HMACSHA-256。

otCryptoKeyAlgorithm

 otCryptoKeyAlgorithm

この列挙は、主要なアルゴリズムを定義します。

プロパティ
OT_CRYPTO_KEY_ALG_AES_ECB

主要なアルゴリズム:AESECB。

OT_CRYPTO_KEY_ALG_HMAC_SHA_256

主要なアルゴリズム:HMACSHA-256。

OT_CRYPTO_KEY_ALG_VENDOR

主要なアルゴリズム:ベンダー定義。

otCryptoKeyStorage

 otCryptoKeyStorage

この列挙は、主要なストレージタイプを定義します。

プロパティ
OT_CRYPTO_KEY_STORAGE_PERSISTENT

キーの永続性:キーは永続的です。

OT_CRYPTO_KEY_STORAGE_VOLATILE

キーの永続性:キーは揮発性です。

otCryptoKeyType

 otCryptoKeyType

この列挙は、キータイプを定義します。

プロパティ
OT_CRYPTO_KEY_TYPE_AES

キータイプ:AES。

OT_CRYPTO_KEY_TYPE_HMAC

キータイプ:HMAC。

OT_CRYPTO_KEY_TYPE_RAW

キータイプ:生データ。

Typedef

otCryptoContext

struct otCryptoContext otCryptoContext

otCryptoKey

struct otCryptoKey otCryptoKey

otCryptoKeyRef

uint32_t otCryptoKeyRef

このデータ型は、キー参照を表します。

関数

otPlatCryptoAesEncrypt

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

指定されたデータを暗号化します。

詳細
パラメーター
[in] aContext
AES操作のコンテキスト。
[in] aInput
入力バッファへのポインタ。
[in] aOutput
出力バッファへのポインタ。
戻り値
OT_ERROR_NONE
成功裏に暗号化されたaInput
OT_ERROR_FAILED
暗号化に失敗しましたaInput
OT_ERROR_INVALID_ARGS
aContextaKeyまたはaOutput NULLでした

otPlatCryptoAesFree

otError otPlatCryptoAesFree(
  otCryptoContext *aContext
)

AESコンテキストを解放します。

詳細
パラメーター
[in] aContext
AES操作のコンテキスト。
戻り値
OT_ERROR_NONE
AESコンテキストを正常に解放しました。
OT_ERROR_FAILED
AESコンテキストの解放に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoAesInit

otError otPlatCryptoAesInit(
  otCryptoContext *aContext
)

AES操作を初期化します。

詳細
パラメーター
[in] aContext
AES操作のコンテキスト。
戻り値
OT_ERROR_NONE
AES操作が正常に初期化されました。
OT_ERROR_FAILED
AES操作の初期化に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした
OT_ERROR_NO_BUFS
コンテキストを割り当てることができません。

otPlatCryptoAesSetKey

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

AES操作のキーを設定します。

詳細
パラメーター
[in] aContext
AES操作のコンテキスト。
[out] aKey
AES操作に使用するキー。
戻り値
OT_ERROR_NONE
AES操作のキーを正常に設定しました。
OT_ERROR_FAILED
AES操作のキーを設定できませんでした。
OT_ERROR_INVALID_ARGS
aContextaKey NULLでした

otPlatCryptoDestroyKey

otError otPlatCryptoDestroyKey(
  otCryptoKeyRef aKeyRef
)

PSAITSに保存されているキーを破棄します。

詳細
パラメーター
[in] aKeyRef
破棄されるキー参照
戻り値
OT_ERROR_NONE
キーの破壊に成功しました。
OT_ERROR_FAILED
キーの破棄に失敗しました。

otPlatCryptoExportKey

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

PSAITSに保存されているキーをエクスポートします。

詳細
パラメーター
[in] aKeyRef
暗号化操作に使用されるキー参照。
[out] aBuffer
キーをエクスポートする必要があるバッファへのポインタ。
[in] aBufferLen
エクスポートされたキーを格納するために渡されるバッファーの長さ。
[out] aKeyLen
エクスポートされたキーの長さを返すポインタ。
戻り値
OT_ERROR_NONE
正常にエクスポートaKeyRef
OT_ERROR_FAILED
輸出に失敗しましたaKeyRef
OT_ERROR_INVALID_ARGS
aBuffer NULLでした

otPlatCryptoHasKey

bool otPlatCryptoHasKey(
  otCryptoKeyRef aKeyRef
)

渡されたキー参照にPSAITSに関連付けられたキーがあるかどうかを確認します。

詳細
パラメーター
[in] aKeyRef
チェックするキー参照。
戻り値
TRUE
関連付けられたキーがありaKeyRef
FALSE
関連付けられているキーがありませんaKeyRef

otPlatCryptoHkdfDeinit

otError otPlatCryptoHkdfDeinit(
  otCryptoContext *aContext
)

HKDFコンテキストの初期化を解除します。

詳細
パラメーター
[in] aContext
HKDF操作のコンテキスト。
戻り値
OT_ERROR_NONE
HKDF操作が正常に初期化されていません。
OT_ERROR_FAILED
初期化されていないHKDF操作に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoHkdfExpand

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

HKDF展開ステップを実行します。

詳細
パラメーター
[in] aContext
HKDF操作の操作コンテキスト。
[in] aInfo
情報シーケンスへのポインタ。
[in] aInfoLength
情報シーケンスの長さ。
[out] aOutputKey
出力キーへのポインタ。
[in] aOutputKeyLength
出力キーバッファのサイズ。
戻り値
OT_ERROR_NONE
HKDFExpandは成功しました。
OT_ERROR_FAILED
HKDF展開に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoHkdfExtract

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

HKDF抽出ステップを実行します。

詳細
パラメーター
[in] aContext
HKDF操作の操作コンテキスト。
[in] aSalt
HKDFのソルトへのポインター。
[in] aInfoLength
塩の長さ。
[in] aInputKey
入力キーへのポインタ。
戻り値
OT_ERROR_NONE
HKDF抽出は成功しました。
OT_ERROR_FAILED
HKDF抽出に失敗しました。

otPlatCryptoHkdfInit

otError otPlatCryptoHkdfInit(
  otCryptoContext *aContext
)

HKDFコンテキストを初期化します。

詳細
パラメーター
[in] aContext
HKDF操作のコンテキスト。
戻り値
OT_ERROR_NONE
AES操作が正常に初期化されました。
OT_ERROR_FAILED
AES操作の初期化に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoHmacSha256Deinit

otError otPlatCryptoHmacSha256Deinit(
  otCryptoContext *aContext
)

HMAC操作の初期化を解除します。

詳細
パラメーター
[in] aContext
HMAC操作のコンテキスト。
戻り値
OT_ERROR_NONE
初期化されていないHMAC操作に成功しました。
OT_ERROR_FAILED
初期化されていないHMAC操作に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoHmacSha256Finish

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

HMAC操作を完了します。

詳細
パラメーター
[in] aContext
HMAC操作のコンテキスト。
[out] aBuf
出力バッファへのポインタ。
[in] aBufLength
長さaBufバイトです。
戻り値
OT_ERROR_NONE
HMAC操作が正常に完了しました。
OT_ERROR_FAILED
HMAC操作を完了できませんでした。
OT_ERROR_INVALID_ARGS
aContextまたはaBuf NULLでした

otPlatCryptoHmacSha256Init

otError otPlatCryptoHmacSha256Init(
  otCryptoContext *aContext
)

HMAC操作を初期化します。

詳細
パラメーター
[in] aContext
HMAC操作のコンテキスト。
戻り値
OT_ERROR_NONE
HMAC操作が正常に初期化されました。
OT_ERROR_FAILED
HMAC操作の初期化に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoHmacSha256Start

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

HMAC操作を開始します。

詳細
パラメーター
[in] aContext
HMAC操作のコンテキスト。
[in] aKey
HMAC操作に使用される主要な材料。
戻り値
OT_ERROR_NONE
HMAC操作を正常に開始しました。
OT_ERROR_FAILED
HMAC操作の開始に失敗しました。
OT_ERROR_INVALID_ARGS
aContextaKey NULLでした

otPlatCryptoHmacSha256Update

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

新しい入力でHMAC操作を更新します。

詳細
パラメーター
[in] aContext
HMAC操作のコンテキスト。
[in] aBuf
入力バッファへのポインタ。
[in] aBufLength
長さaBufバイトです。
戻り値
OT_ERROR_NONE
新しい入力操作でHMACを正常に更新しました。
OT_ERROR_FAILED
HMAC操作の更新に失敗しました。
OT_ERROR_INVALID_ARGS
aContextまたはaBuf NULLでした

otPlatCryptoImportKey

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

キーをPSAITSにインポートします。

注:OT_CRYPTO_KEY_STORAGE_PERSISTENTはaKeyPersistenceのために渡された場合、その後aKeyRef入力し、プラットフォームが与えられたaKeyRefを使用すべきであり、それを変更してはなりません。 OT_CRYPTO_KEY_STORAGE_VOLATILEはその後aKeyPersistenceのために渡された場合aKeyRef出力され、初期値は問題ではないとプラットフォームのAPIは、新しいキー参照を返すために、それを更新する必要があります。

詳細
パラメーター
[in,out] aKeyRef
暗号化操作に使用されるキー参照へのポインター。
[in] aKeyType
キーのキータイプエンコーディング。
[in] aKeyAlgorithm
キーのキーアルゴリズムエンコーディング。
[in] aKeyUsage
キーのキー使用法のエンコーディング(の組み合わせOT_CRYPTO_KEY_USAGE_* )。
[in] aKeyPersistence
このキーのキーの永続性
[in] aKey
インポートされる実際のキー。
[in] aKeyLen
インポートするキーの長さ。
戻り値
OT_ERROR_NONE
キーが正常にインポートされました。
OT_ERROR_FAILED
キーのインポートに失敗しました。
OT_ERROR_INVALID_ARGS
aKey NULLに設定しました。

ときに、このAPIは、唯一のOTコアによって使用されOPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE有効になっています。

otPlatCryptoInit

otError otPlatCryptoInit(
  void
)

Cryptoモジュールを初期化します。

詳細
戻り値
OT_ERROR_NONE
Cryptoモジュールが正常に初期化されました。
OT_ERROR_FAILED
Cryptoモジュールの初期化に失敗しました。

otPlatCryptoSha256Deinit

otError otPlatCryptoSha256Deinit(
  otCryptoContext *aContext
)

SHA-256操作の初期化を解除します。

詳細
パラメーター
[in] aContext
SHA-256操作のコンテキスト。
戻り値
OT_ERROR_NONE
初期化されていないSHA-256操作に成功しました。
OT_ERROR_FAILED
初期化されていないSHA-256操作に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoSha256Finish

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

SHA-256操作を終了します。

詳細
パラメーター
[in] aContext
SHA-256操作のコンテキスト。
[in] aContextSize
コンテキストサイズSHA-256操作。
[in] aHash
ハッシュを格納する必要がある出力バッファへのポインタ。
[in] aHashSize
長さaHashバイトです。
戻り値
OT_ERROR_NONE
SHA-256操作を正常に完了しました。
OT_ERROR_FAILED
SHA-256操作を完了できませんでした。
OT_ERROR_INVALID_ARGS
aContextまたはaHash NULLでした

otPlatCryptoSha256Init

otError otPlatCryptoSha256Init(
  otCryptoContext *aContext
)

SHA-256操作を初期化します。

詳細
パラメーター
[in] aContext
SHA-256操作のコンテキスト。
戻り値
OT_ERROR_NONE
SHA-256操作が正常に初期化されました。
OT_ERROR_FAILED
SHA-256操作の初期化に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoSha256Start

otError otPlatCryptoSha256Start(
  otCryptoContext *aContext
)

SHA-256操作を開始します。

詳細
パラメーター
[in] aContext
SHA-256操作のコンテキスト。
戻り値
OT_ERROR_NONE
SHA-256操作を正常に開始しました。
OT_ERROR_FAILED
SHA-256操作の開始に失敗しました。
OT_ERROR_INVALID_ARGS
aContext NULLでした

otPlatCryptoSha256Update

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

新しい入力でSHA-256操作を更新します。

詳細
パラメーター
[in] aContext
SHA-256操作のコンテキスト。
[in] aBuf
入力バッファへのポインタ。
[in] aBufLength
長さaBufバイトです。
戻り値
OT_ERROR_NONE
新しい入力操作でSHA-256を正常に更新しました。
OT_ERROR_FAILED
SHA-256操作の更新に失敗しました。
OT_ERROR_INVALID_ARGS
aContextまたはaBuf NULLでした