Loading...
Searching...
No Matches
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
9#pragma once
10
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#include "psa/crypto.h"
27#include "kernel_defines.h"
28
35 uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
36 size_t *priv_key_buffer_length,
37 size_t *pub_key_buffer_length);
38
46 const uint8_t *key_buffer, size_t key_buffer_size,
47 const uint8_t *hash, size_t hash_length,
48 uint8_t *signature, size_t signature_size,
49 size_t *signature_length);
50
58 const uint8_t *key_buffer, size_t key_buffer_size,
59 const uint8_t *input, size_t input_length,
60 uint8_t *signature, size_t signature_size,
61 size_t *signature_length);
62
70 const uint8_t *key_buffer, size_t key_buffer_size,
71 const uint8_t *hash, size_t hash_length,
72 const uint8_t *signature, size_t signature_length);
73
81 const uint8_t *key_buffer, size_t key_buffer_size,
82 const uint8_t *input, size_t input_length,
83 const uint8_t *signature, size_t signature_length);
84
91 uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
92 size_t *priv_key_buffer_length,
93 size_t *pub_key_buffer_length);
94
98psa_status_t psa_derive_ecc_p256r1_public_key( const uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
99 size_t priv_key_buffer_length,
100 size_t *pub_key_buffer_length);
101
108 psa_algorithm_t alg,
109 const uint8_t *key_buffer, size_t key_buffer_size,
110 const uint8_t *hash, size_t hash_length,
111 uint8_t *signature, size_t signature_size,
112 size_t *signature_length);
113
120 psa_algorithm_t alg,
121 const uint8_t *key_buffer, size_t key_buffer_size,
122 const uint8_t *input, size_t input_length,
123 uint8_t *signature, size_t signature_size,
124 size_t *signature_length);
125
132 psa_algorithm_t alg,
133 const uint8_t *key_buffer, size_t key_buffer_size,
134 const uint8_t *hash, size_t hash_length,
135 const uint8_t *signature, size_t signature_length);
136
143 psa_algorithm_t alg,
144 const uint8_t *key_buffer, size_t key_buffer_size,
145 const uint8_t *input, size_t input_length,
146 const uint8_t *signature, size_t signature_length);
147
153psa_status_t psa_generate_ecc_ed25519_key_pair( uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
154 size_t *priv_key_buffer_length,
155 size_t *pub_key_buffer_length);
156
160psa_status_t psa_derive_ecc_ed25519_public_key( const uint8_t *priv_key_buffer,
161 uint8_t *pub_key_buffer,
162 size_t priv_key_buffer_length,
163 size_t *pub_key_buffer_length);
164
170psa_status_t psa_ecc_ed25519_sign_message(const uint8_t *priv_key_buffer,
171 size_t priv_key_buffer_size,
172 const uint8_t *pub_key_buffer,
173 size_t pub_key_buffer_size,
174 const uint8_t *input, size_t input_length,
175 uint8_t *signature, size_t signature_size,
176 size_t *signature_length);
177
183psa_status_t psa_ecc_ed25519_verify_message(const uint8_t *key_buffer, size_t key_buffer_size,
184 const uint8_t *input, size_t input_length,
185 const uint8_t *signature, size_t signature_length);
186
187#ifdef __cplusplus
188}
189#endif
190
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition algorithm.h:38
struct psa_key_attributes_s psa_key_attributes_t
The type of an object containing key attributes.
Definition attributes.h:160
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_derive_ecc_p256r1_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 to call a driver for deriving an P256R1 public key from the private 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:40