Skip to content

Commit 8561eef

Browse files
committed
[crypto] PSA API: extend Crypto platform API to support HKDF-SHA256
This commit adds PSA API support for HKDF-SHA256 for TREL in OpenThread platform API. Signed-off-by: Łukasz Duda <lukasz.duda@nordicsemi.no>
1 parent c966588 commit 8561eef

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

include/openthread/instance.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ extern "C" {
5252
*
5353
* @note This number versions both OpenThread platform and user APIs.
5454
*/
55-
#define OPENTHREAD_API_VERSION (570)
55+
#define OPENTHREAD_API_VERSION (571)
5656

5757
/**
5858
* @addtogroup api-instance

include/openthread/platform/crypto.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,11 @@ extern "C" {
6060
*/
6161
typedef enum
6262
{
63-
OT_CRYPTO_KEY_TYPE_RAW, ///< Key Type: Raw Data.
64-
OT_CRYPTO_KEY_TYPE_AES, ///< Key Type: AES.
65-
OT_CRYPTO_KEY_TYPE_HMAC, ///< Key Type: HMAC.
66-
OT_CRYPTO_KEY_TYPE_ECDSA, ///< Key Type: ECDSA.
63+
OT_CRYPTO_KEY_TYPE_RAW, ///< Key Type: Raw Data.
64+
OT_CRYPTO_KEY_TYPE_AES, ///< Key Type: AES.
65+
OT_CRYPTO_KEY_TYPE_HMAC, ///< Key Type: HMAC.
66+
OT_CRYPTO_KEY_TYPE_ECDSA, ///< Key Type: ECDSA.
67+
OT_CRYPTO_KEY_TYPE_DERIVE, ///< Key Type: Derive.
6768
} otCryptoKeyType;
6869

6970
/**
@@ -75,6 +76,7 @@ typedef enum
7576
OT_CRYPTO_KEY_ALG_AES_ECB, ///< Key Algorithm: AES ECB.
7677
OT_CRYPTO_KEY_ALG_HMAC_SHA_256, ///< Key Algorithm: HMAC SHA-256.
7778
OT_CRYPTO_KEY_ALG_ECDSA, ///< Key Algorithm: ECDSA.
79+
OT_CRYPTO_KEY_ALG_HKDF_SHA256, ///< Key Algorithm: HKDF SHA-256.
7880
} otCryptoKeyAlgorithm;
7981

8082
/**
@@ -88,6 +90,7 @@ enum
8890
OT_CRYPTO_KEY_USAGE_DECRYPT = 1 << 2, ///< Key Usage: AES ECB.
8991
OT_CRYPTO_KEY_USAGE_SIGN_HASH = 1 << 3, ///< Key Usage: Sign Hash.
9092
OT_CRYPTO_KEY_USAGE_VERIFY_HASH = 1 << 4, ///< Key Usage: Verify Hash.
93+
OT_CRYPTO_KEY_USAGE_DERIVE = 1 << 5, ///< Key Usage: Derive.
9194
};
9295

9396
/**

src/core/crypto/storage.hpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,11 @@ namespace Storage {
5757
*/
5858
enum KeyType : uint8_t
5959
{
60-
kKeyTypeRaw = OT_CRYPTO_KEY_TYPE_RAW, ///< Key Type: Raw Data.
61-
kKeyTypeAes = OT_CRYPTO_KEY_TYPE_AES, ///< Key Type: AES.
62-
kKeyTypeHmac = OT_CRYPTO_KEY_TYPE_HMAC, ///< Key Type: HMAC.
63-
kKeyTypeEcdsa = OT_CRYPTO_KEY_TYPE_ECDSA, ///< Key Type: ECDSA.
60+
kKeyTypeRaw = OT_CRYPTO_KEY_TYPE_RAW, ///< Key Type: Raw Data.
61+
kKeyTypeAes = OT_CRYPTO_KEY_TYPE_AES, ///< Key Type: AES.
62+
kKeyTypeHmac = OT_CRYPTO_KEY_TYPE_HMAC, ///< Key Type: HMAC.
63+
kKeyTypeEcdsa = OT_CRYPTO_KEY_TYPE_ECDSA, ///< Key Type: ECDSA.
64+
kKeyTypeDerive = OT_CRYPTO_KEY_TYPE_DERIVE, ///< Key Type: Derive.
6465
};
6566

6667
/**
@@ -72,6 +73,7 @@ enum KeyAlgorithm : uint8_t
7273
kKeyAlgorithmAesEcb = OT_CRYPTO_KEY_ALG_AES_ECB, ///< Key Algorithm: AES ECB.
7374
kKeyAlgorithmHmacSha256 = OT_CRYPTO_KEY_ALG_HMAC_SHA_256, ///< Key Algorithm: HMAC SHA-256.
7475
kKeyAlgorithmEcdsa = OT_CRYPTO_KEY_ALG_ECDSA, ///< Key Algorithm: ECDSA.
76+
kKeyAlgorithmHkdfSha256 = OT_CRYPTO_KEY_ALG_HKDF_SHA256, ///< Key Algorithm: HKDF SHA-256.
7577
};
7678

7779
constexpr uint8_t kUsageNone = OT_CRYPTO_KEY_USAGE_NONE; ///< Key Usage: Key Usage is empty.
@@ -80,6 +82,7 @@ constexpr uint8_t kUsageEncrypt = OT_CRYPTO_KEY_USAGE_ENCRYPT; ///< Key U
8082
constexpr uint8_t kUsageDecrypt = OT_CRYPTO_KEY_USAGE_DECRYPT; ///< Key Usage: AES ECB.
8183
constexpr uint8_t kUsageSignHash = OT_CRYPTO_KEY_USAGE_SIGN_HASH; ///< Key Usage: Sign Hash.
8284
constexpr uint8_t kUsageVerifyHash = OT_CRYPTO_KEY_USAGE_VERIFY_HASH; ///< Key Usage: Verify Hash.
85+
constexpr uint8_t kUsageDerive = OT_CRYPTO_KEY_USAGE_DERIVE; ///< Key Usage: Derive.
8386

8487
/**
8588
* Defines the key storage types.

0 commit comments

Comments
 (0)