1 | /* |
2 | * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. |
3 | * |
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use |
5 | * this file except in compliance with the License. You can obtain a copy |
6 | * in the file LICENSE in the source distribution or at |
7 | * https://www.openssl.org/source/license.html |
8 | */ |
9 | #ifndef OSSL_CRYPTO_EC_CURVE448_LOCAL_H |
10 | # define OSSL_CRYPTO_EC_CURVE448_LOCAL_H |
11 | # include "curve448utils.h" |
12 | |
13 | int X448(uint8_t out_shared_key[56], const uint8_t private_key[56], |
14 | const uint8_t peer_public_value[56]); |
15 | |
16 | void X448_public_from_private(uint8_t out_public_value[56], |
17 | const uint8_t private_key[56]); |
18 | |
19 | int ED448_sign(OPENSSL_CTX *ctx, uint8_t *out_sig, const uint8_t *message, |
20 | size_t message_len, const uint8_t public_key[57], |
21 | const uint8_t private_key[57], const uint8_t *context, |
22 | size_t context_len); |
23 | |
24 | int ED448_verify(OPENSSL_CTX *ctx, const uint8_t *message, size_t message_len, |
25 | const uint8_t signature[114], const uint8_t public_key[57], |
26 | const uint8_t *context, size_t context_len); |
27 | |
28 | int ED448ph_sign(OPENSSL_CTX *ctx, uint8_t *out_sig, const uint8_t hash[64], |
29 | const uint8_t public_key[57], const uint8_t private_key[57], |
30 | const uint8_t *context, size_t context_len); |
31 | |
32 | int ED448ph_verify(OPENSSL_CTX *ctx, const uint8_t hash[64], |
33 | const uint8_t signature[114], const uint8_t public_key[57], |
34 | const uint8_t *context, size_t context_len); |
35 | |
36 | int ED448_public_from_private(OPENSSL_CTX *ctx, uint8_t out_public_key[57], |
37 | const uint8_t private_key[57]); |
38 | |
39 | #endif /* OSSL_CRYPTO_EC_CURVE448_LOCAL_H */ |
40 | |