nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches

Primitive operations and data structures for the CRACEN PSA driver. More...

Data Structures

struct  cracen_hash_operation_s
 
struct  cracen_cipher_operation
 
struct  cracen_sw_ccm_context_s
 
struct  cracen_sw_gcm_context_s
 
struct  cracen_aead_operation
 
struct  cracen_cmac_context_s
 
struct  cracen_mac_operation_s
 
struct  cracen_key_derivation_operation
 
struct  cracen_jpake_operation
 
struct  cracen_prng_context
 
struct  cracen_srp_operation
 
struct  cracen_spake2p_operation
 
struct  cracen_wpa3_sae_operation
 
struct  cracen_pake_operation
 
struct  cracen_signature
 
struct  cracen_const_signature
 
struct  cracen_ecc_priv_key
 
struct  cracen_ecc_pub_key
 
struct  cracen_ecc_keypair
 
struct  cracen_rsa_key
 
struct  cracen_crypt_text
 
struct  cracen_coprimecheck
 
struct  cracen_rsacheckpq
 
struct  cracen_rsagenpq
 

Macros

#define SX_BLKCIPHER_IV_SZ   (16U)
 
#define SX_BLKCIPHER_AES_BLK_SZ   (16U)
 
#define SX_BLKCIPHER_CHACHA20_BLK_SZ   (64U)
 
#define SX_BLKCIPHER_MAX_BLK_SZ   SX_BLKCIPHER_AES_BLK_SZ
 
#define CRACEN_MAX_AES_KEY_SIZE   (32u)
 
#define CRACEN_MAX_AEAD_BLOCK_SIZE   (64u)
 
#define CRACEN_MAC_CTR_MAX_KEY_SIZE   CRACEN_MAX_AES_KEY_SIZE
 
#define CRACEN_MAX_AEAD_KEY_SIZE   (32u)
 
#define CRACEN_MAX_CHACHA20_KEY_SIZE   (32u)
 
#define CRACEN_CHACHA20_COUNTER_SIZE   (4u)
 
#define CRACEN_POLY1305_TAG_SIZE   (16u)
 
#define CRACEN_POLY1305_KEY_SIZE   (32u)
 
#define CRACEN_POLY1305_ACC_SIZE   (17u)
 
#define CRACEN_MAX_CIPHER_KEY_SIZE   (32u)
 
#define CRACEN_PBKDF_MAX_SALT_SIZE   128
 
#define CRACEN_HKDF_MAX_INFO_SIZE   128
 
#define CRACEN_MAC_MAX_LABEL_SIZE   127
 
#define CRACEN_MAC_MAX_CONTEXT_SIZE   160
 
#define CRACEN_JPAKE_USER_ID_MAX_SIZE   16
 
#define CRACEN_P256_KEY_SIZE   32
 
#define CRACEN_P256_POINT_SIZE   64
 
#define CRACEN_TLS12_PRF_MAX_LABEL_SIZE   128
 
#define CRACEN_TLS12_PRF_MAX_SEED_SIZE   128
 
#define CRACEN_PRNG_KEY_SIZE   (32u)
 
#define CRACEN_PRNG_ENTROPY_SIZE   (48u)
 
#define CRACEN_PRNG_NONCE_SIZE   (0u)
 
#define CRACEN_PRNG_PERSONALIZATION_MAX_SIZE   (48u)
 
#define CRACEN_PRNG_WORKMEM_SIZE   (176u)
 
#define CRACEN_PRNG_MAX_REQUEST_SIZE   (1u << 16)
 
#define CRACEN_SPAKE2P_HASH_LEN   PSA_HASH_LENGTH(PSA_ALG_SHA_256)
 
#define CRACEN_WPA3_SAE_MAX_SSID_LEN   (32u)
 
#define CRACEN_WPA3_SAE_MAX_PWD_LEN   (256u)
 
#define CRACEN_WPA3_SAE_MAX_PWID_LEN   (256u)
 
#define CRACEN_WPA3_SAE_PMK_LEN   (32u)
 
#define CRACEN_WPA3_SAE_PMKID_SIZE   (16u)
 
#define CRACEN_WPA3_SAE_STA_ID_LEN   (6u)
 
#define CRACEN_WPA3_SAE_IANA_GROUP_SIZE   (2u)
 
#define CRACEN_WPA3_SAE_COMMIT_SIZE
 
#define CRACEN_WPA3_SAE_SEND_CONFIRM_SIZE   (2u)
 
#define CRACEN_WPA3_SAE_CONFIRM_SIZE
 
#define CRACEN_AES_GCM_HTABLE_SIZE   16
 
#define CRACEN_SRP_HASH_ALG   PSA_ALG_SHA_512
 
#define CRACEN_SRP_HASH_LENGTH   PSA_HASH_LENGTH(CRACEN_SRP_HASH_ALG)
 
#define CRACEN_SRP_RFC3526_KEY_BITS_SIZE   3072
 
#define CRACEN_SRP_FIELD_SIZE   PSA_BITS_TO_BYTES(CRACEN_SRP_RFC3526_KEY_BITS_SIZE)
 
#define CRACEN_SRP_MAX_SALT_LENGTH   64
 

Typedefs

typedef struct cracen_hash_operation_s cracen_hash_operation_t
 
typedef struct cracen_cipher_operation cracen_cipher_operation_t
 
typedef struct cracen_sw_ccm_context_s cracen_sw_ccm_context_t
 
typedef struct cracen_sw_gcm_context_s cracen_sw_gcm_context_t
 
typedef struct cracen_aead_operation cracen_aead_operation_t
 
typedef struct cracen_cmac_context_s cracen_cmac_context_t
 
typedef struct cracen_mac_operation_s cracen_mac_operation_t
 
typedef struct cracen_key_derivation_operation cracen_key_derivation_operation_t
 
typedef struct cracen_jpake_operation cracen_jpake_operation_t
 
typedef struct cracen_prng_context cracen_prng_context_t
 
typedef struct cracen_srp_operation cracen_srp_operation_t
 
typedef struct cracen_spake2p_operation cracen_spake2p_operation_t
 
typedef struct cracen_wpa3_sae_operation cracen_wpa3_sae_operation_t
 
typedef struct cracen_pake_operation cracen_pake_operation_t
 

Enumerations

enum  cipher_operation { CRACEN_DECRYPT , CRACEN_ENCRYPT }
 
enum  cracen_kd_state {
  CRACEN_KD_STATE_INVALID = 0 , CRACEN_KD_STATE_HKDF_INIT = 0x10 , CRACEN_KD_STATE_HKDF_STARTED , CRACEN_KD_STATE_HKDF_KEYED ,
  CRACEN_KD_STATE_HKDF_OUTPUT , CRACEN_KD_STATE_PBKDF2_INIT = 0x20 , CRACEN_KD_STATE_PBKDF2_SALT , CRACEN_KD_STATE_PBKDF2_PASSWORD ,
  CRACEN_KD_STATE_PBKDF2_OUTPUT , CRACEN_KD_STATE_MAC_CTR_INIT = 0x40 , CRACEN_KD_STATE_MAC_CTR_KEY_LOADED , CRACEN_KD_STATE_MAC_CTR_INPUT_LABEL ,
  CRACEN_KD_STATE_MAC_CTR_INPUT_CONTEXT , CRACEN_KD_STATE_MAC_CTR_OUTPUT , CRACEN_KD_STATE_TLS12_PRF_INIT = 0x80 , CRACEN_KD_STATE_TLS12_PRF_OUTPUT ,
  CRACEN_KD_STATE_TLS12_PSK_TO_MS_INIT = 0x100 , CRACEN_KD_STATE_TLS12_PSK_TO_MS_OUTPUT , CRACEN_KD_STATE_TLS12_ECJPAKE_TO_PMS_INIT = 0x200 , CRACEN_KD_STATE_TLS12_ECJPAKE_TO_PMS_OUTPUT ,
  CRACEN_KD_STATE_WPA3_SAE_H2E_INIT = 0x400 , CRACEN_KD_STATE_WPA3_SAE_H2E_SALT , CRACEN_KD_STATE_WPA3_SAE_H2E_PASSWORD , CRACEN_KD_STATE_WPA3_SAE_H2E_INFO ,
  CRACEN_KD_STATE_WPA3_SAE_H2E_OUTPUT
}
 
enum  cracen_context_state { CRACEN_NOT_INITIALIZED = 0x0 , CRACEN_CONTEXT_INITIALIZED = 0x1 , CRACEN_HW_RESERVED = 0x2 }
 

Detailed Description

Primitive operations and data structures for the CRACEN PSA driver.

Note
These primitives are shared between the public driver API and internal implementation.

This module provides primitive data structures and constants, shared between the public driver API and internal implementation.

Warning
The structs in this module contain sensitive data. If used directly, you must make sure that they are correctly wiped after usage to avoid leaking sensitive data.

Unless otherwise specified, all size and length defines are in bytes.