Loading...
Searching...
No Matches
psa_ecc.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021 HAW Hamburg
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#include "psa/crypto.h"
24#include "kernel_defines.h"
25
32 uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
33 size_t *priv_key_buffer_length,
34 size_t *pub_key_buffer_length);
35
43 const uint8_t *key_buffer, size_t key_buffer_size,
44 const uint8_t *hash, size_t hash_length,
45 uint8_t *signature, size_t signature_size,
46 size_t *signature_length);
47
55 const uint8_t *key_buffer, size_t key_buffer_size,
56 const uint8_t *input, size_t input_length,
57 uint8_t *signature, size_t signature_size,
58 size_t *signature_length);
59
67 const uint8_t *key_buffer, size_t key_buffer_size,
68 const uint8_t *hash, size_t hash_length,
69 const uint8_t *signature, size_t signature_length);
70
78 const uint8_t *key_buffer, size_t key_buffer_size,
79 const uint8_t *input, size_t input_length,
80 const uint8_t *signature, size_t signature_length);
81
88 uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
89 size_t *priv_key_buffer_length,
90 size_t *pub_key_buffer_length);
91
95psa_status_t psa_derive_ecc_p256r1_public_key( const uint8_t *priv_key_buffer, uint8_t *pub_key_buffer,
96 size_t priv_key_buffer_length,
97 size_t *pub_key_buffer_length);
98
105 psa_algorithm_t alg,
106 const uint8_t *key_buffer, size_t key_buffer_size,
107 const uint8_t *hash, size_t hash_length,
108 uint8_t *signature, size_t signature_size,
109 size_t *signature_length);
110
117 psa_algorithm_t alg,
118 const uint8_t *key_buffer, size_t key_buffer_size,
119 const uint8_t *input, size_t input_length,
120 uint8_t *signature, size_t signature_size,
121 size_t *signature_length);
122
129 psa_algorithm_t alg,
130 const uint8_t *key_buffer, size_t key_buffer_size,
131 const uint8_t *hash, size_t hash_length,
132 const uint8_t *signature, size_t signature_length);
133
140 psa_algorithm_t alg,
141 const uint8_t *key_buffer, size_t key_buffer_size,
142 const uint8_t *input, size_t input_length,
143 const uint8_t *signature, size_t signature_length);
144
153 uint8_t *pub_key_buffer);
154
161psa_status_t psa_derive_ecc_ed25519_public_key( const uint8_t *priv_key_buffer,
162 uint8_t *pub_key_buffer);
163
174psa_status_t psa_ecc_ed25519_sign_message(const uint8_t *priv_key_buffer,
175 const uint8_t *pub_key_buffer,
176 const uint8_t *input, size_t input_length,
177 uint8_t *signature);
178
188psa_status_t psa_ecc_ed25519_verify_message(const uint8_t *pub_key_buffer,
189 const uint8_t *input, size_t input_length,
190 const uint8_t *signature);
191
192#ifdef __cplusplus
193}
194#endif
195
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
Definition algorithm.h:35
struct psa_key_attributes_s psa_key_attributes_t
The type of an object containing key attributes.
Definition attributes.h:157
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_ed25519_verify_message(const uint8_t *pub_key_buffer, const uint8_t *input, size_t input_length, const uint8_t *signature)
Low level wrapper function to call a driver for an ECC hash verification with a ed25519 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_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_derive_ecc_ed25519_public_key(const uint8_t *priv_key_buffer, uint8_t *pub_key_buffer)
Low level wrapper function for deriving an ed25519 public key from the private 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_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_generate_ecc_ed25519_key_pair(uint8_t *priv_key_buffer, uint8_t *pub_key_buffer)
Low level wrapper function to call a driver for an ECC key generation with an ed25519 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_sign_message(const uint8_t *priv_key_buffer, const uint8_t *pub_key_buffer, const uint8_t *input, size_t input_length, uint8_t *signature)
Low level wrapper function to call a driver for an ECC hash signature with an 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.
Common macros and compiler attributes/pragmas configuration.
int32_t psa_status_t
Status code type used for all PSA Certified APIs.
Definition error.h:37