From: tb Date: Sun, 13 Nov 2022 14:04:13 +0000 (+0000) Subject: Expose various EVP hooks for Ed25519 and X25519 X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=774343c06c9ba2e603f2461ccaf9e19e7b4209b4;p=openbsd Expose various EVP hooks for Ed25519 and X25519 This adds the EVP_PKEY_ED25519 and EVP_PKEY_X25519 aliases for the NIDs and exposes the raw public key API. The ED25519_KEYLEN and X25519_KEYLEN defines are still kept internal for now to match what OpenSSL have. We may want to expose those later. --- diff --git a/lib/libcrypto/evp/evp.h b/lib/libcrypto/evp/evp.h index f8bab26b3f9..4cb4dac5ad1 100644 --- a/lib/libcrypto/evp/evp.h +++ b/lib/libcrypto/evp/evp.h @@ -1,4 +1,4 @@ -/* $OpenBSD: evp.h,v 1.111 2022/11/10 16:37:52 jsing Exp $ */ +/* $OpenBSD: evp.h,v 1.112 2022/11/13 14:04:13 tb Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -115,10 +115,8 @@ #define EVP_PKEY_HKDF NID_hkdf #define EVP_PKEY_GOSTR12_256 NID_id_tc26_gost3410_2012_256 #define EVP_PKEY_GOSTR12_512 NID_id_tc26_gost3410_2012_512 -#if defined(LIBRESSL_NEXT_API) || defined(LIBRESSL_INTERNAL) #define EVP_PKEY_ED25519 NID_ED25519 #define EVP_PKEY_X25519 NID_X25519 -#endif #ifdef __cplusplus extern "C" { @@ -301,7 +299,8 @@ extern "C" { /* Length of tag for TLS */ #define EVP_CHACHAPOLY_TLS_TAG_LEN 16 -#if defined(LIBRESSL_NEXT_API) || defined(LIBRESSL_INTERNAL) +/* XXX - do we want to expose these? */ +#if defined(LIBRESSL_INTERNAL) #define ED25519_KEYLEN 32 #define X25519_KEYLEN 32 #endif @@ -408,7 +407,6 @@ unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); #define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE) -#if defined(LIBRESSL_NEXT_API) || defined(LIBRESSL_INTERNAL) EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *engine, const unsigned char *private_key, size_t len); EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *engine, @@ -417,7 +415,6 @@ int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *out_private_key, size_t *out_len); int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *out_public_key, size_t *out_len); -#endif #define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) #define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80)