26#ifndef CRACEN_PSA_PRIMITIVES_H
27#define CRACEN_PSA_PRIMITIVES_H
29#include <psa/crypto_sizes.h>
30#include <psa/crypto_types.h>
31#include <psa/crypto_values.h>
32#include <silexpk/blinding.h>
35#include <sxsymcrypt/cmac.h>
36#include <sxsymcrypt/internal.h>
37#include <sxsymcrypt/trng.h>
38#include <sxsymcrypt/hashdefs.h>
40#if defined(PSA_NEED_CRACEN_MULTIPART_WORKAROUNDS)
41#if defined(PSA_NEED_CRACEN_CHACHA20_POLY1305)
42#include "poly1305_ext.h"
46#define SX_BLKCIPHER_IV_SZ (16U)
47#define SX_BLKCIPHER_AES_BLK_SZ (16U)
49#define SX_BLKCIPHER_CHACHA20_BLK_SZ (64U)
51#if defined(PSA_NEED_CRACEN_STREAM_CIPHER_CHACHA20)
56#define SX_BLKCIPHER_MAX_BLK_SZ SX_BLKCIPHER_CHACHA20_BLK_SZ
58#define SX_BLKCIPHER_MAX_BLK_SZ SX_BLKCIPHER_AES_BLK_SZ
61#define CRACEN_MAX_AES_KEY_SIZE (32u)
62#define CRACEN_MAX_AEAD_BLOCK_SIZE (64u)
64#if defined(PSA_NEED_CRACEN_SP800_108_COUNTER_HMAC)
65#define CRACEN_MAC_CTR_MAX_KEY_SIZE (128u)
67#define CRACEN_MAC_CTR_MAX_KEY_SIZE CRACEN_MAX_AES_KEY_SIZE
75#define CRACEN_MAX_AEAD_KEY_SIZE (32u)
82#define CRACEN_MAX_CHACHA20_KEY_SIZE (32u)
85#define CRACEN_CHACHA20_COUNTER_SIZE (4u)
88#define CRACEN_POLY1305_TAG_SIZE (16u)
89#define CRACEN_POLY1305_KEY_SIZE (32u)
91#define CRACEN_POLY1305_ACC_SIZE (17u)
98#define CRACEN_MAX_CIPHER_KEY_SIZE (32u)
105#define CRACEN_PBKDF_MAX_SALT_SIZE 128
112#define CRACEN_HKDF_MAX_INFO_SIZE 128
114#define CRACEN_MAC_MAX_LABEL_SIZE 127
115#define CRACEN_MAC_MAX_CONTEXT_SIZE 160
116#define CRACEN_JPAKE_USER_ID_MAX_SIZE 16
117#define CRACEN_P256_KEY_SIZE 32
118#define CRACEN_P256_POINT_SIZE 64
119#define CRACEN_TLS12_PRF_MAX_LABEL_SIZE 128
120#define CRACEN_TLS12_PRF_MAX_SEED_SIZE 128
126#define CRACEN_PRNG_KEY_SIZE (32u)
132#define CRACEN_PRNG_ENTROPY_SIZE (48u)
138#define CRACEN_PRNG_NONCE_SIZE (0u)
144#define CRACEN_PRNG_PERSONALIZATION_MAX_SIZE (48u)
150#define CRACEN_PRNG_WORKMEM_SIZE (176u)
156#define CRACEN_PRNG_MAX_REQUEST_SIZE (1u << 16)
158#define CRACEN_SPAKE2P_HASH_LEN PSA_HASH_LENGTH(PSA_ALG_SHA_256)
160#define CRACEN_WPA3_SAE_MAX_SSID_LEN (32u)
161#define CRACEN_WPA3_SAE_MAX_PWD_LEN (256u)
162#define CRACEN_WPA3_SAE_MAX_PWID_LEN (256u)
168#define CRACEN_WPA3_SAE_PMK_LEN (32u)
170#define CRACEN_WPA3_SAE_PMKID_SIZE (16u)
171#define CRACEN_WPA3_SAE_STA_ID_LEN (6u)
178#define CRACEN_WPA3_SAE_IANA_GROUP_SIZE (2u)
184#define CRACEN_WPA3_SAE_COMMIT_SIZE (CRACEN_P256_KEY_SIZE + \
185 CRACEN_P256_POINT_SIZE)
187#define CRACEN_WPA3_SAE_SEND_CONFIRM_SIZE (2u)
193#define CRACEN_WPA3_SAE_CONFIRM_SIZE (CRACEN_WPA3_SAE_SEND_CONFIRM_SIZE + \
194 PSA_HASH_LENGTH(PSA_ALG_SHA_256))
199#define CRACEN_AES_GCM_HTABLE_SIZE 16
326#if defined(PSA_NEED_CRACEN_MULTIPART_WORKAROUNDS)
327#if defined(PSA_NEED_CRACEN_CHACHA20_POLY1305)
329struct cracen_sw_chacha20_poly1305_context_s {
332 size_t keystream_offset;
333 poly1305_ext_context poly_ctx;
335 size_t total_data_enc;
336 bool ctr_initialized;
337 bool poly_initialized;
339typedef struct cracen_sw_chacha20_poly1305_context_s cracen_sw_chacha20_poly1305_context_t;
348 uint8_t
nonce[PSA_AEAD_NONCE_MAX_SIZE];
359#if defined(PSA_NEED_CRACEN_CTR_SIZE_WORKAROUNDS)
360#if defined(PSA_NEED_CRACEN_CCM_AES)
365#if defined(PSA_NEED_CRACEN_MULTIPART_WORKAROUNDS)
366#if defined(PSA_NEED_CRACEN_GCM_AES)
370#if defined(PSA_NEED_CRACEN_CHACHA20_POLY1305)
371 cracen_sw_chacha20_poly1305_context_t sw_chacha_poly_ctx;
397 uint8_t
input_buffer[SX_MAX(SX_HASH_MAX_ENABLED_BLOCK_SIZE, SX_BLKCIPHER_PRIV_SZ)];
402#if defined(PSA_NEED_CRACEN_HMAC)
404 struct sxhash hashctx;
405 uint8_t workmem[SX_HASH_MAX_ENABLED_BLOCK_SIZE +
409#if defined(PSA_NEED_CRACEN_CMAC)
412 struct sxkeyref keyref;
414#if defined(PSA_NEED_CRACEN_MULTIPART_WORKAROUNDS)
416 struct sxblkcipher cipher;
430 uint8_t
output_block[SX_MAX(SX_HASH_MAX_ENABLED_BLOCK_SIZE, SX_BLKCIPHER_PRIV_SZ)];
437#if defined(PSA_NEED_CRACEN_HKDF)
440 uint8_t prk[SX_HASH_MAX_ENABLED_BLOCK_SIZE];
441 uint8_t t[SX_HASH_MAX_ENABLED_BLOCK_SIZE];
447#if defined(PSA_NEED_CRACEN_PBKDF2_HMAC)
450 uint8_t password[SX_HASH_MAX_ENABLED_BLOCK_SIZE];
451 size_t password_length;
454 uint32_t blk_counter;
455 uint8_t uj[PSA_MAC_MAX_SIZE];
456 uint8_t tj[PSA_MAC_MAX_SIZE];
459#if defined(PSA_NEED_CRACEN_SP800_108_COUNTER_CMAC) || \
460 defined(PSA_NEED_CRACEN_SP800_108_COUNTER_HMAC)
462#if defined(PSA_NEED_CRACEN_SP800_108_COUNTER_CMAC)
465 psa_key_lifetime_t key_lifetime;
466 mbedtls_svc_key_id_t key_id;
476 size_t context_length;
480#if defined(PSA_NEED_CRACEN_TLS12_ECJPAKE_TO_PMS)
485#if defined(PSA_NEED_CRACEN_TLS12_PRF) || defined(PSA_NEED_CRACEN_TLS12_PSK_TO_MS)
490 uint8_t secret[PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE * 2 + 4];
491 size_t secret_length;
497 uint8_t a[SX_HASH_MAX_ENABLED_BLOCK_SIZE];
532#define CRACEN_SRP_HASH_ALG PSA_ALG_SHA_512
533#define CRACEN_SRP_HASH_LENGTH PSA_HASH_LENGTH(CRACEN_SRP_HASH_ALG)
535#define CRACEN_SRP_RFC3526_KEY_BITS_SIZE 3072
536#define CRACEN_SRP_FIELD_SIZE PSA_BITS_TO_BYTES(CRACEN_SRP_RFC3526_KEY_BITS_SIZE)
542#define CRACEN_SRP_MAX_SALT_LENGTH 64
624#ifdef PSA_NEED_CRACEN_SRP_6
627#ifdef PSA_NEED_CRACEN_ECJPAKE
630#ifdef PSA_NEED_CRACEN_SPAKE2P
633#ifdef PSA_NEED_CRACEN_WPA3_SAE
686 const struct sx_pk_cmd_def *
cmd;
#define CRACEN_WPA3_SAE_MAX_PWD_LEN
Definition cracen_psa_primitives.h:161
#define CRACEN_WPA3_SAE_COMMIT_SIZE
Definition cracen_psa_primitives.h:184
#define CRACEN_PBKDF_MAX_SALT_SIZE
Definition cracen_psa_primitives.h:105
#define CRACEN_MAX_CIPHER_KEY_SIZE
Definition cracen_psa_primitives.h:98
#define CRACEN_WPA3_SAE_PMK_LEN
Definition cracen_psa_primitives.h:168
#define CRACEN_WPA3_SAE_PMKID_SIZE
Definition cracen_psa_primitives.h:170
#define CRACEN_PRNG_KEY_SIZE
Definition cracen_psa_primitives.h:126
#define CRACEN_TLS12_PRF_MAX_SEED_SIZE
Definition cracen_psa_primitives.h:120
#define SX_BLKCIPHER_MAX_BLK_SZ
Definition cracen_psa_primitives.h:58
#define SX_BLKCIPHER_IV_SZ
Definition cracen_psa_primitives.h:46
cracen_context_state
Definition cracen_psa_primitives.h:255
@ CRACEN_CONTEXT_INITIALIZED
Definition cracen_psa_primitives.h:257
@ CRACEN_NOT_INITIALIZED
Definition cracen_psa_primitives.h:256
@ CRACEN_HW_RESERVED
Definition cracen_psa_primitives.h:258
cracen_kd_state
Definition cracen_psa_primitives.h:207
@ CRACEN_KD_STATE_MAC_CTR_INPUT_LABEL
Definition cracen_psa_primitives.h:225
@ CRACEN_KD_STATE_MAC_CTR_OUTPUT
Definition cracen_psa_primitives.h:227
@ CRACEN_KD_STATE_WPA3_SAE_H2E_SALT
Definition cracen_psa_primitives.h:243
@ CRACEN_KD_STATE_MAC_CTR_INPUT_CONTEXT
Definition cracen_psa_primitives.h:226
@ CRACEN_KD_STATE_PBKDF2_PASSWORD
Definition cracen_psa_primitives.h:219
@ CRACEN_KD_STATE_HKDF_INIT
Definition cracen_psa_primitives.h:211
@ CRACEN_KD_STATE_WPA3_SAE_H2E_PASSWORD
Definition cracen_psa_primitives.h:244
@ CRACEN_KD_STATE_HKDF_OUTPUT
Definition cracen_psa_primitives.h:214
@ CRACEN_KD_STATE_WPA3_SAE_H2E_INIT
Definition cracen_psa_primitives.h:242
@ CRACEN_KD_STATE_TLS12_PSK_TO_MS_OUTPUT
Definition cracen_psa_primitives.h:235
@ CRACEN_KD_STATE_TLS12_ECJPAKE_TO_PMS_OUTPUT
Definition cracen_psa_primitives.h:239
@ CRACEN_KD_STATE_WPA3_SAE_H2E_OUTPUT
Definition cracen_psa_primitives.h:246
@ CRACEN_KD_STATE_MAC_CTR_KEY_LOADED
Definition cracen_psa_primitives.h:224
@ CRACEN_KD_STATE_PBKDF2_INIT
Definition cracen_psa_primitives.h:217
@ CRACEN_KD_STATE_TLS12_PSK_TO_MS_INIT
Definition cracen_psa_primitives.h:234
@ CRACEN_KD_STATE_HKDF_KEYED
Definition cracen_psa_primitives.h:213
@ CRACEN_KD_STATE_HKDF_STARTED
Definition cracen_psa_primitives.h:212
@ CRACEN_KD_STATE_PBKDF2_OUTPUT
Definition cracen_psa_primitives.h:220
@ CRACEN_KD_STATE_MAC_CTR_INIT
Definition cracen_psa_primitives.h:223
@ CRACEN_KD_STATE_TLS12_PRF_INIT
Definition cracen_psa_primitives.h:230
@ CRACEN_KD_STATE_WPA3_SAE_H2E_INFO
Definition cracen_psa_primitives.h:245
@ CRACEN_KD_STATE_INVALID
Definition cracen_psa_primitives.h:208
@ CRACEN_KD_STATE_TLS12_PRF_OUTPUT
Definition cracen_psa_primitives.h:231
@ CRACEN_KD_STATE_PBKDF2_SALT
Definition cracen_psa_primitives.h:218
@ CRACEN_KD_STATE_TLS12_ECJPAKE_TO_PMS_INIT
Definition cracen_psa_primitives.h:238
#define CRACEN_MAC_MAX_LABEL_SIZE
Definition cracen_psa_primitives.h:114
#define CRACEN_MAX_AEAD_KEY_SIZE
Definition cracen_psa_primitives.h:75
#define CRACEN_SRP_MAX_SALT_LENGTH
Definition cracen_psa_primitives.h:542
#define CRACEN_SRP_FIELD_SIZE
Definition cracen_psa_primitives.h:536
#define CRACEN_MAC_CTR_MAX_KEY_SIZE
Definition cracen_psa_primitives.h:67
#define CRACEN_AES_GCM_HTABLE_SIZE
Definition cracen_psa_primitives.h:199
#define CRACEN_P256_POINT_SIZE
Definition cracen_psa_primitives.h:118
#define CRACEN_CHACHA20_COUNTER_SIZE
Definition cracen_psa_primitives.h:85
cipher_operation
Definition cracen_psa_primitives.h:201
@ CRACEN_ENCRYPT
Definition cracen_psa_primitives.h:203
@ CRACEN_DECRYPT
Definition cracen_psa_primitives.h:202
#define CRACEN_TLS12_PRF_MAX_LABEL_SIZE
Definition cracen_psa_primitives.h:119
#define SX_BLKCIPHER_CHACHA20_BLK_SZ
Definition cracen_psa_primitives.h:49
#define CRACEN_WPA3_SAE_STA_ID_LEN
Definition cracen_psa_primitives.h:171
#define SX_BLKCIPHER_AES_BLK_SZ
Definition cracen_psa_primitives.h:47
#define CRACEN_SPAKE2P_HASH_LEN
Definition cracen_psa_primitives.h:158
#define CRACEN_MAC_MAX_CONTEXT_SIZE
Definition cracen_psa_primitives.h:115
#define CRACEN_MAX_AEAD_BLOCK_SIZE
Definition cracen_psa_primitives.h:62
#define CRACEN_JPAKE_USER_ID_MAX_SIZE
Definition cracen_psa_primitives.h:116
#define CRACEN_HKDF_MAX_INFO_SIZE
Definition cracen_psa_primitives.h:112
#define CRACEN_MAX_AES_KEY_SIZE
Definition cracen_psa_primitives.h:61
#define CRACEN_SRP_HASH_LENGTH
Definition cracen_psa_primitives.h:533
#define CRACEN_P256_KEY_SIZE
Definition cracen_psa_primitives.h:117
peer_id
Definition peer_conn_event.h:32
uint8_t nonce_length
Definition cracen_psa_primitives.h:349
size_t plaintext_length
Definition cracen_psa_primitives.h:351
bool ad_finished
Definition cracen_psa_primitives.h:357
uint8_t unprocessed_input[(64u)]
Definition cracen_psa_primitives.h:353
uint8_t tag_size
Definition cracen_psa_primitives.h:355
size_t ad_length
Definition cracen_psa_primitives.h:350
uint8_t key_buffer[(32u)]
Definition cracen_psa_primitives.h:347
enum cipher_operation dir
Definition cracen_psa_primitives.h:352
psa_algorithm_t alg
Definition cracen_psa_primitives.h:345
uint8_t nonce[PSA_AEAD_NONCE_MAX_SIZE]
Definition cracen_psa_primitives.h:348
struct sxaead ctx
Definition cracen_psa_primitives.h:358
uint8_t unprocessed_input_bytes
Definition cracen_psa_primitives.h:354
struct sxkeyref keyref
Definition cracen_psa_primitives.h:346
enum cracen_context_state context_state
Definition cracen_psa_primitives.h:356
Definition cracen_psa_primitives.h:344
uint8_t blk_size
Definition cracen_psa_primitives.h:291
struct sxkeyref keyref
Definition cracen_psa_primitives.h:287
uint8_t unprocessed_input[(16U)]
Definition cracen_psa_primitives.h:289
enum cipher_operation dir
Definition cracen_psa_primitives.h:292
psa_algorithm_t alg
Definition cracen_psa_primitives.h:283
uint8_t unprocessed_input_bytes
Definition cracen_psa_primitives.h:290
uint8_t iv[(16U)]
Definition cracen_psa_primitives.h:286
bool initialized
Definition cracen_psa_primitives.h:285
struct sxblkcipher cipher
Definition cracen_psa_primitives.h:284
uint8_t key_buffer[(32u)]
Definition cracen_psa_primitives.h:288
Definition cracen_psa_primitives.h:282
size_t processed_len
Definition cracen_psa_primitives.h:382
size_t partial_len
Definition cracen_psa_primitives.h:381
uint8_t mac_state[(16U)]
Definition cracen_psa_primitives.h:379
uint8_t partial_block[(16U)]
Definition cracen_psa_primitives.h:380
Definition cracen_psa_primitives.h:378
const uint8_t * s
Definition cracen_psa_primitives.h:662
size_t sz
Definition cracen_psa_primitives.h:660
const uint8_t * r
Definition cracen_psa_primitives.h:661
Definition cracen_psa_primitives.h:659
size_t bsz
Definition cracen_psa_primitives.h:707
const uint8_t * a
Definition cracen_psa_primitives.h:704
const uint8_t * b
Definition cracen_psa_primitives.h:706
size_t asz
Definition cracen_psa_primitives.h:705
Definition cracen_psa_primitives.h:703
uint8_t * addr
Definition cracen_psa_primitives.h:698
size_t sz
Definition cracen_psa_primitives.h:699
Definition cracen_psa_primitives.h:697
struct cracen_ecc_pub_key pub_key
Definition cracen_psa_primitives.h:681
struct cracen_ecc_priv_key priv_key
Definition cracen_psa_primitives.h:680
Definition cracen_psa_primitives.h:679
const struct sx_pk_ecurve * curve
Definition cracen_psa_primitives.h:667
const uint8_t * d
Definition cracen_psa_primitives.h:668
Definition cracen_psa_primitives.h:666
const struct sx_pk_ecurve * curve
Definition cracen_psa_primitives.h:673
uint8_t * qx
Definition cracen_psa_primitives.h:674
uint8_t * qy
Definition cracen_psa_primitives.h:675
Definition cracen_psa_primitives.h:672
struct sxhash sx_ctx
Definition cracen_psa_primitives.h:266
const struct sxhashalg * sx_hash_algo
Definition cracen_psa_primitives.h:263
uint8_t input_buffer[SX_HASH_MAX_ENABLED_BLOCK_SIZE]
Definition cracen_psa_primitives.h:274
bool has_saved_state
Definition cracen_psa_primitives.h:277
size_t bytes_left_for_next_block
Definition cracen_psa_primitives.h:271
Definition cracen_psa_primitives.h:262
uint8_t x[3][32]
Definition cracen_psa_primitives.h:514
uint8_t P[3][64]
Definition cracen_psa_primitives.h:516
psa_algorithm_t alg
Definition cracen_psa_primitives.h:506
size_t user_id_length
Definition cracen_psa_primitives.h:510
const struct sx_pk_ecurve * curve
Definition cracen_psa_primitives.h:519
uint8_t X[3][64]
Definition cracen_psa_primitives.h:515
uint8_t wr_idx
Definition cracen_psa_primitives.h:513
uint8_t rd_idx
Definition cracen_psa_primitives.h:512
uint8_t user_id[16]
Definition cracen_psa_primitives.h:508
uint8_t secret[32]
Definition cracen_psa_primitives.h:507
uint8_t r[32]
Definition cracen_psa_primitives.h:518
uint8_t V[64]
Definition cracen_psa_primitives.h:517
size_t peer_id_length
Definition cracen_psa_primitives.h:511
Definition cracen_psa_primitives.h:505
cracen_hash_operation_t hash_op
Definition cracen_psa_primitives.h:434
psa_algorithm_t alg
Definition cracen_psa_primitives.h:427
uint8_t output_block_available_bytes
Definition cracen_psa_primitives.h:431
cracen_mac_operation_t mac_op
Definition cracen_psa_primitives.h:433
enum cracen_kd_state state
Definition cracen_psa_primitives.h:428
uint8_t output_block[SX_MAX(SX_HASH_MAX_ENABLED_BLOCK_SIZE, SX_BLKCIPHER_PRIV_SZ)]
Definition cracen_psa_primitives.h:430
uint64_t capacity
Definition cracen_psa_primitives.h:429
Definition cracen_psa_primitives.h:426
uint8_t input_buffer[SX_MAX(SX_HASH_MAX_ENABLED_BLOCK_SIZE, SX_BLKCIPHER_PRIV_SZ)]
Definition cracen_psa_primitives.h:397
size_t mac_size
Definition cracen_psa_primitives.h:389
size_t bytes_left_for_next_block
Definition cracen_psa_primitives.h:394
bool has_saved_state
Definition cracen_psa_primitives.h:400
psa_algorithm_t alg
Definition cracen_psa_primitives.h:388
Definition cracen_psa_primitives.h:387
psa_algorithm_t alg
Definition cracen_psa_primitives.h:622
Definition cracen_psa_primitives.h:621
uint32_t initialized
Definition cracen_psa_primitives.h:528
uint8_t V[(16U)]
Definition cracen_psa_primitives.h:526
uint64_t reseed_counter
Definition cracen_psa_primitives.h:527
uint8_t key[(32u)]
Definition cracen_psa_primitives.h:525
Definition cracen_psa_primitives.h:524
unsigned int slotmask
Definition cracen_psa_primitives.h:687
const struct sx_pk_cmd_def * cmd
Definition cracen_psa_primitives.h:686
const struct sx_buf * elements[5]
Definition cracen_psa_primitives.h:689
unsigned int dataidx
Definition cracen_psa_primitives.h:688
Definition cracen_psa_primitives.h:685
uint8_t * q
Definition cracen_psa_primitives.h:715
size_t pubexpsz
Definition cracen_psa_primitives.h:713
uint8_t * p
Definition cracen_psa_primitives.h:714
const uint8_t * pubexp
Definition cracen_psa_primitives.h:712
size_t candidatesz
Definition cracen_psa_primitives.h:716
size_t mrrounds
Definition cracen_psa_primitives.h:717
Definition cracen_psa_primitives.h:711
size_t attempts
Definition cracen_psa_primitives.h:729
uint8_t * p
Definition cracen_psa_primitives.h:724
uint8_t * qptr
Definition cracen_psa_primitives.h:727
size_t pubexpsz
Definition cracen_psa_primitives.h:723
const uint8_t * pubexp
Definition cracen_psa_primitives.h:722
size_t candidatesz
Definition cracen_psa_primitives.h:728
uint8_t * q
Definition cracen_psa_primitives.h:725
uint8_t * rndout
Definition cracen_psa_primitives.h:726
Definition cracen_psa_primitives.h:721
uint8_t * s
Definition cracen_psa_primitives.h:650
size_t sz
Definition cracen_psa_primitives.h:648
uint8_t * r
Definition cracen_psa_primitives.h:649
Definition cracen_psa_primitives.h:647
uint8_t prover_len
Definition cracen_psa_primitives.h:581
uint8_t verifier_len
Definition cracen_psa_primitives.h:582
uint8_t YX[64+1]
Definition cracen_psa_primitives.h:574
const uint8_t * NM
Definition cracen_psa_primitives.h:584
uint8_t xy[32]
Definition cracen_psa_primitives.h:570
psa_algorithm_t alg
Definition cracen_psa_primitives.h:566
uint8_t verifier[32]
Definition cracen_psa_primitives.h:580
const uint8_t * MN
Definition cracen_psa_primitives.h:583
const struct sx_pk_ecurve * curve
Definition cracen_psa_primitives.h:586
uint8_t KconfPV[PSA_HASH_LENGTH(PSA_ALG_SHA_256)]
Definition cracen_psa_primitives.h:577
cracen_hash_operation_t hash_op
Definition cracen_psa_primitives.h:567
uint8_t XY[64+1]
Definition cracen_psa_primitives.h:572
uint8_t w0[32]
Definition cracen_psa_primitives.h:568
uint8_t KconfVP[PSA_HASH_LENGTH(PSA_ALG_SHA_256)]
Definition cracen_psa_primitives.h:578
uint8_t prover[32]
Definition cracen_psa_primitives.h:579
uint8_t shared[PSA_HASH_LENGTH(PSA_ALG_SHA_256)]
Definition cracen_psa_primitives.h:575
uint8_t shared_len
Definition cracen_psa_primitives.h:576
psa_pake_role_t role
Definition cracen_psa_primitives.h:585
uint8_t w1_or_L[64]
Definition cracen_psa_primitives.h:569
Definition cracen_psa_primitives.h:565
uint8_t B[PSA_BITS_TO_BYTES(3072)]
Definition cracen_psa_primitives.h:557
uint8_t K[PSA_HASH_LENGTH(PSA_ALG_SHA_512)]
Definition cracen_psa_primitives.h:560
uint8_t x[PSA_HASH_LENGTH(PSA_ALG_SHA_512)]
Definition cracen_psa_primitives.h:552
psa_pake_role_t role
Definition cracen_psa_primitives.h:546
uint8_t user_hash[PSA_HASH_LENGTH(PSA_ALG_SHA_512)]
Definition cracen_psa_primitives.h:547
uint8_t v[PSA_BITS_TO_BYTES(3072)]
Definition cracen_psa_primitives.h:553
uint8_t ab[32]
Definition cracen_psa_primitives.h:555
uint8_t A[PSA_BITS_TO_BYTES(3072)]
Definition cracen_psa_primitives.h:556
uint8_t M[PSA_HASH_LENGTH(PSA_ALG_SHA_512)]
Definition cracen_psa_primitives.h:559
uint8_t salt[64]
Definition cracen_psa_primitives.h:548
size_t salt_len
Definition cracen_psa_primitives.h:549
Definition cracen_psa_primitives.h:545
uint8_t keystream[(16U)]
Definition cracen_psa_primitives.h:300
uint8_t cbc_mac[(16U)]
Definition cracen_psa_primitives.h:298
uint8_t ctr_block[(16U)]
Definition cracen_psa_primitives.h:299
bool cbc_mac_initialized
Definition cracen_psa_primitives.h:305
bool has_partial_ad_block
Definition cracen_psa_primitives.h:307
size_t total_ad_fed
Definition cracen_psa_primitives.h:303
size_t keystream_offset
Definition cracen_psa_primitives.h:302
size_t data_partial_len
Definition cracen_psa_primitives.h:304
bool ctr_initialized
Definition cracen_psa_primitives.h:306
uint8_t partial_block[(16U)]
Definition cracen_psa_primitives.h:301
Definition cracen_psa_primitives.h:297
bool ghash_initialized
Definition cracen_psa_primitives.h:322
size_t keystream_offset
Definition cracen_psa_primitives.h:318
uint8_t ctr_block[(16U)]
Definition cracen_psa_primitives.h:316
uint64_t h_table[16][(16U)/sizeof(uint64_t)]
Definition cracen_psa_primitives.h:314
size_t total_data_enc
Definition cracen_psa_primitives.h:320
bool ctr_initialized
Definition cracen_psa_primitives.h:321
size_t total_ad_fed
Definition cracen_psa_primitives.h:319
uint8_t keystream[(16U)]
Definition cracen_psa_primitives.h:317
uint8_t ghash_block[(16U)]
Definition cracen_psa_primitives.h:315
Definition cracen_psa_primitives.h:312
uint8_t commit[(32+64)]
Definition cracen_psa_primitives.h:608
uint8_t use_h2e
Definition cracen_psa_primitives.h:612
cracen_mac_operation_t mac_op
Definition cracen_psa_primitives.h:592
uint8_t max_id_min_id[2 *(6u)]
Definition cracen_psa_primitives.h:602
uint8_t password[(256u)]
Definition cracen_psa_primitives.h:594
uint8_t min_id[(6u)]
Definition cracen_psa_primitives.h:600
uint8_t kck[32]
Definition cracen_psa_primitives.h:605
uint8_t peer_commit[(32+64)]
Definition cracen_psa_primitives.h:609
uint8_t pmkid[(16u)]
Definition cracen_psa_primitives.h:607
uint8_t salt_set
Definition cracen_psa_primitives.h:614
psa_algorithm_t hash_alg
Definition cracen_psa_primitives.h:593
uint8_t max_id[(6u)]
Definition cracen_psa_primitives.h:599
uint8_t hash_length
Definition cracen_psa_primitives.h:610
uint8_t pwe[64]
Definition cracen_psa_primitives.h:596
uint16_t send_confirm
Definition cracen_psa_primitives.h:615
const struct sx_pk_ecurve * curve
Definition cracen_psa_primitives.h:616
uint8_t pmk_length
Definition cracen_psa_primitives.h:611
uint16_t pw_length
Definition cracen_psa_primitives.h:595
uint8_t keys_set
Definition cracen_psa_primitives.h:613
uint8_t rand[32]
Definition cracen_psa_primitives.h:604
uint8_t pmk[(32u)]
Definition cracen_psa_primitives.h:606
Definition cracen_psa_primitives.h:591