]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/openssl-util.h
Merge pull request #20894 from andir/editorconfig
[thirdparty/systemd.git] / src / shared / openssl-util.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #include "macro.h"
5
6 #if HAVE_OPENSSL
7 # include <openssl/bio.h>
8 # include <openssl/evp.h>
9 # include <openssl/pkcs7.h>
10 # include <openssl/ssl.h>
11 # include <openssl/x509v3.h>
12
13 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(X509*, X509_free, NULL);
14 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(X509_NAME*, X509_NAME_free, NULL);
15 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_PKEY_CTX*, EVP_PKEY_CTX_free, NULL);
16 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_CIPHER_CTX*, EVP_CIPHER_CTX_free, NULL);
17 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(PKCS7*, PKCS7_free, NULL);
18 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SSL*, SSL_free, NULL);
19 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(BIO*, BIO_free, NULL);
20 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_MD_CTX*, EVP_MD_CTX_free, NULL);
21
22 static inline void sk_X509_free_allp(STACK_OF(X509) **sk) {
23 if (!sk || !*sk)
24 return;
25
26 sk_X509_pop_free(*sk, X509_free);
27 }
28
29 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);
30
31 int rsa_pkey_to_suitable_key_size(EVP_PKEY *pkey, size_t *ret_suitable_key_size);
32
33 #endif