8#ifndef CC3XX_PSA_KEY_GENERATION_H
9#define CC3XX_PSA_KEY_GENERATION_H
19#include "psa/crypto.h"
37 uint8_t *key_buffer,
size_t key_buffer_size,
38 size_t *key_buffer_length);
53 const uint8_t *key_buffer,
54 size_t key_buffer_size, uint8_t *data,
55 size_t data_size,
size_t *data_length);
72 const uint8_t *data,
size_t data_length,
73 uint8_t *key_buffer,
size_t key_buffer_size,
74 size_t *key_buffer_length,
size_t *key_bits );
90 uint8_t *key_buffer,
size_t key_buffer_size,
91 size_t *key_buffer_length);
104 uint8_t *key_buffer,
size_t key_buffer_size);
117 uint8_t *key_buffer,
size_t key_buffer_size);
132 uint8_t *key_buffer,
size_t key_buffer_size,
133 size_t *key_buffer_length);
150 const uint8_t *key_buffer,
151 size_t key_buffer_size, uint8_t *data,
152 size_t data_size,
size_t *data_length);
168 const uint8_t *key_buffer,
169 size_t key_buffer_size, uint8_t *data,
170 size_t data_size,
size_t *data_length);
185 const uint8_t *key_buffer,
186 size_t key_buffer_size, uint8_t *data,
187 size_t data_size,
size_t *data_length);
199 const uint8_t *key_buff,
200 size_t key_buff_size);
212 const uint8_t *key_buff,
213 size_t key_buff_length);
228 psa_key_type_t key_type,
229 const uint8_t *key_buff,
230 size_t key_buff_length);
psa_status_t cc3xx_internal_gen_ecc_edwards_keypair(const psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size)
Generate an ECC Edwards key pair.
psa_status_t cc3xx_import_key(const psa_key_attributes_t *attributes, const uint8_t *data, size_t data_length, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length, size_t *key_bits)
Import a key.
psa_status_t cc3xx_internal_check_edw_key(psa_key_type_t key_type, const uint8_t *key_buff, size_t key_buff_length)
Check validity of ECC Edwards key.
psa_status_t cc3xx_export_public_key(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, uint8_t *data, size_t data_size, size_t *data_length)
Export the public key from a private key.
psa_status_t cc3xx_generate_key(const psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
Generate a random key.
psa_status_t cc3xx_internal_export_ecc_mont_public_key(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, uint8_t *data, size_t data_size, size_t *data_length)
Export the public key from an ECC Montgomery private key.
psa_status_t cc3xx_internal_export_ecc_edwards_public_key(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, uint8_t *data, size_t data_size, size_t *data_length)
Export the public key from an ECC Edwards private key.
psa_status_t cc3xx_internal_check_mont_key(psa_key_type_t key_type, const uint8_t *key_buff, size_t key_buff_size)
Check validity of ECC Montgomery key.
psa_status_t cc3xx_internal_gen_ecc_mont_keypair(const psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size)
Generate an ECC Montgomery key pair.
psa_status_t cc3xx_internal_check_wrst_key(psa_ecc_family_t curve, size_t curve_bits, psa_key_type_t key_type, const uint8_t *key_buff, size_t key_buff_length)
Check validity of ECC Weierstrass key.
psa_status_t cc3xx_internal_gen_rsa_keypair(const psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
Generate an RSA key pair.
psa_status_t cc3xx_internal_export_ecc_wrst_public_key(const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, uint8_t *data, size_t data_size, size_t *data_length)
Export the public key from an ECC Weierstrass private key.
psa_status_t cc3xx_internal_gen_ecc_wstr_keypair(const psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
Generate an ECC Weierstrass key pair.