kore

An easy to use, scalable and secure web application framework for writing web APIs in C.
Commits | Files | Refs | README | LICENSE | git clone https://git.kore.io/kore.git

commit 06803e25925486ecef35bab09d091d68b38b2720
parent 93bf18be81aa9e2a0353416b63b276d74ffdc49c
Author: Joris Vink <joris@coders.se>
Date:   Mon,  6 Dec 2021 21:21:21 +0100

Get kore to at least build with openssl 3

Diffstat:
include/kore/kore.h | 5+++++
src/cli.c | 6++++++
src/keymgr.c | 10++++++++++
3 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/include/kore/kore.h b/include/kore/kore.h @@ -79,6 +79,11 @@ extern int daemon(int, int); #endif #endif +/* Ignore deprecation warnings for OpenSSL 3 for now. */ +#if defined(OPENSSL_VERSION_MAJOR) +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + #if defined(__OpenBSD__) #define KORE_USE_PLATFORM_PLEDGE 1 #endif diff --git a/src/cli.c b/src/cli.c @@ -26,6 +26,12 @@ #include <openssl/err.h> #include <openssl/pem.h> #include <openssl/x509v3.h> + +/* Ignore deprecation warnings for OpenSSL 3 for now. */ +#if defined(OPENSSL_VERSION_MAJOR) +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + #endif #include <ctype.h> diff --git a/src/keymgr.c b/src/keymgr.c @@ -689,7 +689,12 @@ keymgr_rsa_encrypt(struct kore_msg *msg, const void *data, struct key *key) u_int8_t buf[1024]; req = (const struct kore_keyreq *)data; + +#if defined(OPENSSL_VERSION_MAJOR) + rsa = EVP_PKEY_get0(key->pkey); +#else rsa = EVP_PKEY_get0_RSA(key->pkey); +#endif keylen = RSA_size(rsa); if (req->data_len > keylen || keylen > sizeof(buf)) @@ -713,7 +718,12 @@ keymgr_ecdsa_sign(struct kore_msg *msg, const void *data, struct key *key) u_int8_t sig[1024]; req = (const struct kore_keyreq *)data; + +#if defined(OPENSSL_VERSION_MAJOR) + ec = EVP_PKEY_get0(key->pkey); +#else ec = EVP_PKEY_get0_EC_KEY(key->pkey); +#endif len = ECDSA_size(ec); if (req->data_len > len || len > sizeof(sig))