psa_ecc.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 HAW Hamburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
20 #ifndef PSA_ECC_H
21 #define PSA_ECC_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #include "psa/crypto.h"
28 #include "kernel_defines.h"
29 
36  uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
37  size_t *priv_key_buffer_length,
38  size_t *pub_key_buffer_length);
39 
46  psa_algorithm_t alg,
47  const uint8_t *key_buffer, size_t key_buffer_size,
48  const uint8_t *hash, size_t hash_length,
49  uint8_t *signature, size_t signature_size,
50  size_t *signature_length);
51 
58  psa_algorithm_t alg,
59  const uint8_t *key_buffer, size_t key_buffer_size,
60  const uint8_t *input, size_t input_length,
61  uint8_t *signature, size_t signature_size,
62  size_t *signature_length);
63 
70  psa_algorithm_t alg,
71  const uint8_t *key_buffer, size_t key_buffer_size,
72  const uint8_t *hash, size_t hash_length,
73  const uint8_t *signature, size_t signature_length);
74 
81  psa_algorithm_t alg,
82  const uint8_t *key_buffer, size_t key_buffer_size,
83  const uint8_t *input, size_t input_length,
84  const uint8_t *signature, size_t signature_length);
85 
92  uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
93  size_t *priv_key_buffer_length,
94  size_t *pub_key_buffer_length);
95 
102  psa_algorithm_t alg,
103  const uint8_t *key_buffer, size_t key_buffer_size,
104  const uint8_t *hash, size_t hash_length,
105  uint8_t *signature, size_t signature_size,
106  size_t *signature_length);
107 
114  psa_algorithm_t alg,
115  const uint8_t *key_buffer, size_t key_buffer_size,
116  const uint8_t *input, size_t input_length,
117  uint8_t *signature, size_t signature_size,
118  size_t *signature_length);
119 
126  psa_algorithm_t alg,
127  const uint8_t *key_buffer, size_t key_buffer_size,
128  const uint8_t *hash, size_t hash_length,
129  const uint8_t *signature, size_t signature_length);
130 
137  psa_algorithm_t alg,
138  const uint8_t *key_buffer, size_t key_buffer_size,
139  const uint8_t *input, size_t input_length,
140  const uint8_t *signature, size_t signature_length);
141 
147 psa_status_t psa_generate_ecc_ed25519_key_pair( uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
148  size_t *priv_key_buffer_length,
149  size_t *pub_key_buffer_length);
150 
154 psa_status_t psa_derive_ecc_ed25519_public_key( const uint8_t *priv_key_buffer,
155  uint8_t *pub_key_buffer,
156  size_t priv_key_buffer_length,
157  size_t *pub_key_buffer_length);
158 
164 psa_status_t psa_ecc_ed25519_sign_message(const uint8_t *priv_key_buffer,
165  size_t priv_key_buffer_size,
166  const uint8_t *pub_key_buffer,
167  size_t pub_key_buffer_size,
168  const uint8_t *input, size_t input_length,
169  uint8_t *signature, size_t signature_size,
170  size_t *signature_length);
171 
177 psa_status_t psa_ecc_ed25519_verify_message(const uint8_t *key_buffer, size_t key_buffer_size,
178  const uint8_t *input, size_t input_length,
179  const uint8_t *signature, size_t signature_length);
180 
181 #ifdef __cplusplus
182 }
183 #endif
184 
185 #endif /* PSA_ECC_H */
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition: algorithm.h:39
Function declarations for PSA Crypto.
psa_status_t psa_ecc_p192r1_sign_message(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *input, size_t input_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Low level wrapper function to call a driver for an ECC hash signature with a SECP 192 R1 key.
psa_status_t psa_ecc_p256r1_verify_message(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *input, size_t input_length, const uint8_t *signature, size_t signature_length)
Low level wrapper function to call a driver for an ECC hash verification with a SECP 256 R1 key.
psa_status_t psa_generate_ecc_p256r1_key_pair(const psa_key_attributes_t *attributes, uint8_t *priv_key_buffer, uint8_t *pub_key_buffer, size_t *priv_key_buffer_length, size_t *pub_key_buffer_length)
Low level wrapper function to call a driver for an ECC key generation with a SECP 192 R1 key.
psa_status_t psa_ecc_p256r1_sign_message(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *input, size_t input_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Low level wrapper function to call a driver for an ECC hash signature with a SECP 256 R1 key.
psa_status_t psa_generate_ecc_ed25519_key_pair(uint8_t *priv_key_buffer, uint8_t *pub_key_buffer, size_t *priv_key_buffer_length, size_t *pub_key_buffer_length)
Low level wrapper function to call a driver for an ECC key generation with an ed25519 key.
psa_status_t psa_ecc_p192r1_verify_message(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *input, size_t input_length, const uint8_t *signature, size_t signature_length)
Low level wrapper function to call a driver for an ECC hash verification with a SECP 192 R1 key.
psa_status_t psa_generate_ecc_p192r1_key_pair(const psa_key_attributes_t *attributes, uint8_t *priv_key_buffer, uint8_t *pub_key_buffer, size_t *priv_key_buffer_length, size_t *pub_key_buffer_length)
Low level wrapper function to call a driver for an ECC key generation with a SECP 192 R1 key.
psa_status_t psa_ecc_p192r1_sign_hash(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *hash, size_t hash_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Low level wrapper function to call a driver for an ECC hash signature with a SECP 192 R1 key.
psa_status_t psa_ecc_ed25519_sign_message(const uint8_t *priv_key_buffer, size_t priv_key_buffer_size, const uint8_t *pub_key_buffer, size_t pub_key_buffer_size, const uint8_t *input, size_t input_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Low level wrapper function to call a driver for an ECC hash signature with an ed25519 key.
psa_status_t psa_ecc_p256r1_sign_hash(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *hash, size_t hash_length, uint8_t *signature, size_t signature_size, size_t *signature_length)
Low level wrapper function to call a driver for an ECC hash signature with a SECP 256 R1 key.
psa_status_t psa_ecc_p256r1_verify_hash(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length)
Low level wrapper function to call a driver for an ECC hash verification with a SECP 256 R1 key.
psa_status_t psa_ecc_ed25519_verify_message(const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *input, size_t input_length, const uint8_t *signature, size_t signature_length)
Low level wrapper function to call a driver for an ECC hash verification with a ed25519 key.
psa_status_t psa_ecc_p192r1_verify_hash(const psa_key_attributes_t *attributes, psa_algorithm_t alg, const uint8_t *key_buffer, size_t key_buffer_size, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length)
Low level wrapper function to call a driver for an ECC hash verification with a SECP 192 R1 key.
psa_status_t psa_derive_ecc_ed25519_public_key(const uint8_t *priv_key_buffer, uint8_t *pub_key_buffer, size_t priv_key_buffer_length, size_t *pub_key_buffer_length)
Low level wrapper function for deriving an ed25519 public key from the private key.
Common macros and compiler attributes/pragmas configuration.
int32_t psa_status_t
Status code type used for all PSA Certified APIs.
Definition: error.h:41
Structure storing key attributes.
Definition: attributes.h:52