aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/openssl/compat.h
blob: 45f9a33dc31a85a0e70a5bee327e602a7d3361b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/* SPDX-License-Identifier: BSD-3-Clause
 * Copyright(c) 2018 Cavium Networks
 */

#ifndef __RTA_COMPAT_H__
#define __RTA_COMPAT_H__

#if (OPENSSL_VERSION_NUMBER < 0x10100000L)

#define set_rsa_params(rsa, p, q, ret) \
	do {rsa->p = p; rsa->q = q; ret = 0; } while (0)

#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \
	do { \
		rsa->dmp1 = dmp1; \
		rsa->dmq1 = dmq1; \
		rsa->iqmp = iqmp; \
		ret = 0; \
	} while (0)

#define set_rsa_keys(rsa, n, e, d, ret) \
	do { \
		rsa->n = n; rsa->e = e; rsa->d = d; ret = 0; \
	} while (0)

#define set_dh_params(dh, p, g, ret) \
	do { \
		dh->p = p; \
		dh->q = NULL; \
		dh->g = g; \
		ret = 0; \
	} while (0)

#define set_dh_priv_key(dh, priv_key, ret) \
	do { dh->priv_key = priv_key; ret = 0; } while (0)

#define set_dsa_params(dsa, p, q, g, ret) \
	do { dsa->p = p; dsa->q = q; dsa->g = g; ret = 0; } while (0)

#define get_dh_pub_key(dh, pub_key) \
	(pub_key = dh->pub_key)

#define get_dh_priv_key(dh, priv_key) \
	(priv_key = dh->priv_key)

#define set_dsa_sign(sign, r, s) \
	do { sign->r = r; sign->s = s; } while (0)

#define get_dsa_sign(sign, r, s) \
	do { r = sign->r; s = sign->s; } while (0)

#define set_dsa_keys(dsa, pub, priv, ret) \
	do { dsa->pub_key = pub; dsa->priv_key = priv; ret = 0; } while (0)

#define set_dsa_pub_key(dsa, pub_key) \
	(dsa->pub_key = pub_key)

#define get_dsa_priv_key(dsa, priv_key) \
	(priv_key = dsa->priv_key)

#else

#define set_rsa_params(rsa, p, q, ret) \
	(ret = !RSA_set0_factors(rsa, p, q))

#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \
	(ret = !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp))

/* n, e must be non-null, d can be NULL */
#define set_rsa_keys(rsa, n, e, d, ret) \
	(ret = !RSA_set0_key(rsa, n, e, d))

#define set_dh_params(dh, p, g, ret) \
	(ret = !DH_set0_pqg(dh, p, NULL, g))

#define set_dh_priv_key(dh, priv_key, ret) \
	(ret = !DH_set0_key(dh, NULL, priv_key))

#define get_dh_pub_key(dh, pub_key) \
	(DH_get0_key(dh_key, &pub_key, NULL))

#define get_dh_priv_key(dh, priv_key) \
	(DH_get0_key(dh_key, NULL, &priv_key))

#define set_dsa_params(dsa, p, q, g, ret) \
	(ret = !DSA_set0_pqg(dsa, p, q, g))

#define set_dsa_priv_key(dsa, priv_key) \
	(DSA_set0_key(dsa, NULL, priv_key))

#define set_dsa_sign(sign, r, s) \
	(DSA_SIG_set0(sign, r, s))

#define get_dsa_sign(sign, r, s) \
	(DSA_SIG_get0(sign, &r, &s))

#define set_dsa_keys(dsa, pub, priv, ret) \
	(ret = !DSA_set0_key(dsa, pub, priv))

#define set_dsa_pub_key(dsa, pub_key) \
	(DSA_set0_key(dsa, pub_key, NULL))

#define get_dsa_priv_key(dsa, priv_key) \
	(DSA_get0_key(dsa, NULL, &priv_key))

#endif /* version < 10100000 */

#endif /* __RTA_COMPAT_H__ */