]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
3f637019 LP |
2 | #pragma once |
3 | ||
f2d5df8a LP |
4 | #include "macro.h" |
5 | ||
b012a1f4 | 6 | #if HAVE_OPENSSL |
c2fa92e7 | 7 | # include <openssl/bio.h> |
57633d23 ZJS |
8 | # include <openssl/bn.h> |
9 | # include <openssl/err.h> | |
4ef65db3 | 10 | # include <openssl/evp.h> |
c2fa92e7 LP |
11 | # include <openssl/pkcs7.h> |
12 | # include <openssl/ssl.h> | |
13 | # include <openssl/x509v3.h> | |
3f637019 | 14 | |
fd421c4a ZJS |
15 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(X509*, X509_free, NULL); |
16 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(X509_NAME*, X509_NAME_free, NULL); | |
17 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_PKEY_CTX*, EVP_PKEY_CTX_free, NULL); | |
57633d23 | 18 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_PKEY*, EVP_PKEY_free, NULL); |
fd421c4a | 19 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_CIPHER_CTX*, EVP_CIPHER_CTX_free, NULL); |
57633d23 ZJS |
20 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(RSA*, RSA_free, NULL); |
21 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EC_KEY*, EC_KEY_free, NULL); | |
22 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EC_POINT*, EC_POINT_free, NULL); | |
23 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EC_GROUP*, EC_GROUP_free, NULL); | |
24 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(BIGNUM*, BN_free, NULL); | |
25 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(BN_CTX*, BN_CTX_free, NULL); | |
26 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(ECDSA_SIG*, ECDSA_SIG_free, NULL); | |
c2fa92e7 LP |
27 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(PKCS7*, PKCS7_free, NULL); |
28 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SSL*, SSL_free, NULL); | |
29 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(BIO*, BIO_free, NULL); | |
18f568b8 | 30 | DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_MD_CTX*, EVP_MD_CTX_free, NULL); |
c2fa92e7 LP |
31 | |
32 | static inline void sk_X509_free_allp(STACK_OF(X509) **sk) { | |
33 | if (!sk || !*sk) | |
34 | return; | |
35 | ||
36 | sk_X509_pop_free(*sk, X509_free); | |
37 | } | |
b012a1f4 | 38 | |
f2d5df8a LP |
39 | int rsa_encrypt_bytes(EVP_PKEY *pkey, const void *decrypted_key, size_t decrypted_key_size, void **ret_encrypt_key, size_t *ret_encrypt_key_size); |
40 | ||
d041e4fc | 41 | int rsa_pkey_to_suitable_key_size(EVP_PKEY *pkey, size_t *ret_suitable_key_size); |
57633d23 ZJS |
42 | #endif |
43 | ||
44 | #if PREFER_OPENSSL | |
45 | /* The openssl definition */ | |
46 | typedef const EVP_MD* hash_md_t; | |
47 | typedef const EVP_MD* hash_algorithm_t; | |
48 | typedef int elliptic_curve_t; | |
49 | typedef EVP_MD_CTX* hash_context_t; | |
50 | # define OPENSSL_OR_GCRYPT(a, b) (a) | |
51 | ||
52 | #elif HAVE_GCRYPT | |
53 | ||
54 | # include <gcrypt.h> | |
d041e4fc | 55 | |
57633d23 ZJS |
56 | /* The gcrypt definition */ |
57 | typedef int hash_md_t; | |
58 | typedef const char* hash_algorithm_t; | |
59 | typedef const char* elliptic_curve_t; | |
60 | typedef gcry_md_hd_t hash_context_t; | |
61 | # define OPENSSL_OR_GCRYPT(a, b) (b) | |
b012a1f4 | 62 | #endif |