xref: /openbmc/linux/include/crypto/ecdh.h (revision bc5aa3a0)
1 /*
2  * ECDH params to be used with kpp API
3  *
4  * Copyright (c) 2016, Intel Corporation
5  * Authors: Salvatore Benedetto <salvatore.benedetto@intel.com>
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  */
13 #ifndef _CRYPTO_ECDH_
14 #define _CRYPTO_ECDH_
15 
16 /* Curves IDs */
17 #define ECC_CURVE_NIST_P192	0x0001
18 #define ECC_CURVE_NIST_P256	0x0002
19 
20 struct ecdh {
21 	unsigned short curve_id;
22 	char *key;
23 	unsigned short key_size;
24 };
25 
26 int crypto_ecdh_key_len(const struct ecdh *params);
27 int crypto_ecdh_encode_key(char *buf, unsigned int len, const struct ecdh *p);
28 int crypto_ecdh_decode_key(const char *buf, unsigned int len, struct ecdh *p);
29 
30 #endif
31