aboutsummaryrefslogtreecommitdiff
path: root/crypto/openssl/providers/implementations/encode_decode
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssl/providers/implementations/encode_decode')
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_der2key.c1011
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_epki2pki.c34
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_msblob2key.c121
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_pem2der.c51
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_pvk2key.c124
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/decode_spki2typespki.c44
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/encode_key2any.c719
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/encode_key2blob.c110
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/encode_key2ms.c69
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/encode_key2text.c199
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/endecoder_common.c9
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/endecoder_local.h10
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.c13
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.h66
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.c376
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.h45
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.c271
-rw-r--r--crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.h45
18 files changed, 1839 insertions, 1478 deletions
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_der2key.c b/crypto/openssl/providers/implementations/encode_decode/decode_der2key.c
index a3f0d0897dae..91313df64c73 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_der2key.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_der2key.c
@@ -20,13 +20,13 @@
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/params.h>
-#include <openssl/pem.h> /* PEM_BUFSIZE and public PEM functions */
+#include <openssl/pem.h> /* PEM_BUFSIZE and public PEM functions */
#include <openssl/pkcs12.h>
#include <openssl/provider.h>
#include <openssl/x509.h>
#include <openssl/proverr.h>
#include <openssl/asn1t.h>
-#include "internal/cryptlib.h" /* ossl_assert() */
+#include "internal/cryptlib.h" /* ossl_assert() */
#include "crypto/dh.h"
#include "crypto/dsa.h"
#include "crypto/ec.h"
@@ -65,14 +65,14 @@ ASN1_SEQUENCE(BARE_PUBKEY) = {
} static_ASN1_SEQUENCE_END(BARE_PUBKEY)
#endif /* OPENSSL_NO_SLH_DSA */
-struct der2key_ctx_st; /* Forward declaration */
+struct der2key_ctx_st; /* Forward declaration */
typedef int check_key_fn(void *, struct der2key_ctx_st *ctx);
typedef void adjust_key_fn(void *, struct der2key_ctx_st *ctx);
typedef void free_key_fn(void *);
typedef void *d2i_PKCS8_fn(const unsigned char **, long,
- struct der2key_ctx_st *);
+ struct der2key_ctx_st *);
typedef void *d2i_PUBKEY_fn(const unsigned char **, long,
- struct der2key_ctx_st *);
+ struct der2key_ctx_st *);
struct keytype_desc_st {
const char *keytype_name;
const OSSL_DISPATCH *fns; /* Keymgmt (to pilfer functions from) */
@@ -93,10 +93,10 @@ struct keytype_desc_st {
/* For type specific decoders, we use the corresponding d2i */
d2i_of_void *d2i_private_key; /* From type-specific DER */
- d2i_of_void *d2i_public_key; /* From type-specific DER */
- d2i_of_void *d2i_key_params; /* From type-specific DER */
- d2i_PKCS8_fn *d2i_PKCS8; /* Wrapped in a PrivateKeyInfo */
- d2i_PUBKEY_fn *d2i_PUBKEY; /* Wrapped in a SubjectPublicKeyInfo */
+ d2i_of_void *d2i_public_key; /* From type-specific DER */
+ d2i_of_void *d2i_key_params; /* From type-specific DER */
+ d2i_PKCS8_fn *d2i_PKCS8; /* Wrapped in a PrivateKeyInfo */
+ d2i_PUBKEY_fn *d2i_PUBKEY; /* Wrapped in a SubjectPublicKeyInfo */
/*
* For any key, we may need to check that the key meets expectations.
@@ -128,10 +128,10 @@ struct der2key_ctx_st {
};
typedef void *key_from_pkcs8_t(const PKCS8_PRIV_KEY_INFO *p8inf,
- OSSL_LIB_CTX *libctx, const char *propq);
+ OSSL_LIB_CTX *libctx, const char *propq);
static void *der2key_decode_p8(const unsigned char **input_der,
- long input_der_len, struct der2key_ctx_st *ctx,
- key_from_pkcs8_t *key_from_pkcs8)
+ long input_der_len, struct der2key_ctx_st *ctx,
+ key_from_pkcs8_t *key_from_pkcs8)
{
PKCS8_PRIV_KEY_INFO *p8inf = NULL;
const X509_ALGOR *alg = NULL;
@@ -199,7 +199,7 @@ static void der2key_freectx(void *vctx)
}
static int der2key_check_selection(int selection,
- const struct keytype_desc_st *desc)
+ const struct keytype_desc_st *desc)
{
/*
* The selections are kinda sorta "levels", i.e. each selection given
@@ -233,8 +233,8 @@ static int der2key_check_selection(int selection,
}
static int der2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct der2key_ctx_st *ctx = vctx;
unsigned char *der = NULL;
@@ -324,7 +324,7 @@ static int der2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
if (key != NULL && ctx->desc->adjust_key != NULL)
ctx->desc->adjust_key(key, ctx);
- next:
+next:
/*
* Indicated that we successfully decoded something, or not at all.
* Ending up "empty handed" is not an error.
@@ -343,31 +343,27 @@ static int der2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
OSSL_PARAM params[4];
int object_type = OSSL_OBJECT_PKEY;
- params[0] =
- OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
+ params[0] = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
#ifndef OPENSSL_NO_SM2
if (strcmp(ctx->desc->keytype_name, "EC") == 0
&& (EC_KEY_get_flags(key) & EC_FLAG_SM2_RANGE) != 0)
- params[1] =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- "SM2", 0);
+ params[1] = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ "SM2", 0);
else
#endif
- params[1] =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- (char *)ctx->desc->keytype_name,
- 0);
+ params[1] = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ (char *)ctx->desc->keytype_name,
+ 0);
/* The address of the key becomes the octet string */
- params[2] =
- OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
- &key, sizeof(key));
+ params[2] = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
+ &key, sizeof(key));
params[3] = OSSL_PARAM_construct_end();
ok = data_cb(params, data_cbarg);
}
- end:
+end:
ctx->desc->free_key(key);
OPENSSL_free(der);
@@ -375,12 +371,11 @@ static int der2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
}
static int der2key_export_object(void *vctx,
- const void *reference, size_t reference_sz,
- OSSL_CALLBACK *export_cb, void *export_cbarg)
+ const void *reference, size_t reference_sz,
+ OSSL_CALLBACK *export_cb, void *export_cbarg)
{
struct der2key_ctx_st *ctx = vctx;
- OSSL_FUNC_keymgmt_export_fn *export =
- ossl_prov_get_keymgmt_export(ctx->desc->fns);
+ OSSL_FUNC_keymgmt_export_fn *export = ossl_prov_get_keymgmt_export(ctx->desc->fns);
void *keydata;
if (reference_sz == sizeof(keydata) && export != NULL) {
@@ -399,7 +394,7 @@ static int der2key_export_object(void *vctx,
#define D2I_PUBKEY_NOCTX(n, f) \
static void * \
n##_d2i_PUBKEY(const unsigned char **der, long der_len, \
- ossl_unused struct der2key_ctx_st *ctx) \
+ ossl_unused struct der2key_ctx_st *ctx) \
{ \
return f(NULL, der, der_len); \
}
@@ -407,18 +402,18 @@ static int der2key_export_object(void *vctx,
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_DH
-# define dh_evp_type EVP_PKEY_DH
-# define dh_d2i_private_key NULL
-# define dh_d2i_public_key NULL
-# define dh_d2i_key_params (d2i_of_void *)d2i_DHparams
-# define dh_free (free_key_fn *)DH_free
-# define dh_check NULL
+#define dh_evp_type EVP_PKEY_DH
+#define dh_d2i_private_key NULL
+#define dh_d2i_public_key NULL
+#define dh_d2i_key_params (d2i_of_void *)d2i_DHparams
+#define dh_free (free_key_fn *)DH_free
+#define dh_check NULL
static void *dh_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_dh_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_dh_key_from_pkcs8);
}
D2I_PUBKEY_NOCTX(dh, ossl_d2i_DH_PUBKEY)
@@ -429,31 +424,31 @@ static void dh_adjust(void *key, struct der2key_ctx_st *ctx)
ossl_dh_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-# define dhx_evp_type EVP_PKEY_DHX
-# define dhx_d2i_private_key NULL
-# define dhx_d2i_public_key NULL
-# define dhx_d2i_key_params (d2i_of_void *)d2i_DHxparams
-# define dhx_d2i_PKCS8 dh_d2i_PKCS8
-# define dhx_free (free_key_fn *)DH_free
-# define dhx_check NULL
-# define dhx_adjust dh_adjust
+#define dhx_evp_type EVP_PKEY_DHX
+#define dhx_d2i_private_key NULL
+#define dhx_d2i_public_key NULL
+#define dhx_d2i_key_params (d2i_of_void *)d2i_DHxparams
+#define dhx_d2i_PKCS8 dh_d2i_PKCS8
+#define dhx_free (free_key_fn *)DH_free
+#define dhx_check NULL
+#define dhx_adjust dh_adjust
#endif
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_DSA
-# define dsa_evp_type EVP_PKEY_DSA
-# define dsa_d2i_private_key (d2i_of_void *)d2i_DSAPrivateKey
-# define dsa_d2i_public_key (d2i_of_void *)d2i_DSAPublicKey
-# define dsa_d2i_key_params (d2i_of_void *)d2i_DSAparams
-# define dsa_free (free_key_fn *)DSA_free
-# define dsa_check NULL
+#define dsa_evp_type EVP_PKEY_DSA
+#define dsa_d2i_private_key (d2i_of_void *)d2i_DSAPrivateKey
+#define dsa_d2i_public_key (d2i_of_void *)d2i_DSAPublicKey
+#define dsa_d2i_key_params (d2i_of_void *)d2i_DSAparams
+#define dsa_free (free_key_fn *)DSA_free
+#define dsa_check NULL
static void *dsa_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_dsa_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_dsa_key_from_pkcs8);
}
D2I_PUBKEY_NOCTX(dsa, ossl_d2i_DSA_PUBKEY)
@@ -467,17 +462,17 @@ static void dsa_adjust(void *key, struct der2key_ctx_st *ctx)
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_EC
-# define ec_evp_type EVP_PKEY_EC
-# define ec_d2i_private_key (d2i_of_void *)d2i_ECPrivateKey
-# define ec_d2i_public_key NULL
-# define ec_d2i_key_params (d2i_of_void *)d2i_ECParameters
-# define ec_free (free_key_fn *)EC_KEY_free
+#define ec_evp_type EVP_PKEY_EC
+#define ec_d2i_private_key (d2i_of_void *)d2i_ECPrivateKey
+#define ec_d2i_public_key NULL
+#define ec_d2i_key_params (d2i_of_void *)d2i_ECParameters
+#define ec_free (free_key_fn *)EC_KEY_free
static void *ec_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_ec_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_ec_key_from_pkcs8);
}
D2I_PUBKEY_NOCTX(ec, d2i_EC_PUBKEY)
@@ -502,17 +497,17 @@ static void ec_adjust(void *key, struct der2key_ctx_st *ctx)
ossl_ec_key_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-# ifndef OPENSSL_NO_ECX
+#ifndef OPENSSL_NO_ECX
/*
* ED25519, ED448, X25519, X448 only implement PKCS#8 and SubjectPublicKeyInfo,
* so no d2i functions to be had.
*/
static void *ecx_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_ecx_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_ecx_key_from_pkcs8);
}
D2I_PUBKEY_NOCTX(ed25519, ossl_d2i_ED25519_PUBKEY)
@@ -525,60 +520,60 @@ static void ecx_key_adjust(void *key, struct der2key_ctx_st *ctx)
ossl_ecx_key_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-# define ed25519_evp_type EVP_PKEY_ED25519
-# define ed25519_d2i_private_key NULL
-# define ed25519_d2i_public_key NULL
-# define ed25519_d2i_key_params NULL
-# define ed25519_d2i_PKCS8 ecx_d2i_PKCS8
-# define ed25519_free (free_key_fn *)ossl_ecx_key_free
-# define ed25519_check NULL
-# define ed25519_adjust ecx_key_adjust
-
-# define ed448_evp_type EVP_PKEY_ED448
-# define ed448_d2i_private_key NULL
-# define ed448_d2i_public_key NULL
-# define ed448_d2i_key_params NULL
-# define ed448_d2i_PKCS8 ecx_d2i_PKCS8
-# define ed448_free (free_key_fn *)ossl_ecx_key_free
-# define ed448_check NULL
-# define ed448_adjust ecx_key_adjust
-
-# define x25519_evp_type EVP_PKEY_X25519
-# define x25519_d2i_private_key NULL
-# define x25519_d2i_public_key NULL
-# define x25519_d2i_key_params NULL
-# define x25519_d2i_PKCS8 ecx_d2i_PKCS8
-# define x25519_free (free_key_fn *)ossl_ecx_key_free
-# define x25519_check NULL
-# define x25519_adjust ecx_key_adjust
-
-# define x448_evp_type EVP_PKEY_X448
-# define x448_d2i_private_key NULL
-# define x448_d2i_public_key NULL
-# define x448_d2i_key_params NULL
-# define x448_d2i_PKCS8 ecx_d2i_PKCS8
-# define x448_free (free_key_fn *)ossl_ecx_key_free
-# define x448_check NULL
-# define x448_adjust ecx_key_adjust
-# endif /* OPENSSL_NO_ECX */
-
-# ifndef OPENSSL_NO_SM2
-# define sm2_evp_type EVP_PKEY_SM2
-# define sm2_d2i_private_key (d2i_of_void *)d2i_ECPrivateKey
-# define sm2_d2i_public_key NULL
-# define sm2_d2i_key_params (d2i_of_void *)d2i_ECParameters
-# define sm2_d2i_PUBKEY ec_d2i_PUBKEY
-# define sm2_free (free_key_fn *)EC_KEY_free
-# define sm2_check ec_check
-# define sm2_adjust ec_adjust
+#define ed25519_evp_type EVP_PKEY_ED25519
+#define ed25519_d2i_private_key NULL
+#define ed25519_d2i_public_key NULL
+#define ed25519_d2i_key_params NULL
+#define ed25519_d2i_PKCS8 ecx_d2i_PKCS8
+#define ed25519_free (free_key_fn *)ossl_ecx_key_free
+#define ed25519_check NULL
+#define ed25519_adjust ecx_key_adjust
+
+#define ed448_evp_type EVP_PKEY_ED448
+#define ed448_d2i_private_key NULL
+#define ed448_d2i_public_key NULL
+#define ed448_d2i_key_params NULL
+#define ed448_d2i_PKCS8 ecx_d2i_PKCS8
+#define ed448_free (free_key_fn *)ossl_ecx_key_free
+#define ed448_check NULL
+#define ed448_adjust ecx_key_adjust
+
+#define x25519_evp_type EVP_PKEY_X25519
+#define x25519_d2i_private_key NULL
+#define x25519_d2i_public_key NULL
+#define x25519_d2i_key_params NULL
+#define x25519_d2i_PKCS8 ecx_d2i_PKCS8
+#define x25519_free (free_key_fn *)ossl_ecx_key_free
+#define x25519_check NULL
+#define x25519_adjust ecx_key_adjust
+
+#define x448_evp_type EVP_PKEY_X448
+#define x448_d2i_private_key NULL
+#define x448_d2i_public_key NULL
+#define x448_d2i_key_params NULL
+#define x448_d2i_PKCS8 ecx_d2i_PKCS8
+#define x448_free (free_key_fn *)ossl_ecx_key_free
+#define x448_check NULL
+#define x448_adjust ecx_key_adjust
+#endif /* OPENSSL_NO_ECX */
+
+#ifndef OPENSSL_NO_SM2
+#define sm2_evp_type EVP_PKEY_SM2
+#define sm2_d2i_private_key (d2i_of_void *)d2i_ECPrivateKey
+#define sm2_d2i_public_key NULL
+#define sm2_d2i_key_params (d2i_of_void *)d2i_ECParameters
+#define sm2_d2i_PUBKEY ec_d2i_PUBKEY
+#define sm2_free (free_key_fn *)EC_KEY_free
+#define sm2_check ec_check
+#define sm2_adjust ec_adjust
static void *sm2_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_ec_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_ec_key_from_pkcs8);
}
-# endif
+#endif
#endif
@@ -591,7 +586,7 @@ ml_kem_d2i_PKCS8(const uint8_t **der, long der_len, struct der2key_ctx_st *ctx)
ML_KEM_KEY *key;
key = ossl_ml_kem_d2i_PKCS8(*der, der_len, ctx->desc->evp_type,
- ctx->provctx, ctx->propq);
+ ctx->provctx, ctx->propq);
if (key != NULL)
*der += der_len;
return key;
@@ -599,46 +594,46 @@ ml_kem_d2i_PKCS8(const uint8_t **der, long der_len, struct der2key_ctx_st *ctx)
static ossl_inline void *
ml_kem_d2i_PUBKEY(const uint8_t **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
ML_KEM_KEY *key;
key = ossl_ml_kem_d2i_PUBKEY(*der, der_len, ctx->desc->evp_type,
- ctx->provctx, ctx->propq);
+ ctx->provctx, ctx->propq);
if (key != NULL)
*der += der_len;
return key;
}
-# define ml_kem_512_evp_type EVP_PKEY_ML_KEM_512
-# define ml_kem_512_d2i_private_key NULL
-# define ml_kem_512_d2i_public_key NULL
-# define ml_kem_512_d2i_key_params NULL
-# define ml_kem_512_d2i_PUBKEY ml_kem_d2i_PUBKEY
-# define ml_kem_512_d2i_PKCS8 ml_kem_d2i_PKCS8
-# define ml_kem_512_free (free_key_fn *)ossl_ml_kem_key_free
-# define ml_kem_512_check NULL
-# define ml_kem_512_adjust NULL
-
-# define ml_kem_768_evp_type EVP_PKEY_ML_KEM_768
-# define ml_kem_768_d2i_private_key NULL
-# define ml_kem_768_d2i_public_key NULL
-# define ml_kem_768_d2i_key_params NULL
-# define ml_kem_768_d2i_PUBKEY ml_kem_d2i_PUBKEY
-# define ml_kem_768_d2i_PKCS8 ml_kem_d2i_PKCS8
-# define ml_kem_768_free (free_key_fn *)ossl_ml_kem_key_free
-# define ml_kem_768_check NULL
-# define ml_kem_768_adjust NULL
-
-# define ml_kem_1024_evp_type EVP_PKEY_ML_KEM_1024
-# define ml_kem_1024_d2i_private_key NULL
-# define ml_kem_1024_d2i_public_key NULL
-# define ml_kem_1024_d2i_PUBKEY ml_kem_d2i_PUBKEY
-# define ml_kem_1024_d2i_PKCS8 ml_kem_d2i_PKCS8
-# define ml_kem_1024_d2i_key_params NULL
-# define ml_kem_1024_free (free_key_fn *)ossl_ml_kem_key_free
-# define ml_kem_1024_check NULL
-# define ml_kem_1024_adjust NULL
+#define ml_kem_512_evp_type EVP_PKEY_ML_KEM_512
+#define ml_kem_512_d2i_private_key NULL
+#define ml_kem_512_d2i_public_key NULL
+#define ml_kem_512_d2i_key_params NULL
+#define ml_kem_512_d2i_PUBKEY ml_kem_d2i_PUBKEY
+#define ml_kem_512_d2i_PKCS8 ml_kem_d2i_PKCS8
+#define ml_kem_512_free (free_key_fn *)ossl_ml_kem_key_free
+#define ml_kem_512_check NULL
+#define ml_kem_512_adjust NULL
+
+#define ml_kem_768_evp_type EVP_PKEY_ML_KEM_768
+#define ml_kem_768_d2i_private_key NULL
+#define ml_kem_768_d2i_public_key NULL
+#define ml_kem_768_d2i_key_params NULL
+#define ml_kem_768_d2i_PUBKEY ml_kem_d2i_PUBKEY
+#define ml_kem_768_d2i_PKCS8 ml_kem_d2i_PKCS8
+#define ml_kem_768_free (free_key_fn *)ossl_ml_kem_key_free
+#define ml_kem_768_check NULL
+#define ml_kem_768_adjust NULL
+
+#define ml_kem_1024_evp_type EVP_PKEY_ML_KEM_1024
+#define ml_kem_1024_d2i_private_key NULL
+#define ml_kem_1024_d2i_public_key NULL
+#define ml_kem_1024_d2i_PUBKEY ml_kem_d2i_PUBKEY
+#define ml_kem_1024_d2i_PKCS8 ml_kem_d2i_PKCS8
+#define ml_kem_1024_d2i_key_params NULL
+#define ml_kem_1024_free (free_key_fn *)ossl_ml_kem_key_free
+#define ml_kem_1024_check NULL
+#define ml_kem_1024_adjust NULL
#endif
@@ -660,20 +655,21 @@ slh_dsa_d2i_PKCS8(const uint8_t **der, long der_len, struct der2key_ctx_st *ctx)
/* Algorithm parameters must be absent. */
if ((X509_ALGOR_get0(NULL, &ptype, NULL, alg), ptype != V_ASN1_UNDEF)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS,
- "unexpected parameters with a PKCS#8 %s private key",
- ctx->desc->keytype_name);
+ "unexpected parameters with a PKCS#8 %s private key",
+ ctx->desc->keytype_name);
goto end;
}
if (OBJ_obj2nid(alg->algorithm) != ctx->desc->evp_type)
goto end;
if ((key = ossl_slh_dsa_key_new(libctx, ctx->propq,
- ctx->desc->keytype_name)) == NULL)
+ ctx->desc->keytype_name))
+ == NULL)
goto end;
if (!ossl_slh_dsa_set_priv(key, p, plen))
goto end;
ret = key;
- end:
+end:
PKCS8_PRIV_KEY_INFO_free(p8inf);
if (ret == NULL)
ossl_slh_dsa_key_free(key);
@@ -681,7 +677,7 @@ slh_dsa_d2i_PKCS8(const uint8_t **der, long der_len, struct der2key_ctx_st *ctx)
}
static ossl_inline void *slh_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
int ok = 0;
OSSL_LIB_CTX *libctx = PROV_LIBCTX_OF(ctx->provctx);
@@ -711,9 +707,9 @@ static ossl_inline void *slh_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
*/
if (der_len != 18 + (long)len) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "unexpected %s public key length: %ld != %ld",
- ctx->desc->keytype_name, der_len,
- 18 + (long)len);
+ "unexpected %s public key length: %ld != %ld",
+ ctx->desc->keytype_name, der_len,
+ 18 + (long)len);
goto err;
}
@@ -722,35 +718,36 @@ static ossl_inline void *slh_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
/* The spki storage is freed on error */
if (ASN1_item_d2i_ex((ASN1_VALUE **)&spki, &end, der_len,
- ASN1_ITEM_rptr(BARE_PUBKEY), NULL, NULL) == NULL) {
+ ASN1_ITEM_rptr(BARE_PUBKEY), NULL, NULL)
+ == NULL) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "malformed %s public key ASN.1 encoding",
- ossl_slh_dsa_key_get_name(ret));
+ "malformed %s public key ASN.1 encoding",
+ ossl_slh_dsa_key_get_name(ret));
goto err;
}
/* The spki structure now owns some memory */
if ((spki->pubkey->flags & 0x7) != 0 || end != *der + der_len) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "malformed %s public key ASN.1 encoding",
- ossl_slh_dsa_key_get_name(ret));
+ "malformed %s public key ASN.1 encoding",
+ ossl_slh_dsa_key_get_name(ret));
goto err;
}
if (OBJ_cmp(OBJ_nid2obj(ctx->desc->evp_type), spki->algor.oid) != 0) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "unexpected algorithm OID for an %s public key",
- ossl_slh_dsa_key_get_name(ret));
+ "unexpected algorithm OID for an %s public key",
+ ossl_slh_dsa_key_get_name(ret));
goto err;
}
if (!ossl_slh_dsa_set_pub(ret, spki->pubkey->data, spki->pubkey->length)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "failed to parse %s public key from the input data",
- ossl_slh_dsa_key_get_name(ret));
+ "failed to parse %s public key from the input data",
+ ossl_slh_dsa_key_get_name(ret));
goto err;
}
ok = 1;
- err:
+err:
if (spki != NULL) {
ASN1_OBJECT_free(spki->algor.oid);
ASN1_BIT_STRING_free(spki->pubkey);
@@ -763,145 +760,145 @@ static ossl_inline void *slh_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
return ret;
}
-# define slh_dsa_sha2_128s_evp_type EVP_PKEY_SLH_DSA_SHA2_128S
-# define slh_dsa_sha2_128s_d2i_private_key NULL
-# define slh_dsa_sha2_128s_d2i_public_key NULL
-# define slh_dsa_sha2_128s_d2i_key_params NULL
-# define slh_dsa_sha2_128s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_128s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_128s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_128s_check NULL
-# define slh_dsa_sha2_128s_adjust NULL
-
-# define slh_dsa_sha2_128f_evp_type EVP_PKEY_SLH_DSA_SHA2_128F
-# define slh_dsa_sha2_128f_d2i_private_key NULL
-# define slh_dsa_sha2_128f_d2i_public_key NULL
-# define slh_dsa_sha2_128f_d2i_key_params NULL
-# define slh_dsa_sha2_128f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_128f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_128f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_128f_check NULL
-# define slh_dsa_sha2_128f_adjust NULL
-
-# define slh_dsa_sha2_192s_evp_type EVP_PKEY_SLH_DSA_SHA2_192S
-# define slh_dsa_sha2_192s_d2i_private_key NULL
-# define slh_dsa_sha2_192s_d2i_public_key NULL
-# define slh_dsa_sha2_192s_d2i_key_params NULL
-# define slh_dsa_sha2_192s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_192s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_192s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_192s_check NULL
-# define slh_dsa_sha2_192s_adjust NULL
-
-# define slh_dsa_sha2_192f_evp_type EVP_PKEY_SLH_DSA_SHA2_192F
-# define slh_dsa_sha2_192f_d2i_private_key NULL
-# define slh_dsa_sha2_192f_d2i_public_key NULL
-# define slh_dsa_sha2_192f_d2i_key_params NULL
-# define slh_dsa_sha2_192f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_192f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_192f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_192f_check NULL
-# define slh_dsa_sha2_192f_adjust NULL
-
-# define slh_dsa_sha2_256s_evp_type EVP_PKEY_SLH_DSA_SHA2_256S
-# define slh_dsa_sha2_256s_d2i_private_key NULL
-# define slh_dsa_sha2_256s_d2i_public_key NULL
-# define slh_dsa_sha2_256s_d2i_key_params NULL
-# define slh_dsa_sha2_256s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_256s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_256s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_256s_check NULL
-# define slh_dsa_sha2_256s_adjust NULL
-
-# define slh_dsa_sha2_256f_evp_type EVP_PKEY_SLH_DSA_SHA2_256F
-# define slh_dsa_sha2_256f_d2i_private_key NULL
-# define slh_dsa_sha2_256f_d2i_public_key NULL
-# define slh_dsa_sha2_256f_d2i_key_params NULL
-# define slh_dsa_sha2_256f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_sha2_256f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_sha2_256f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_sha2_256f_check NULL
-# define slh_dsa_sha2_256f_adjust NULL
-
-# define slh_dsa_shake_128s_evp_type EVP_PKEY_SLH_DSA_SHAKE_128S
-# define slh_dsa_shake_128s_d2i_private_key NULL
-# define slh_dsa_shake_128s_d2i_public_key NULL
-# define slh_dsa_shake_128s_d2i_key_params NULL
-# define slh_dsa_shake_128s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_128s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_128s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_128s_check NULL
-# define slh_dsa_shake_128s_adjust NULL
-
-# define slh_dsa_shake_128f_evp_type EVP_PKEY_SLH_DSA_SHAKE_128F
-# define slh_dsa_shake_128f_d2i_private_key NULL
-# define slh_dsa_shake_128f_d2i_public_key NULL
-# define slh_dsa_shake_128f_d2i_key_params NULL
-# define slh_dsa_shake_128f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_128f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_128f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_128f_check NULL
-# define slh_dsa_shake_128f_adjust NULL
-
-# define slh_dsa_shake_192s_evp_type EVP_PKEY_SLH_DSA_SHAKE_192S
-# define slh_dsa_shake_192s_d2i_private_key NULL
-# define slh_dsa_shake_192s_d2i_public_key NULL
-# define slh_dsa_shake_192s_d2i_key_params NULL
-# define slh_dsa_shake_192s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_192s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_192s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_192s_check NULL
-# define slh_dsa_shake_192s_adjust NULL
-
-# define slh_dsa_shake_192f_evp_type EVP_PKEY_SLH_DSA_SHAKE_192F
-# define slh_dsa_shake_192f_d2i_private_key NULL
-# define slh_dsa_shake_192f_d2i_public_key NULL
-# define slh_dsa_shake_192f_d2i_key_params NULL
-# define slh_dsa_shake_192f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_192f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_192f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_192f_check NULL
-# define slh_dsa_shake_192f_adjust NULL
-
-# define slh_dsa_shake_256s_evp_type EVP_PKEY_SLH_DSA_SHAKE_256S
-# define slh_dsa_shake_256s_d2i_private_key NULL
-# define slh_dsa_shake_256s_d2i_public_key NULL
-# define slh_dsa_shake_256s_d2i_key_params NULL
-# define slh_dsa_shake_256s_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_256s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_256s_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_256s_check NULL
-# define slh_dsa_shake_256s_adjust NULL
-
-# define slh_dsa_shake_256f_evp_type EVP_PKEY_SLH_DSA_SHAKE_256F
-# define slh_dsa_shake_256f_d2i_private_key NULL
-# define slh_dsa_shake_256f_d2i_public_key NULL
-# define slh_dsa_shake_256f_d2i_key_params NULL
-# define slh_dsa_shake_256f_d2i_PKCS8 slh_dsa_d2i_PKCS8
-# define slh_dsa_shake_256f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
-# define slh_dsa_shake_256f_free (free_key_fn *)ossl_slh_dsa_key_free
-# define slh_dsa_shake_256f_check NULL
-# define slh_dsa_shake_256f_adjust NULL
+#define slh_dsa_sha2_128s_evp_type EVP_PKEY_SLH_DSA_SHA2_128S
+#define slh_dsa_sha2_128s_d2i_private_key NULL
+#define slh_dsa_sha2_128s_d2i_public_key NULL
+#define slh_dsa_sha2_128s_d2i_key_params NULL
+#define slh_dsa_sha2_128s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_128s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_128s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_128s_check NULL
+#define slh_dsa_sha2_128s_adjust NULL
+
+#define slh_dsa_sha2_128f_evp_type EVP_PKEY_SLH_DSA_SHA2_128F
+#define slh_dsa_sha2_128f_d2i_private_key NULL
+#define slh_dsa_sha2_128f_d2i_public_key NULL
+#define slh_dsa_sha2_128f_d2i_key_params NULL
+#define slh_dsa_sha2_128f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_128f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_128f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_128f_check NULL
+#define slh_dsa_sha2_128f_adjust NULL
+
+#define slh_dsa_sha2_192s_evp_type EVP_PKEY_SLH_DSA_SHA2_192S
+#define slh_dsa_sha2_192s_d2i_private_key NULL
+#define slh_dsa_sha2_192s_d2i_public_key NULL
+#define slh_dsa_sha2_192s_d2i_key_params NULL
+#define slh_dsa_sha2_192s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_192s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_192s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_192s_check NULL
+#define slh_dsa_sha2_192s_adjust NULL
+
+#define slh_dsa_sha2_192f_evp_type EVP_PKEY_SLH_DSA_SHA2_192F
+#define slh_dsa_sha2_192f_d2i_private_key NULL
+#define slh_dsa_sha2_192f_d2i_public_key NULL
+#define slh_dsa_sha2_192f_d2i_key_params NULL
+#define slh_dsa_sha2_192f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_192f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_192f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_192f_check NULL
+#define slh_dsa_sha2_192f_adjust NULL
+
+#define slh_dsa_sha2_256s_evp_type EVP_PKEY_SLH_DSA_SHA2_256S
+#define slh_dsa_sha2_256s_d2i_private_key NULL
+#define slh_dsa_sha2_256s_d2i_public_key NULL
+#define slh_dsa_sha2_256s_d2i_key_params NULL
+#define slh_dsa_sha2_256s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_256s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_256s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_256s_check NULL
+#define slh_dsa_sha2_256s_adjust NULL
+
+#define slh_dsa_sha2_256f_evp_type EVP_PKEY_SLH_DSA_SHA2_256F
+#define slh_dsa_sha2_256f_d2i_private_key NULL
+#define slh_dsa_sha2_256f_d2i_public_key NULL
+#define slh_dsa_sha2_256f_d2i_key_params NULL
+#define slh_dsa_sha2_256f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_sha2_256f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_sha2_256f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_sha2_256f_check NULL
+#define slh_dsa_sha2_256f_adjust NULL
+
+#define slh_dsa_shake_128s_evp_type EVP_PKEY_SLH_DSA_SHAKE_128S
+#define slh_dsa_shake_128s_d2i_private_key NULL
+#define slh_dsa_shake_128s_d2i_public_key NULL
+#define slh_dsa_shake_128s_d2i_key_params NULL
+#define slh_dsa_shake_128s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_128s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_128s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_128s_check NULL
+#define slh_dsa_shake_128s_adjust NULL
+
+#define slh_dsa_shake_128f_evp_type EVP_PKEY_SLH_DSA_SHAKE_128F
+#define slh_dsa_shake_128f_d2i_private_key NULL
+#define slh_dsa_shake_128f_d2i_public_key NULL
+#define slh_dsa_shake_128f_d2i_key_params NULL
+#define slh_dsa_shake_128f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_128f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_128f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_128f_check NULL
+#define slh_dsa_shake_128f_adjust NULL
+
+#define slh_dsa_shake_192s_evp_type EVP_PKEY_SLH_DSA_SHAKE_192S
+#define slh_dsa_shake_192s_d2i_private_key NULL
+#define slh_dsa_shake_192s_d2i_public_key NULL
+#define slh_dsa_shake_192s_d2i_key_params NULL
+#define slh_dsa_shake_192s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_192s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_192s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_192s_check NULL
+#define slh_dsa_shake_192s_adjust NULL
+
+#define slh_dsa_shake_192f_evp_type EVP_PKEY_SLH_DSA_SHAKE_192F
+#define slh_dsa_shake_192f_d2i_private_key NULL
+#define slh_dsa_shake_192f_d2i_public_key NULL
+#define slh_dsa_shake_192f_d2i_key_params NULL
+#define slh_dsa_shake_192f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_192f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_192f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_192f_check NULL
+#define slh_dsa_shake_192f_adjust NULL
+
+#define slh_dsa_shake_256s_evp_type EVP_PKEY_SLH_DSA_SHAKE_256S
+#define slh_dsa_shake_256s_d2i_private_key NULL
+#define slh_dsa_shake_256s_d2i_public_key NULL
+#define slh_dsa_shake_256s_d2i_key_params NULL
+#define slh_dsa_shake_256s_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_256s_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_256s_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_256s_check NULL
+#define slh_dsa_shake_256s_adjust NULL
+
+#define slh_dsa_shake_256f_evp_type EVP_PKEY_SLH_DSA_SHAKE_256F
+#define slh_dsa_shake_256f_d2i_private_key NULL
+#define slh_dsa_shake_256f_d2i_public_key NULL
+#define slh_dsa_shake_256f_d2i_key_params NULL
+#define slh_dsa_shake_256f_d2i_PKCS8 slh_dsa_d2i_PKCS8
+#define slh_dsa_shake_256f_d2i_PUBKEY slh_dsa_d2i_PUBKEY
+#define slh_dsa_shake_256f_free (free_key_fn *)ossl_slh_dsa_key_free
+#define slh_dsa_shake_256f_check NULL
+#define slh_dsa_shake_256f_adjust NULL
#endif /* OPENSSL_NO_SLH_DSA */
/* ---------------------------------------------------------------------- */
-#define rsa_evp_type EVP_PKEY_RSA
-#define rsa_d2i_private_key (d2i_of_void *)d2i_RSAPrivateKey
-#define rsa_d2i_public_key (d2i_of_void *)d2i_RSAPublicKey
-#define rsa_d2i_key_params NULL
-#define rsa_free (free_key_fn *)RSA_free
+#define rsa_evp_type EVP_PKEY_RSA
+#define rsa_d2i_private_key (d2i_of_void *)d2i_RSAPrivateKey
+#define rsa_d2i_public_key (d2i_of_void *)d2i_RSAPublicKey
+#define rsa_d2i_key_params NULL
+#define rsa_free (free_key_fn *)RSA_free
static void *rsa_d2i_PKCS8(const unsigned char **der, long der_len,
- struct der2key_ctx_st *ctx)
+ struct der2key_ctx_st *ctx)
{
return der2key_decode_p8(der, der_len, ctx,
- (key_from_pkcs8_t *)ossl_rsa_key_from_pkcs8);
+ (key_from_pkcs8_t *)ossl_rsa_key_from_pkcs8);
}
static void *
rsa_d2i_PUBKEY(const unsigned char **der, long der_len,
- ossl_unused struct der2key_ctx_st *ctx)
+ ossl_unused struct der2key_ctx_st *ctx)
{
return d2i_RSA_PUBKEY(NULL, der, der_len);
}
@@ -932,15 +929,15 @@ static void rsa_adjust(void *key, struct der2key_ctx_st *ctx)
ossl_rsa_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-#define rsapss_evp_type EVP_PKEY_RSA_PSS
-#define rsapss_d2i_private_key (d2i_of_void *)d2i_RSAPrivateKey
-#define rsapss_d2i_public_key (d2i_of_void *)d2i_RSAPublicKey
-#define rsapss_d2i_key_params NULL
-#define rsapss_d2i_PKCS8 rsa_d2i_PKCS8
-#define rsapss_d2i_PUBKEY rsa_d2i_PUBKEY
-#define rsapss_free (free_key_fn *)RSA_free
-#define rsapss_check rsa_check
-#define rsapss_adjust rsa_adjust
+#define rsapss_evp_type EVP_PKEY_RSA_PSS
+#define rsapss_d2i_private_key (d2i_of_void *)d2i_RSAPrivateKey
+#define rsapss_d2i_public_key (d2i_of_void *)d2i_RSAPublicKey
+#define rsapss_d2i_key_params NULL
+#define rsapss_d2i_PKCS8 rsa_d2i_PKCS8
+#define rsapss_d2i_PUBKEY rsa_d2i_PUBKEY
+#define rsapss_free (free_key_fn *)RSA_free
+#define rsapss_check rsa_check
+#define rsapss_adjust rsa_adjust
/* ---------------------------------------------------------------------- */
@@ -951,53 +948,53 @@ ml_dsa_d2i_PKCS8(const uint8_t **der, long der_len, struct der2key_ctx_st *ctx)
ML_DSA_KEY *key;
key = ossl_ml_dsa_d2i_PKCS8(*der, der_len, ctx->desc->evp_type,
- ctx->provctx, ctx->propq);
+ ctx->provctx, ctx->propq);
if (key != NULL)
*der += der_len;
return key;
}
-static ossl_inline void * ml_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
- struct der2key_ctx_st *ctx)
+static ossl_inline void *ml_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
+ struct der2key_ctx_st *ctx)
{
ML_DSA_KEY *key;
key = ossl_ml_dsa_d2i_PUBKEY(*der, der_len, ctx->desc->evp_type,
- ctx->provctx, ctx->propq);
+ ctx->provctx, ctx->propq);
if (key != NULL)
*der += der_len;
return key;
}
-# define ml_dsa_44_evp_type EVP_PKEY_ML_DSA_44
-# define ml_dsa_44_d2i_private_key NULL
-# define ml_dsa_44_d2i_public_key NULL
-# define ml_dsa_44_d2i_key_params NULL
-# define ml_dsa_44_d2i_PUBKEY ml_dsa_d2i_PUBKEY
-# define ml_dsa_44_d2i_PKCS8 ml_dsa_d2i_PKCS8
-# define ml_dsa_44_free (free_key_fn *)ossl_ml_dsa_key_free
-# define ml_dsa_44_check NULL
-# define ml_dsa_44_adjust NULL
-
-# define ml_dsa_65_evp_type EVP_PKEY_ML_DSA_65
-# define ml_dsa_65_d2i_private_key NULL
-# define ml_dsa_65_d2i_public_key NULL
-# define ml_dsa_65_d2i_key_params NULL
-# define ml_dsa_65_d2i_PUBKEY ml_dsa_d2i_PUBKEY
-# define ml_dsa_65_d2i_PKCS8 ml_dsa_d2i_PKCS8
-# define ml_dsa_65_free (free_key_fn *)ossl_ml_dsa_key_free
-# define ml_dsa_65_check NULL
-# define ml_dsa_65_adjust NULL
-
-# define ml_dsa_87_evp_type EVP_PKEY_ML_DSA_87
-# define ml_dsa_87_d2i_private_key NULL
-# define ml_dsa_87_d2i_public_key NULL
-# define ml_dsa_87_d2i_PUBKEY ml_dsa_d2i_PUBKEY
-# define ml_dsa_87_d2i_PKCS8 ml_dsa_d2i_PKCS8
-# define ml_dsa_87_d2i_key_params NULL
-# define ml_dsa_87_free (free_key_fn *)ossl_ml_dsa_key_free
-# define ml_dsa_87_check NULL
-# define ml_dsa_87_adjust NULL
+#define ml_dsa_44_evp_type EVP_PKEY_ML_DSA_44
+#define ml_dsa_44_d2i_private_key NULL
+#define ml_dsa_44_d2i_public_key NULL
+#define ml_dsa_44_d2i_key_params NULL
+#define ml_dsa_44_d2i_PUBKEY ml_dsa_d2i_PUBKEY
+#define ml_dsa_44_d2i_PKCS8 ml_dsa_d2i_PKCS8
+#define ml_dsa_44_free (free_key_fn *)ossl_ml_dsa_key_free
+#define ml_dsa_44_check NULL
+#define ml_dsa_44_adjust NULL
+
+#define ml_dsa_65_evp_type EVP_PKEY_ML_DSA_65
+#define ml_dsa_65_d2i_private_key NULL
+#define ml_dsa_65_d2i_public_key NULL
+#define ml_dsa_65_d2i_key_params NULL
+#define ml_dsa_65_d2i_PUBKEY ml_dsa_d2i_PUBKEY
+#define ml_dsa_65_d2i_PKCS8 ml_dsa_d2i_PKCS8
+#define ml_dsa_65_free (free_key_fn *)ossl_ml_dsa_key_free
+#define ml_dsa_65_check NULL
+#define ml_dsa_65_adjust NULL
+
+#define ml_dsa_87_evp_type EVP_PKEY_ML_DSA_87
+#define ml_dsa_87_d2i_private_key NULL
+#define ml_dsa_87_d2i_public_key NULL
+#define ml_dsa_87_d2i_PUBKEY ml_dsa_d2i_PUBKEY
+#define ml_dsa_87_d2i_PKCS8 ml_dsa_d2i_PKCS8
+#define ml_dsa_87_d2i_key_params NULL
+#define ml_dsa_87_free (free_key_fn *)ossl_ml_dsa_key_free
+#define ml_dsa_87_check NULL
+#define ml_dsa_87_adjust NULL
#endif
@@ -1007,162 +1004,162 @@ static ossl_inline void * ml_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
* The DO_ macros help define the selection mask and the method functions
* for each kind of object we want to decode.
*/
-#define DO_type_specific_keypair(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_KEYPAIR ), \
- keytype##_d2i_private_key, \
- keytype##_d2i_public_key, \
- NULL, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific_keypair(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_KEYPAIR), \
+ keytype##_d2i_private_key, \
+ keytype##_d2i_public_key, \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_type_specific_pub(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PUBLIC_KEY ), \
- NULL, \
- keytype##_d2i_public_key, \
- NULL, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific_pub(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PUBLIC_KEY), \
+ NULL, \
+ keytype##_d2i_public_key, \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_type_specific_priv(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY ), \
- keytype##_d2i_private_key, \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific_priv(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PRIVATE_KEY), \
+ keytype##_d2i_private_key, \
+ NULL, \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_type_specific_params(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ), \
- NULL, \
- NULL, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific_params(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_ALL_PARAMETERS), \
+ NULL, \
+ NULL, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_type_specific(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_ALL ), \
- keytype##_d2i_private_key, \
- keytype##_d2i_public_key, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_ALL), \
+ keytype##_d2i_private_key, \
+ keytype##_d2i_public_key, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_type_specific_no_pub(keytype) \
- "type-specific", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY \
- | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ), \
- keytype##_d2i_private_key, \
- NULL, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_type_specific_no_pub(keytype) \
+ "type-specific", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PRIVATE_KEY \
+ | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS), \
+ keytype##_d2i_private_key, \
+ NULL, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_PrivateKeyInfo(keytype) \
- "PrivateKeyInfo", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY ), \
- NULL, \
- NULL, \
- NULL, \
- keytype##_d2i_PKCS8, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_PrivateKeyInfo(keytype) \
+ "PrivateKeyInfo", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PRIVATE_KEY), \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_d2i_PKCS8, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_SubjectPublicKeyInfo(keytype) \
- "SubjectPublicKeyInfo", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PUBLIC_KEY ), \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- keytype##_d2i_PUBKEY, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_SubjectPublicKeyInfo(keytype) \
+ "SubjectPublicKeyInfo", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PUBLIC_KEY), \
+ NULL, \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_d2i_PUBKEY, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_DH(keytype) \
- "DH", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ), \
- NULL, \
- NULL, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_DH(keytype) \
+ "DH", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_ALL_PARAMETERS), \
+ NULL, \
+ NULL, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_DHX(keytype) \
- "DHX", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ), \
- NULL, \
- NULL, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_DHX(keytype) \
+ "DHX", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_ALL_PARAMETERS), \
+ NULL, \
+ NULL, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_DSA(keytype) \
- "DSA", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_ALL ), \
- keytype##_d2i_private_key, \
- keytype##_d2i_public_key, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_DSA(keytype) \
+ "DSA", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_ALL), \
+ keytype##_d2i_private_key, \
+ keytype##_d2i_public_key, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_EC(keytype) \
- "EC", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_PRIVATE_KEY \
- | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ), \
- keytype##_d2i_private_key, \
- NULL, \
- keytype##_d2i_key_params, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_EC(keytype) \
+ "EC", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_PRIVATE_KEY \
+ | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS), \
+ keytype##_d2i_private_key, \
+ NULL, \
+ keytype##_d2i_key_params, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
-#define DO_RSA(keytype) \
- "RSA", keytype##_evp_type, \
- ( OSSL_KEYMGMT_SELECT_KEYPAIR ), \
- keytype##_d2i_private_key, \
- keytype##_d2i_public_key, \
- NULL, \
- NULL, \
- NULL, \
- keytype##_check, \
- keytype##_adjust, \
+#define DO_RSA(keytype) \
+ "RSA", keytype##_evp_type, \
+ (OSSL_KEYMGMT_SELECT_KEYPAIR), \
+ keytype##_d2i_private_key, \
+ keytype##_d2i_public_key, \
+ NULL, \
+ NULL, \
+ NULL, \
+ keytype##_check, \
+ keytype##_adjust, \
keytype##_free
/*
@@ -1182,41 +1179,41 @@ static ossl_inline void * ml_dsa_d2i_PUBKEY(const uint8_t **der, long der_len,
* the DO_##kind macros above, to populate the keytype_desc_st
* structure.
*/
-#define MAKE_DECODER(keytype_name, keytype, type, kind) \
- static const struct keytype_desc_st kind##_##keytype##_desc = \
- { keytype_name, ossl_##keytype##_keymgmt_functions, \
- DO_##kind(keytype) }; \
- \
- static OSSL_FUNC_decoder_newctx_fn kind##_der2##keytype##_newctx; \
- \
- static void *kind##_der2##keytype##_newctx(void *provctx) \
- { \
- return der2key_newctx(provctx, &kind##_##keytype##_desc); \
- } \
- static int kind##_der2##keytype##_does_selection(void *provctx, \
- int selection) \
- { \
- return der2key_check_selection(selection, \
- &kind##_##keytype##_desc); \
- } \
- const OSSL_DISPATCH \
- ossl_##kind##_der_to_##keytype##_decoder_functions[] = { \
- { OSSL_FUNC_DECODER_NEWCTX, \
- (void (*)(void))kind##_der2##keytype##_newctx }, \
- { OSSL_FUNC_DECODER_FREECTX, \
- (void (*)(void))der2key_freectx }, \
- { OSSL_FUNC_DECODER_DOES_SELECTION, \
- (void (*)(void))kind##_der2##keytype##_does_selection }, \
- { OSSL_FUNC_DECODER_DECODE, \
- (void (*)(void))der2key_decode }, \
- { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
- (void (*)(void))der2key_export_object }, \
- { OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS, \
- (void (*)(void))der2key_settable_ctx_params }, \
- { OSSL_FUNC_DECODER_SET_CTX_PARAMS, \
- (void (*)(void))der2key_set_ctx_params }, \
- OSSL_DISPATCH_END \
- }
+#define MAKE_DECODER(keytype_name, keytype, type, kind) \
+ static const struct keytype_desc_st kind##_##keytype##_desc = { keytype_name, ossl_##keytype##_keymgmt_functions, \
+ DO_##kind(keytype) }; \
+ \
+ static OSSL_FUNC_decoder_newctx_fn kind##_der2##keytype##_newctx; \
+ \
+ static void *kind##_der2##keytype##_newctx(void *provctx) \
+ { \
+ return der2key_newctx(provctx, &kind##_##keytype##_desc); \
+ } \
+ static int kind##_der2##keytype##_does_selection(void *provctx, \
+ int selection) \
+ { \
+ return der2key_check_selection(selection, \
+ &kind##_##keytype##_desc); \
+ } \
+ const OSSL_DISPATCH \
+ ossl_##kind##_der_to_##keytype##_decoder_functions[] \
+ = { \
+ { OSSL_FUNC_DECODER_NEWCTX, \
+ (void (*)(void))kind##_der2##keytype##_newctx }, \
+ { OSSL_FUNC_DECODER_FREECTX, \
+ (void (*)(void))der2key_freectx }, \
+ { OSSL_FUNC_DECODER_DOES_SELECTION, \
+ (void (*)(void))kind##_der2##keytype##_does_selection }, \
+ { OSSL_FUNC_DECODER_DECODE, \
+ (void (*)(void))der2key_decode }, \
+ { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
+ (void (*)(void))der2key_export_object }, \
+ { OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS, \
+ (void (*)(void))der2key_settable_ctx_params }, \
+ { OSSL_FUNC_DECODER_SET_CTX_PARAMS, \
+ (void (*)(void))der2key_set_ctx_params }, \
+ OSSL_DISPATCH_END \
+ }
#ifndef OPENSSL_NO_DH
MAKE_DECODER("DH", dh, dh, PrivateKeyInfo);
@@ -1239,7 +1236,7 @@ MAKE_DECODER("EC", ec, ec, PrivateKeyInfo);
MAKE_DECODER("EC", ec, ec, SubjectPublicKeyInfo);
MAKE_DECODER("EC", ec, ec, type_specific_no_pub);
MAKE_DECODER("EC", ec, ec, EC);
-# ifndef OPENSSL_NO_ECX
+#ifndef OPENSSL_NO_ECX
MAKE_DECODER("X25519", x25519, ecx, PrivateKeyInfo);
MAKE_DECODER("X25519", x25519, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("X448", x448, ecx, PrivateKeyInfo);
@@ -1248,12 +1245,12 @@ MAKE_DECODER("ED25519", ed25519, ecx, PrivateKeyInfo);
MAKE_DECODER("ED25519", ed25519, ecx, SubjectPublicKeyInfo);
MAKE_DECODER("ED448", ed448, ecx, PrivateKeyInfo);
MAKE_DECODER("ED448", ed448, ecx, SubjectPublicKeyInfo);
-# endif
-# ifndef OPENSSL_NO_SM2
+#endif
+#ifndef OPENSSL_NO_SM2
MAKE_DECODER("SM2", sm2, ec, PrivateKeyInfo);
MAKE_DECODER("SM2", sm2, ec, SubjectPublicKeyInfo);
MAKE_DECODER("SM2", sm2, sm2, type_specific_no_pub);
-# endif
+#endif
#endif
#ifndef OPENSSL_NO_ML_KEM
MAKE_DECODER("ML-KEM-512", ml_kem_512, ml_kem_512, PrivateKeyInfo);
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_epki2pki.c b/crypto/openssl/providers/implementations/encode_decode/decode_epki2pki.c
index aecf2eb4f2b4..2f472597978c 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_epki2pki.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_epki2pki.c
@@ -82,8 +82,8 @@ static int epki2pki_set_ctx_params(void *vctx, const OSSL_PARAM params[])
* PrivateKeyInfo.
*/
static int epki2pki_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct epki2pki_ctx_st *ctx = vctx;
BUF_MEM *mem = NULL;
@@ -107,23 +107,23 @@ static int epki2pki_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
OPENSSL_free(mem);
ok = ossl_epki2pki_der_decode(der, der_len, selection, data_cb, data_cbarg,
- pw_cb, pw_cbarg, PROV_LIBCTX_OF(ctx->provctx),
- ctx->propq);
+ pw_cb, pw_cbarg, PROV_LIBCTX_OF(ctx->provctx),
+ ctx->propq);
OPENSSL_free(der);
return ok;
}
int ossl_epki2pki_der_decode(unsigned char *der, long der_len, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg,
- OSSL_LIB_CTX *libctx, const char *propq)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg,
+ OSSL_LIB_CTX *libctx, const char *propq)
{
const unsigned char *pder = der;
unsigned char *new_der = NULL;
X509_SIG *p8 = NULL;
PKCS8_PRIV_KEY_INFO *p8inf = NULL;
const X509_ALGOR *alg = NULL;
- int ok = 1; /* Assume good */
+ int ok = 1; /* Assume good */
ERR_set_mark();
if ((p8 = d2i_X509_SIG(NULL, &pder, der_len)) != NULL) {
@@ -141,9 +141,9 @@ int ossl_epki2pki_der_decode(unsigned char *der, long der_len, int selection,
X509_SIG_get0(p8, &alg, &oct);
if (!PKCS12_pbe_crypt_ex(alg, pbuf, plen,
- oct->data, oct->length,
- &new_der, &new_der_len, 0,
- libctx, propq)) {
+ oct->data, oct->length,
+ &new_der, &new_der_len, 0,
+ libctx, propq)) {
ok = 0;
} else {
der = new_der;
@@ -173,13 +173,13 @@ int ossl_epki2pki_der_decode(unsigned char *der, long der_len, int selection,
OBJ_obj2txt(keytype, sizeof(keytype), alg->algorithm, 0);
*p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- keytype, 0);
+ keytype, 0);
*p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_INPUT_TYPE,
- "DER", 0);
+ "DER", 0);
*p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_STRUCTURE,
- "PrivateKeyInfo", 0);
+ "PrivateKeyInfo", 0);
*p++ = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_DATA,
- der, der_len);
+ der, der_len);
*p++ = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &objtype);
*p = OSSL_PARAM_construct_end();
@@ -195,8 +195,8 @@ const OSSL_DISPATCH ossl_EncryptedPrivateKeyInfo_der_to_der_decoder_functions[]
{ OSSL_FUNC_DECODER_FREECTX, (void (*)(void))epki2pki_freectx },
{ OSSL_FUNC_DECODER_DECODE, (void (*)(void))epki2pki_decode },
{ OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS,
- (void (*)(void))epki2pki_settable_ctx_params },
+ (void (*)(void))epki2pki_settable_ctx_params },
{ OSSL_FUNC_DECODER_SET_CTX_PARAMS,
- (void (*)(void))epki2pki_set_ctx_params },
+ (void (*)(void))epki2pki_set_ctx_params },
OSSL_DISPATCH_END
};
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_msblob2key.c b/crypto/openssl/providers/implementations/encode_decode/decode_msblob2key.c
index df327210f114..87e532acc407 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_msblob2key.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_msblob2key.c
@@ -20,24 +20,24 @@
#include <openssl/core_object.h>
#include <openssl/crypto.h>
#include <openssl/params.h>
-#include <openssl/pem.h> /* For public PVK functions */
+#include <openssl/pem.h> /* For public PVK functions */
#include <openssl/x509.h>
#include <openssl/err.h>
#include "internal/passphrase.h"
-#include "crypto/pem.h" /* For internal PVK and "blob" headers */
+#include "crypto/pem.h" /* For internal PVK and "blob" headers */
#include "crypto/rsa.h"
#include "prov/bio.h"
#include "prov/implementations.h"
#include "endecoder_local.h"
-struct msblob2key_ctx_st; /* Forward declaration */
+struct msblob2key_ctx_st; /* Forward declaration */
typedef void *b2i_of_void_fn(const unsigned char **in, unsigned int bitlen,
- int ispub);
+ int ispub);
typedef void adjust_key_fn(void *, struct msblob2key_ctx_st *ctx);
typedef void free_key_fn(void *);
struct keytype_desc_st {
- int type; /* EVP key type */
- const char *name; /* Keytype */
+ int type; /* EVP key type */
+ const char *name; /* Keytype */
const OSSL_DISPATCH *fns; /* Keymgmt (to pilfer functions from) */
b2i_of_void_fn *read_private_key;
@@ -84,16 +84,15 @@ static int msblob2key_does_selection(void *provctx, int selection)
if (selection == 0)
return 1;
- if ((selection & (OSSL_KEYMGMT_SELECT_PRIVATE_KEY
- | OSSL_KEYMGMT_SELECT_PUBLIC_KEY)) != 0)
+ if ((selection & (OSSL_KEYMGMT_SELECT_PRIVATE_KEY | OSSL_KEYMGMT_SELECT_PUBLIC_KEY)) != 0)
return 1;
return 0;
}
static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct msblob2key_ctx_st *ctx = vctx;
BIO *in = ossl_bio_new_from_core_bio(ctx->provctx, cin);
@@ -120,7 +119,7 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
goto next;
ctx->selection = selection;
- ok = 0; /* Assume that we fail */
+ ok = 0; /* Assume that we fail */
if ((isdss && ctx->desc->type != EVP_PKEY_DSA)
|| (!isdss && ctx->desc->type != EVP_PKEY_RSA))
@@ -141,7 +140,7 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
}
if ((selection == 0
- || (selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
+ || (selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
&& !ispub
&& ctx->desc->read_private_key != NULL) {
struct ossl_passphrase_data_st pwdata;
@@ -154,8 +153,7 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
if (selection != 0 && key == NULL)
goto next;
}
- if (key == NULL && (selection == 0
- || (selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0)
+ if (key == NULL && (selection == 0 || (selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0)
&& ispub
&& ctx->desc->read_public_key != NULL) {
p = buf;
@@ -167,7 +165,7 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
if (key != NULL && ctx->desc->adjust_key != NULL)
ctx->desc->adjust_key(key, ctx);
- next:
+next:
/*
* Indicated that we successfully decoded something, or not at all.
* Ending up "empty handed" is not an error.
@@ -188,21 +186,18 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
OSSL_PARAM params[4];
int object_type = OSSL_OBJECT_PKEY;
- params[0] =
- OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
- params[1] =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- (char *)ctx->desc->name, 0);
+ params[0] = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
+ params[1] = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ (char *)ctx->desc->name, 0);
/* The address of the key becomes the octet string */
- params[2] =
- OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
- &key, sizeof(key));
+ params[2] = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
+ &key, sizeof(key));
params[3] = OSSL_PARAM_construct_end();
ok = data_cb(params, data_cbarg);
}
- end:
+end:
BIO_free(in);
OPENSSL_free(buf);
ctx->desc->free_key(key);
@@ -212,12 +207,11 @@ static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
static int
msblob2key_export_object(void *vctx,
- const void *reference, size_t reference_sz,
- OSSL_CALLBACK *export_cb, void *export_cbarg)
+ const void *reference, size_t reference_sz,
+ OSSL_CALLBACK *export_cb, void *export_cbarg)
{
struct msblob2key_ctx_st *ctx = vctx;
- OSSL_FUNC_keymgmt_export_fn *export =
- ossl_prov_get_keymgmt_export(ctx->desc->fns);
+ OSSL_FUNC_keymgmt_export_fn *export = ossl_prov_get_keymgmt_export(ctx->desc->fns);
void *keydata;
if (reference_sz == sizeof(keydata) && export != NULL) {
@@ -235,53 +229,54 @@ msblob2key_export_object(void *vctx,
/* ---------------------------------------------------------------------- */
-#define dsa_decode_private_key (b2i_of_void_fn *)ossl_b2i_DSA_after_header
-#define dsa_decode_public_key (b2i_of_void_fn *)ossl_b2i_DSA_after_header
-#define dsa_adjust NULL
-#define dsa_free (void (*)(void *))DSA_free
+#define dsa_decode_private_key (b2i_of_void_fn *)ossl_b2i_DSA_after_header
+#define dsa_decode_public_key (b2i_of_void_fn *)ossl_b2i_DSA_after_header
+#define dsa_adjust NULL
+#define dsa_free (void (*)(void *)) DSA_free
/* ---------------------------------------------------------------------- */
-#define rsa_decode_private_key (b2i_of_void_fn *)ossl_b2i_RSA_after_header
-#define rsa_decode_public_key (b2i_of_void_fn *)ossl_b2i_RSA_after_header
+#define rsa_decode_private_key (b2i_of_void_fn *)ossl_b2i_RSA_after_header
+#define rsa_decode_public_key (b2i_of_void_fn *)ossl_b2i_RSA_after_header
static void rsa_adjust(void *key, struct msblob2key_ctx_st *ctx)
{
ossl_rsa_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-#define rsa_free (void (*)(void *))RSA_free
+#define rsa_free (void (*)(void *)) RSA_free
/* ---------------------------------------------------------------------- */
-#define IMPLEMENT_MSBLOB(KEYTYPE, keytype) \
- static const struct keytype_desc_st mstype##2##keytype##_desc = { \
- EVP_PKEY_##KEYTYPE, #KEYTYPE, \
- ossl_##keytype##_keymgmt_functions, \
- keytype##_decode_private_key, \
- keytype##_decode_public_key, \
- keytype##_adjust, \
- keytype##_free \
- }; \
- static OSSL_FUNC_decoder_newctx_fn msblob2##keytype##_newctx; \
- static void *msblob2##keytype##_newctx(void *provctx) \
- { \
- return msblob2key_newctx(provctx, &mstype##2##keytype##_desc); \
- } \
- const OSSL_DISPATCH \
- ossl_msblob_to_##keytype##_decoder_functions[] = { \
- { OSSL_FUNC_DECODER_NEWCTX, \
- (void (*)(void))msblob2##keytype##_newctx }, \
- { OSSL_FUNC_DECODER_FREECTX, \
- (void (*)(void))msblob2key_freectx }, \
- { OSSL_FUNC_DECODER_DOES_SELECTION, \
- (void (*)(void))msblob2key_does_selection }, \
- { OSSL_FUNC_DECODER_DECODE, \
- (void (*)(void))msblob2key_decode }, \
- { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
- (void (*)(void))msblob2key_export_object }, \
- OSSL_DISPATCH_END \
- }
+#define IMPLEMENT_MSBLOB(KEYTYPE, keytype) \
+ static const struct keytype_desc_st mstype##2##keytype##_desc = { \
+ EVP_PKEY_##KEYTYPE, #KEYTYPE, \
+ ossl_##keytype##_keymgmt_functions, \
+ keytype##_decode_private_key, \
+ keytype##_decode_public_key, \
+ keytype##_adjust, \
+ keytype##_free \
+ }; \
+ static OSSL_FUNC_decoder_newctx_fn msblob2##keytype##_newctx; \
+ static void *msblob2##keytype##_newctx(void *provctx) \
+ { \
+ return msblob2key_newctx(provctx, &mstype##2##keytype##_desc); \
+ } \
+ const OSSL_DISPATCH \
+ ossl_msblob_to_##keytype##_decoder_functions[] \
+ = { \
+ { OSSL_FUNC_DECODER_NEWCTX, \
+ (void (*)(void))msblob2##keytype##_newctx }, \
+ { OSSL_FUNC_DECODER_FREECTX, \
+ (void (*)(void))msblob2key_freectx }, \
+ { OSSL_FUNC_DECODER_DOES_SELECTION, \
+ (void (*)(void))msblob2key_does_selection }, \
+ { OSSL_FUNC_DECODER_DECODE, \
+ (void (*)(void))msblob2key_decode }, \
+ { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
+ (void (*)(void))msblob2key_export_object }, \
+ OSSL_DISPATCH_END \
+ }
#ifndef OPENSSL_NO_DSA
IMPLEMENT_MSBLOB(DSA, dsa);
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_pem2der.c b/crypto/openssl/providers/implementations/encode_decode/decode_pem2der.c
index a38c71883dd1..7a8e35004d46 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_pem2der.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_pem2der.c
@@ -31,8 +31,8 @@
#include "endecoder_local.h"
static int read_pem(PROV_CTX *provctx, OSSL_CORE_BIO *cin,
- char **pem_name, char **pem_header,
- unsigned char **data, long *len)
+ char **pem_name, char **pem_header,
+ unsigned char **data, long *len)
{
BIO *in = ossl_bio_new_from_core_bio(provctx, cin);
int ok;
@@ -124,8 +124,8 @@ static int pem2der_pass_helper(char *buf, int num, int w, void *data)
}
static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
/*
* PEM names we recognise. Other PEM names should be recognised by
@@ -175,7 +175,8 @@ static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
int objtype = OSSL_OBJECT_UNKNOWN;
ok = read_pem(ctx->provctx, cin, &pem_name, &pem_header,
- &der, &der_len) > 0;
+ &der, &der_len)
+ > 0;
/* We return "empty handed". This is not an error. */
if (!ok)
return 1;
@@ -190,12 +191,12 @@ static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
EVP_CIPHER_INFO cipher;
struct pem2der_pass_data_st pass_data;
- ok = 0; /* Assume that we fail */
+ ok = 0; /* Assume that we fail */
pass_data.cb = pw_cb;
pass_data.cbarg = pw_cbarg;
if (!PEM_get_EVP_CIPHER_INFO(pem_header, &cipher)
|| !PEM_do_header(&cipher, der, &der_len,
- pem2der_pass_helper, &pass_data))
+ pem2der_pass_helper, &pass_data))
goto end;
}
@@ -225,9 +226,9 @@ static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
|| OPENSSL_strcasecmp(ctx->data_structure, "EncryptedPrivateKeyInfo") == 0
|| OPENSSL_strcasecmp(ctx->data_structure, "PrivateKeyInfo") == 0)) {
ok = ossl_epki2pki_der_decode(der, der_len, selection, data_cb,
- data_cbarg, pw_cb, pw_cbarg,
- PROV_LIBCTX_OF(ctx->provctx),
- ctx->propq);
+ data_cbarg, pw_cb, pw_cbarg,
+ PROV_LIBCTX_OF(ctx->provctx),
+ ctx->propq);
goto end;
}
@@ -235,35 +236,31 @@ static int pem2der_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
&& ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY)
|| OPENSSL_strcasecmp(ctx->data_structure, "SubjectPublicKeyInfo") == 0)) {
ok = ossl_spki2typespki_der_decode(der, der_len, selection, data_cb,
- data_cbarg, pw_cb, pw_cbarg,
- PROV_LIBCTX_OF(ctx->provctx),
- ctx->propq);
+ data_cbarg, pw_cb, pw_cbarg,
+ PROV_LIBCTX_OF(ctx->provctx),
+ ctx->propq);
goto end;
}
objtype = pem_name_map[i].object_type;
if (data_type != NULL)
- *p++ =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- data_type, 0);
+ *p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ data_type, 0);
/* We expect this to be read only so casting away the const is ok */
if (data_structure != NULL)
- *p++ =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_STRUCTURE,
- data_structure, 0);
- *p++ =
- OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_DATA,
- der, der_len);
- *p++ =
- OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &objtype);
+ *p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_STRUCTURE,
+ data_structure, 0);
+ *p++ = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_DATA,
+ der, der_len);
+ *p++ = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &objtype);
*p = OSSL_PARAM_construct_end();
ok = data_cb(params, data_cbarg);
}
- end:
+end:
OPENSSL_free(pem_name);
OPENSSL_free(pem_header);
OPENSSL_free(der);
@@ -275,8 +272,8 @@ const OSSL_DISPATCH ossl_pem_to_der_decoder_functions[] = {
{ OSSL_FUNC_DECODER_FREECTX, (void (*)(void))pem2der_freectx },
{ OSSL_FUNC_DECODER_DECODE, (void (*)(void))pem2der_decode },
{ OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS,
- (void (*)(void))pem2der_settable_ctx_params },
+ (void (*)(void))pem2der_settable_ctx_params },
{ OSSL_FUNC_DECODER_SET_CTX_PARAMS,
- (void (*)(void))pem2der_set_ctx_params },
+ (void (*)(void))pem2der_set_ctx_params },
OSSL_DISPATCH_END
};
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_pvk2key.c b/crypto/openssl/providers/implementations/encode_decode/decode_pvk2key.c
index ea4585d93c5c..9e8c4f1f4c9d 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_pvk2key.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_pvk2key.c
@@ -21,25 +21,25 @@
#include <openssl/crypto.h>
#include <openssl/params.h>
#include <openssl/err.h>
-#include <openssl/pem.h> /* For public PVK functions */
+#include <openssl/pem.h> /* For public PVK functions */
#include <openssl/x509.h>
#include "internal/passphrase.h"
#include "internal/sizes.h"
-#include "crypto/pem.h" /* For internal PVK and "blob" headers */
+#include "crypto/pem.h" /* For internal PVK and "blob" headers */
#include "crypto/rsa.h"
#include "prov/bio.h"
#include "prov/implementations.h"
#include "endecoder_local.h"
-struct pvk2key_ctx_st; /* Forward declaration */
+struct pvk2key_ctx_st; /* Forward declaration */
typedef int check_key_fn(void *, struct pvk2key_ctx_st *ctx);
typedef void adjust_key_fn(void *, struct pvk2key_ctx_st *ctx);
typedef void *b2i_PVK_of_bio_pw_fn(BIO *in, pem_password_cb *cb, void *u,
- OSSL_LIB_CTX *libctx, const char *propq);
+ OSSL_LIB_CTX *libctx, const char *propq);
typedef void free_key_fn(void *);
struct keytype_desc_st {
- int type; /* EVP key type */
- const char *name; /* Keytype */
+ int type; /* EVP key type */
+ const char *name; /* Keytype */
const OSSL_DISPATCH *fns; /* Keymgmt (to pilfer functions from) */
b2i_PVK_of_bio_pw_fn *read_private_key;
@@ -110,15 +110,15 @@ static int pvk2key_does_selection(void *provctx, int selection)
if (selection == 0)
return 1;
- if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
+ if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
return 1;
return 0;
}
static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct pvk2key_ctx_st *ctx = vctx;
BIO *in = ossl_bio_new_from_core_bio(ctx->provctx, cin);
@@ -131,7 +131,7 @@ static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
ctx->selection = selection;
if ((selection == 0
- || (selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
+ || (selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0)
&& ctx->desc->read_private_key != NULL) {
struct ossl_passphrase_data_st pwdata;
int err, lib, reason;
@@ -141,8 +141,8 @@ static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
goto end;
key = ctx->desc->read_private_key(in, ossl_pw_pvk_password, &pwdata,
- PROV_LIBCTX_OF(ctx->provctx),
- ctx->propq);
+ PROV_LIBCTX_OF(ctx->provctx),
+ ctx->propq);
/*
* Because the PVK API doesn't have a separate decrypt call, we need
@@ -167,7 +167,7 @@ static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
if (key != NULL && ctx->desc->adjust_key != NULL)
ctx->desc->adjust_key(key, ctx);
- next:
+next:
/*
* Indicated that we successfully decoded something, or not at all.
* Ending up "empty handed" is not an error.
@@ -186,21 +186,18 @@ static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
OSSL_PARAM params[4];
int object_type = OSSL_OBJECT_PKEY;
- params[0] =
- OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
- params[1] =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- (char *)ctx->desc->name, 0);
+ params[0] = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &object_type);
+ params[1] = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ (char *)ctx->desc->name, 0);
/* The address of the key becomes the octet string */
- params[2] =
- OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
- &key, sizeof(key));
+ params[2] = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_REFERENCE,
+ &key, sizeof(key));
params[3] = OSSL_PARAM_construct_end();
ok = data_cb(params, data_cbarg);
}
- end:
+end:
BIO_free(in);
ctx->desc->free_key(key);
@@ -208,12 +205,11 @@ static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
}
static int pvk2key_export_object(void *vctx,
- const void *reference, size_t reference_sz,
- OSSL_CALLBACK *export_cb, void *export_cbarg)
+ const void *reference, size_t reference_sz,
+ OSSL_CALLBACK *export_cb, void *export_cbarg)
{
struct pvk2key_ctx_st *ctx = vctx;
- OSSL_FUNC_keymgmt_export_fn *export =
- ossl_prov_get_keymgmt_export(ctx->desc->fns);
+ OSSL_FUNC_keymgmt_export_fn *export = ossl_prov_get_keymgmt_export(ctx->desc->fns);
void *keydata;
if (reference_sz == sizeof(keydata) && export != NULL) {
@@ -231,55 +227,57 @@ static int pvk2key_export_object(void *vctx,
/* ---------------------------------------------------------------------- */
-#define dsa_private_key_bio (b2i_PVK_of_bio_pw_fn *)b2i_DSA_PVK_bio_ex
-#define dsa_adjust NULL
-#define dsa_free (void (*)(void *))DSA_free
+#define dsa_private_key_bio (b2i_PVK_of_bio_pw_fn *)b2i_DSA_PVK_bio_ex
+#define dsa_adjust NULL
+#define dsa_free (void (*)(void *)) DSA_free
/* ---------------------------------------------------------------------- */
-#define rsa_private_key_bio (b2i_PVK_of_bio_pw_fn *)b2i_RSA_PVK_bio_ex
+#define rsa_private_key_bio (b2i_PVK_of_bio_pw_fn *)b2i_RSA_PVK_bio_ex
static void rsa_adjust(void *key, struct pvk2key_ctx_st *ctx)
{
ossl_rsa_set0_libctx(key, PROV_LIBCTX_OF(ctx->provctx));
}
-#define rsa_free (void (*)(void *))RSA_free
+#define rsa_free (void (*)(void *)) RSA_free
/* ---------------------------------------------------------------------- */
-#define IMPLEMENT_MS(KEYTYPE, keytype) \
- static const struct keytype_desc_st \
- pvk2##keytype##_desc = { \
- EVP_PKEY_##KEYTYPE, #KEYTYPE, \
- ossl_##keytype##_keymgmt_functions, \
- keytype##_private_key_bio, \
- keytype##_adjust, \
- keytype##_free \
- }; \
- static OSSL_FUNC_decoder_newctx_fn pvk2##keytype##_newctx; \
- static void *pvk2##keytype##_newctx(void *provctx) \
- { \
- return pvk2key_newctx(provctx, &pvk2##keytype##_desc); \
- } \
- const OSSL_DISPATCH \
- ossl_##pvk_to_##keytype##_decoder_functions[] = { \
- { OSSL_FUNC_DECODER_NEWCTX, \
- (void (*)(void))pvk2##keytype##_newctx }, \
- { OSSL_FUNC_DECODER_FREECTX, \
- (void (*)(void))pvk2key_freectx }, \
- { OSSL_FUNC_DECODER_DOES_SELECTION, \
- (void (*)(void))pvk2key_does_selection }, \
- { OSSL_FUNC_DECODER_DECODE, \
- (void (*)(void))pvk2key_decode }, \
- { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
- (void (*)(void))pvk2key_export_object }, \
- { OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS, \
- (void (*)(void))pvk2key_settable_ctx_params }, \
- { OSSL_FUNC_DECODER_SET_CTX_PARAMS, \
- (void (*)(void))pvk2key_set_ctx_params }, \
- OSSL_DISPATCH_END \
- }
+#define IMPLEMENT_MS(KEYTYPE, keytype) \
+ static const struct keytype_desc_st \
+ pvk2##keytype##_desc \
+ = { \
+ EVP_PKEY_##KEYTYPE, #KEYTYPE, \
+ ossl_##keytype##_keymgmt_functions, \
+ keytype##_private_key_bio, \
+ keytype##_adjust, \
+ keytype##_free \
+ }; \
+ static OSSL_FUNC_decoder_newctx_fn pvk2##keytype##_newctx; \
+ static void *pvk2##keytype##_newctx(void *provctx) \
+ { \
+ return pvk2key_newctx(provctx, &pvk2##keytype##_desc); \
+ } \
+ const OSSL_DISPATCH \
+ ossl_##pvk_to_##keytype##_decoder_functions[] \
+ = { \
+ { OSSL_FUNC_DECODER_NEWCTX, \
+ (void (*)(void))pvk2##keytype##_newctx }, \
+ { OSSL_FUNC_DECODER_FREECTX, \
+ (void (*)(void))pvk2key_freectx }, \
+ { OSSL_FUNC_DECODER_DOES_SELECTION, \
+ (void (*)(void))pvk2key_does_selection }, \
+ { OSSL_FUNC_DECODER_DECODE, \
+ (void (*)(void))pvk2key_decode }, \
+ { OSSL_FUNC_DECODER_EXPORT_OBJECT, \
+ (void (*)(void))pvk2key_export_object }, \
+ { OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS, \
+ (void (*)(void))pvk2key_settable_ctx_params }, \
+ { OSSL_FUNC_DECODER_SET_CTX_PARAMS, \
+ (void (*)(void))pvk2key_set_ctx_params }, \
+ OSSL_DISPATCH_END \
+ }
#ifndef OPENSSL_NO_DSA
IMPLEMENT_MS(DSA, dsa);
diff --git a/crypto/openssl/providers/implementations/encode_decode/decode_spki2typespki.c b/crypto/openssl/providers/implementations/encode_decode/decode_spki2typespki.c
index 8cf6d7d41ce3..5bb39fc2f754 100644
--- a/crypto/openssl/providers/implementations/encode_decode/decode_spki2typespki.c
+++ b/crypto/openssl/providers/implementations/encode_decode/decode_spki2typespki.c
@@ -75,8 +75,8 @@ static int spki2typespki_set_ctx_params(void *vctx, const OSSL_PARAM params[])
}
static int spki2typespki_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct spki2typespki_ctx_st *ctx = vctx;
unsigned char *der;
@@ -87,16 +87,16 @@ static int spki2typespki_decode(void *vctx, OSSL_CORE_BIO *cin, int selection,
return 1;
ok = ossl_spki2typespki_der_decode(der, len, selection, data_cb, data_cbarg,
- pw_cb, pw_cbarg,
- PROV_LIBCTX_OF(ctx->provctx), ctx->propq);
+ pw_cb, pw_cbarg,
+ PROV_LIBCTX_OF(ctx->provctx), ctx->propq);
OPENSSL_free(der);
return ok;
}
int ossl_spki2typespki_der_decode(unsigned char *der, long len, int selection,
- OSSL_CALLBACK *data_cb, void *data_cbarg,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg,
- OSSL_LIB_CTX *libctx, const char *propq)
+ OSSL_CALLBACK *data_cb, void *data_cbarg,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg,
+ OSSL_LIB_CTX *libctx, const char *propq)
{
const unsigned char *derp = der;
X509_PUBKEY *xpub = NULL;
@@ -122,37 +122,33 @@ int ossl_spki2typespki_der_decode(unsigned char *der, long len, int selection,
#ifndef OPENSSL_NO_EC
/* SM2 abuses the EC oid, so this could actually be SM2 */
if (OBJ_obj2nid(oid) == NID_X9_62_id_ecPublicKey
- && ossl_x509_algor_is_sm2(algor))
+ && ossl_x509_algor_is_sm2(algor))
strcpy(dataname, "SM2");
else
#endif
- if (OBJ_obj2txt(dataname, sizeof(dataname), oid, 0) <= 0)
+ if (OBJ_obj2txt(dataname, sizeof(dataname), oid, 0) <= 0)
goto end;
ossl_X509_PUBKEY_INTERNAL_free(xpub);
xpub = NULL;
- *p++ =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
- dataname, 0);
+ *p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_TYPE,
+ dataname, 0);
*p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_INPUT_TYPE,
- "DER", 0);
+ "DER", 0);
- *p++ =
- OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_STRUCTURE,
- "SubjectPublicKeyInfo",
- 0);
- *p++ =
- OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_DATA, der, len);
- *p++ =
- OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &objtype);
+ *p++ = OSSL_PARAM_construct_utf8_string(OSSL_OBJECT_PARAM_DATA_STRUCTURE,
+ "SubjectPublicKeyInfo",
+ 0);
+ *p++ = OSSL_PARAM_construct_octet_string(OSSL_OBJECT_PARAM_DATA, der, len);
+ *p++ = OSSL_PARAM_construct_int(OSSL_OBJECT_PARAM_TYPE, &objtype);
*p = OSSL_PARAM_construct_end();
ok = data_cb(params, data_cbarg);
- end:
+end:
ossl_X509_PUBKEY_INTERNAL_free(xpub);
return ok;
}
@@ -162,8 +158,8 @@ const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_der_decoder_functions[] = {
{ OSSL_FUNC_DECODER_FREECTX, (void (*)(void))spki2typespki_freectx },
{ OSSL_FUNC_DECODER_DECODE, (void (*)(void))spki2typespki_decode },
{ OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS,
- (void (*)(void))spki2typespki_settable_ctx_params },
+ (void (*)(void))spki2typespki_settable_ctx_params },
{ OSSL_FUNC_DECODER_SET_CTX_PARAMS,
- (void (*)(void))spki2typespki_set_ctx_params },
+ (void (*)(void))spki2typespki_set_ctx_params },
OSSL_DISPATCH_END
};
diff --git a/crypto/openssl/providers/implementations/encode_decode/encode_key2any.c b/crypto/openssl/providers/implementations/encode_decode/encode_key2any.c
index 67a11590034a..307b8a967311 100644
--- a/crypto/openssl/providers/implementations/encode_decode/encode_key2any.c
+++ b/crypto/openssl/providers/implementations/encode_decode/encode_key2any.c
@@ -22,7 +22,7 @@
#include <openssl/err.h>
#include <openssl/pem.h>
#include <openssl/x509.h>
-#include <openssl/pkcs12.h> /* PKCS8_encrypt() */
+#include <openssl/pkcs12.h> /* PKCS8_encrypt() */
#include <openssl/dh.h>
#include <openssl/dsa.h>
#include <openssl/ec.h>
@@ -43,7 +43,7 @@
#include "ml_kem_codecs.h"
#if defined(OPENSSL_NO_DH) && defined(OPENSSL_NO_DSA) && defined(OPENSSL_NO_EC)
-# define OPENSSL_NO_KEYPARAMS
+#define OPENSSL_NO_KEYPARAMS
#endif
typedef struct key2any_ctx_st {
@@ -62,14 +62,13 @@ typedef struct key2any_ctx_st {
typedef int check_key_type_fn(const void *key, int nid);
typedef int key_to_paramstring_fn(const void *key, int nid, int save,
- void **str, int *strtype);
+ void **str, int *strtype);
typedef int key_to_der_fn(BIO *out, const void *key,
- int key_nid, const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d, KEY2ANY_CTX *ctx);
+ int key_nid, const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d, KEY2ANY_CTX *ctx);
typedef int write_bio_of_void_fn(BIO *bp, const void *x);
-
/* Free the blob allocated during key_to_paramstring_fn */
static void free_asn1_data(int type, void *data)
{
@@ -84,9 +83,9 @@ static void free_asn1_data(int type, void *data)
}
static PKCS8_PRIV_KEY_INFO *key_to_p8info(const void *key, int key_nid,
- void *params, int params_type,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ void *params, int params_type,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
/* der, derlen store the key DER output and its length */
unsigned char *der = NULL;
@@ -97,7 +96,7 @@ static PKCS8_PRIV_KEY_INFO *key_to_p8info(const void *key, int key_nid,
if ((p8info = PKCS8_PRIV_KEY_INFO_new()) == NULL
|| (derlen = k2d(key, &der, (void *)ctx)) <= 0
|| !PKCS8_pkey_set0(p8info, OBJ_nid2obj(key_nid), 0,
- params_type, params, der, derlen)) {
+ params_type, params, der, derlen)) {
ERR_raise(ERR_LIB_PROV, ERR_R_ASN1_LIB);
PKCS8_PRIV_KEY_INFO_free(p8info);
OPENSSL_free(der);
@@ -108,7 +107,7 @@ static PKCS8_PRIV_KEY_INFO *key_to_p8info(const void *key, int key_nid,
}
static X509_SIG *p8info_to_encp8(PKCS8_PRIV_KEY_INFO *p8info,
- KEY2ANY_CTX *ctx)
+ KEY2ANY_CTX *ctx)
{
X509_SIG *p8 = NULL;
char kstr[PEM_BUFSIZE];
@@ -119,7 +118,7 @@ static X509_SIG *p8info_to_encp8(PKCS8_PRIV_KEY_INFO *p8info,
return NULL;
if (!ossl_pw_get_passphrase(kstr, sizeof(kstr), &klen, NULL, 1,
- &ctx->pwdata)) {
+ &ctx->pwdata)) {
ERR_raise(ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE);
return NULL;
}
@@ -130,12 +129,11 @@ static X509_SIG *p8info_to_encp8(PKCS8_PRIV_KEY_INFO *p8info,
}
static X509_SIG *key_to_encp8(const void *key, int key_nid,
- void *params, int params_type,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ void *params, int params_type,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
- PKCS8_PRIV_KEY_INFO *p8info =
- key_to_p8info(key, key_nid, params, params_type, k2d, ctx);
+ PKCS8_PRIV_KEY_INFO *p8info = key_to_p8info(key, key_nid, params, params_type, k2d, ctx);
X509_SIG *p8 = NULL;
if (p8info == NULL) {
@@ -148,9 +146,9 @@ static X509_SIG *key_to_encp8(const void *key, int key_nid,
}
static X509_PUBKEY *key_to_pubkey(const void *key, int key_nid,
- void *params, int params_type,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ void *params, int params_type,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
/* der, derlen store the key DER output and its length */
unsigned char *der = NULL;
@@ -158,11 +156,10 @@ static X509_PUBKEY *key_to_pubkey(const void *key, int key_nid,
/* The final X509_PUBKEY */
X509_PUBKEY *xpk = NULL;
-
if ((xpk = X509_PUBKEY_new()) == NULL
|| (derlen = k2d(key, &der, (void *)ctx)) <= 0
|| !X509_PUBKEY_set0_param(xpk, OBJ_nid2obj(key_nid),
- params_type, params, der, derlen)) {
+ params_type, params, der, derlen)) {
ERR_raise(ERR_LIB_PROV, ERR_R_X509_LIB);
X509_PUBKEY_free(xpk);
OPENSSL_free(der);
@@ -192,11 +189,11 @@ static X509_PUBKEY *key_to_pubkey(const void *key, int key_nid,
*/
static int key_to_epki_der_priv_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
@@ -206,8 +203,7 @@ static int key_to_epki_der_priv_bio(BIO *out, const void *key,
if (!ctx->cipher_intent)
return 0;
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
p8 = key_to_encp8(key, key_nid, str, strtype, k2d, ctx);
@@ -220,11 +216,11 @@ static int key_to_epki_der_priv_bio(BIO *out, const void *key,
}
static int key_to_epki_pem_priv_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
@@ -234,8 +230,7 @@ static int key_to_epki_pem_priv_bio(BIO *out, const void *key,
if (!ctx->cipher_intent)
return 0;
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
p8 = key_to_encp8(key, key_nid, str, strtype, k2d, ctx);
@@ -248,11 +243,11 @@ static int key_to_epki_pem_priv_bio(BIO *out, const void *key,
}
static int key_to_pki_der_priv_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
@@ -261,10 +256,9 @@ static int key_to_pki_der_priv_bio(BIO *out, const void *key,
if (ctx->cipher_intent)
return key_to_epki_der_priv_bio(out, key, key_nid, pemname,
- p2s, k2d, ctx);
+ p2s, k2d, ctx);
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
p8info = key_to_p8info(key, key_nid, str, strtype, k2d, ctx);
@@ -280,11 +274,11 @@ static int key_to_pki_der_priv_bio(BIO *out, const void *key,
}
static int key_to_pki_pem_priv_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
@@ -293,10 +287,9 @@ static int key_to_pki_pem_priv_bio(BIO *out, const void *key,
if (ctx->cipher_intent)
return key_to_epki_pem_priv_bio(out, key, key_nid, pemname,
- p2s, k2d, ctx);
+ p2s, k2d, ctx);
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
p8info = key_to_p8info(key, key_nid, str, strtype, k2d, ctx);
@@ -312,19 +305,18 @@ static int key_to_pki_pem_priv_bio(BIO *out, const void *key,
}
static int key_to_spki_der_pub_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
int strtype = V_ASN1_UNDEF;
X509_PUBKEY *xpk = NULL;
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
xpk = key_to_pubkey(key, key_nid, str, strtype, k2d, ctx);
@@ -338,19 +330,18 @@ static int key_to_spki_der_pub_bio(BIO *out, const void *key,
}
static int key_to_spki_pem_pub_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
int ret = 0;
void *str = NULL;
int strtype = V_ASN1_UNDEF;
X509_PUBKEY *xpk = NULL;
- if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters,
- &str, &strtype))
+ if (p2s != NULL && !p2s(key, key_nid, ctx->save_parameters, &str, &strtype))
return 0;
xpk = key_to_pubkey(key, key_nid, str, strtype, k2d, ctx);
@@ -378,11 +369,11 @@ static int key_to_spki_pem_pub_bio(BIO *out, const void *key,
* on k2d to do the complete work.
*/
static int key_to_type_specific_der_bio(BIO *out, const void *key,
- int key_nid,
- ossl_unused const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid,
+ ossl_unused const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
unsigned char *der = NULL;
int derlen;
@@ -402,64 +393,65 @@ static int key_to_type_specific_der_bio(BIO *out, const void *key,
#define key_to_type_specific_der_param_bio key_to_type_specific_der_bio
static int key_to_type_specific_pem_bio_cb(BIO *out, const void *key,
- int key_nid, const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx,
- pem_password_cb *cb, void *cbarg)
+ int key_nid, const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx,
+ pem_password_cb *cb, void *cbarg)
{
return PEM_ASN1_write_bio_ctx(k2d, (void *)ctx, pemname, out, key,
- ctx->cipher, NULL, 0, cb, cbarg) > 0;
+ ctx->cipher, NULL, 0, cb, cbarg)
+ > 0;
}
static int key_to_type_specific_pem_priv_bio(BIO *out, const void *key,
- int key_nid, const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid, const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
return key_to_type_specific_pem_bio_cb(out, key, key_nid, pemname,
- p2s, k2d, ctx,
- ossl_pw_pem_password, &ctx->pwdata);
+ p2s, k2d, ctx,
+ ossl_pw_pem_password, &ctx->pwdata);
}
static int key_to_type_specific_pem_pub_bio(BIO *out, const void *key,
- int key_nid, const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid, const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
return key_to_type_specific_pem_bio_cb(out, key, key_nid, pemname,
- p2s, k2d, ctx, NULL, NULL);
+ p2s, k2d, ctx, NULL, NULL);
}
#ifndef OPENSSL_NO_KEYPARAMS
static int key_to_type_specific_pem_param_bio(BIO *out, const void *key,
- int key_nid, const char *pemname,
- key_to_paramstring_fn *p2s,
- OSSL_i2d_of_void_ctx *k2d,
- KEY2ANY_CTX *ctx)
+ int key_nid, const char *pemname,
+ key_to_paramstring_fn *p2s,
+ OSSL_i2d_of_void_ctx *k2d,
+ KEY2ANY_CTX *ctx)
{
return key_to_type_specific_pem_bio_cb(out, key, key_nid, pemname,
- p2s, k2d, ctx, NULL, NULL);
+ p2s, k2d, ctx, NULL, NULL);
}
#endif
/* ---------------------------------------------------------------------- */
-#define k2d_NOCTX(n, f) \
- static int \
- n##_k2d(const void *key, unsigned char **pder, \
- ossl_unused void *ctx) \
- { \
- return f(key, pder); \
+#define k2d_NOCTX(n, f) \
+ static int \
+ n##_k2d(const void *key, unsigned char **pder, \
+ ossl_unused void *ctx) \
+ { \
+ return f(key, pder); \
}
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_DH
static int prepare_dh_params(const void *dh, int nid, int save,
- void **pstr, int *pstrtype)
+ void **pstr, int *pstrtype)
{
ASN1_STRING *params = ASN1_STRING_new();
@@ -486,7 +478,7 @@ static int prepare_dh_params(const void *dh, int nid, int save,
}
static int dh_spki_pub_to_der(const void *dh, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const BIGNUM *bn = NULL;
ASN1_INTEGER *pub_key = NULL;
@@ -508,7 +500,7 @@ static int dh_spki_pub_to_der(const void *dh, unsigned char **pder,
}
static int dh_pki_priv_to_der(const void *dh, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const BIGNUM *bn = NULL;
ASN1_INTEGER *priv_key = NULL;
@@ -529,11 +521,11 @@ static int dh_pki_priv_to_der(const void *dh, unsigned char **pder,
return ret;
}
-# define dh_epki_priv_to_der dh_pki_priv_to_der
+#define dh_epki_priv_to_der dh_pki_priv_to_der
static int
dh_type_specific_params_to_der(const void *dh, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
if (DH_test_flags(dh, DH_FLAG_TYPE_DHX))
return i2d_DHxparams(dh, pder);
@@ -544,28 +536,27 @@ dh_type_specific_params_to_der(const void *dh, unsigned char **pder,
* DH doesn't have i2d_DHPrivateKey or i2d_DHPublicKey, so we can't make
* corresponding functions here.
*/
-# define dh_type_specific_priv_to_der NULL
-# define dh_type_specific_pub_to_der NULL
+#define dh_type_specific_priv_to_der NULL
+#define dh_type_specific_pub_to_der NULL
static int dh_check_key_type(const void *dh, int expected_type)
{
- int type =
- DH_test_flags(dh, DH_FLAG_TYPE_DHX) ? EVP_PKEY_DHX : EVP_PKEY_DH;
+ int type = DH_test_flags(dh, DH_FLAG_TYPE_DHX) ? EVP_PKEY_DHX : EVP_PKEY_DH;
return type == expected_type;
}
-# define dh_evp_type EVP_PKEY_DH
-# define dhx_evp_type EVP_PKEY_DHX
-# define dh_pem_type "DH"
-# define dhx_pem_type "X9.42 DH"
+#define dh_evp_type EVP_PKEY_DH
+#define dhx_evp_type EVP_PKEY_DHX
+#define dh_pem_type "DH"
+#define dhx_pem_type "X9.42 DH"
#endif
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_DSA
static int encode_dsa_params(const void *dsa, int nid,
- void **pstr, int *pstrtype)
+ void **pstr, int *pstrtype)
{
ASN1_STRING *params = ASN1_STRING_new();
@@ -588,7 +579,7 @@ static int encode_dsa_params(const void *dsa, int nid,
}
static int prepare_dsa_params(const void *dsa, int nid, int save,
- void **pstr, int *pstrtype)
+ void **pstr, int *pstrtype)
{
const BIGNUM *p = DSA_get0_p(dsa);
const BIGNUM *q = DSA_get0_q(dsa);
@@ -603,7 +594,7 @@ static int prepare_dsa_params(const void *dsa, int nid, int save,
}
static int dsa_spki_pub_to_der(const void *dsa, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const BIGNUM *bn = NULL;
ASN1_INTEGER *pub_key = NULL;
@@ -625,7 +616,7 @@ static int dsa_spki_pub_to_der(const void *dsa, unsigned char **pder,
}
static int dsa_pki_priv_to_der(const void *dsa, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const BIGNUM *bn = NULL;
ASN1_INTEGER *priv_key = NULL;
@@ -647,25 +638,25 @@ static int dsa_pki_priv_to_der(const void *dsa, unsigned char **pder,
}
k2d_NOCTX(dsa_prv, i2d_DSAPrivateKey)
-k2d_NOCTX(dsa_pub, i2d_DSAPublicKey)
-k2d_NOCTX(dsa_param, i2d_DSAparams)
+ k2d_NOCTX(dsa_pub, i2d_DSAPublicKey)
+ k2d_NOCTX(dsa_param, i2d_DSAparams)
-# define dsa_epki_priv_to_der dsa_pki_priv_to_der
+#define dsa_epki_priv_to_der dsa_pki_priv_to_der
-# define dsa_type_specific_priv_to_der dsa_prv_k2d
-# define dsa_type_specific_pub_to_der dsa_pub_k2d
-# define dsa_type_specific_params_to_der dsa_param_k2d
+#define dsa_type_specific_priv_to_der dsa_prv_k2d
+#define dsa_type_specific_pub_to_der dsa_pub_k2d
+#define dsa_type_specific_params_to_der dsa_param_k2d
-# define dsa_check_key_type NULL
-# define dsa_evp_type EVP_PKEY_DSA
-# define dsa_pem_type "DSA"
+#define dsa_check_key_type NULL
+#define dsa_evp_type EVP_PKEY_DSA
+#define dsa_pem_type "DSA"
#endif
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_EC
-static int prepare_ec_explicit_params(const void *eckey,
- void **pstr, int *pstrtype)
+ static int prepare_ec_explicit_params(const void *eckey,
+ void **pstr, int *pstrtype)
{
ASN1_STRING *params = ASN1_STRING_new();
@@ -691,7 +682,7 @@ static int prepare_ec_explicit_params(const void *eckey,
* is a curve name (curve nid) to be found or not. See RFC 3279 for details.
*/
static int prepare_ec_params(const void *eckey, int nid, int save,
- void **pstr, int *pstrtype)
+ void **pstr, int *pstrtype)
{
int curve_nid;
const EC_GROUP *group = EC_KEY_get0_group(eckey);
@@ -725,7 +716,7 @@ static int prepare_ec_params(const void *eckey, int nid, int save,
}
static int ec_spki_pub_to_der(const void *eckey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
if (EC_KEY_get0_public_key(eckey) == NULL) {
ERR_raise(ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY);
@@ -735,7 +726,7 @@ static int ec_spki_pub_to_der(const void *eckey, unsigned char **pder,
}
static int ec_pki_priv_to_der(const void *veckey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
EC_KEY *eckey = (EC_KEY *)veckey;
unsigned int old_flags;
@@ -756,19 +747,19 @@ static int ec_pki_priv_to_der(const void *veckey, unsigned char **pder,
}
k2d_NOCTX(ec_param, i2d_ECParameters)
-k2d_NOCTX(ec_prv, i2d_ECPrivateKey)
+ k2d_NOCTX(ec_prv, i2d_ECPrivateKey)
-# define ec_epki_priv_to_der ec_pki_priv_to_der
+#define ec_epki_priv_to_der ec_pki_priv_to_der
-# define ec_type_specific_params_to_der ec_param_k2d
+#define ec_type_specific_params_to_der ec_param_k2d
/* No ec_type_specific_pub_to_der, there simply is no such thing */
-# define ec_type_specific_priv_to_der ec_prv_k2d
+#define ec_type_specific_priv_to_der ec_prv_k2d
-# define ec_check_key_type NULL
-# define ec_evp_type EVP_PKEY_EC
-# define ec_pem_type "EC"
+#define ec_check_key_type NULL
+#define ec_evp_type EVP_PKEY_EC
+#define ec_pem_type "EC"
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
/*
* Albeit SM2 is a slightly different algorithm than ECDSA, the key type
* encoding (in all places where an AlgorithmIdentifier is produced, such
@@ -777,18 +768,18 @@ k2d_NOCTX(ec_prv, i2d_ECPrivateKey)
* This leaves the distinction of SM2 keys to the EC group (which is found
* in AlgorithmIdentified.params).
*/
-# define sm2_evp_type ec_evp_type
-# define sm2_pem_type "SM2"
-# endif
+#define sm2_evp_type ec_evp_type
+#define sm2_pem_type "SM2"
+#endif
#endif
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_ECX
-# define prepare_ecx_params NULL
+#define prepare_ecx_params NULL
-static int ecx_spki_pub_to_der(const void *vecxkey, unsigned char **pder,
- ossl_unused void *ctx)
+ static int ecx_spki_pub_to_der(const void *vecxkey, unsigned char **pder,
+ ossl_unused void *ctx)
{
const ECX_KEY *ecxkey = vecxkey;
unsigned char *keyblob;
@@ -807,7 +798,7 @@ static int ecx_spki_pub_to_der(const void *vecxkey, unsigned char **pder,
}
static int ecx_pki_priv_to_der(const void *vecxkey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const ECX_KEY *ecxkey = vecxkey;
ASN1_OCTET_STRING oct;
@@ -831,52 +822,52 @@ static int ecx_pki_priv_to_der(const void *vecxkey, unsigned char **pder,
return keybloblen;
}
-# define ecx_epki_priv_to_der ecx_pki_priv_to_der
+#define ecx_epki_priv_to_der ecx_pki_priv_to_der
/*
* ED25519, ED448, X25519 and X448 only has PKCS#8 / SubjectPublicKeyInfo
* representation, so we don't define ecx_type_specific_[priv,pub,params]_to_der.
*/
-# define ecx_check_key_type NULL
+#define ecx_check_key_type NULL
-# define ed25519_evp_type EVP_PKEY_ED25519
-# define ed448_evp_type EVP_PKEY_ED448
-# define x25519_evp_type EVP_PKEY_X25519
-# define x448_evp_type EVP_PKEY_X448
-# define ed25519_pem_type "ED25519"
-# define ed448_pem_type "ED448"
-# define x25519_pem_type "X25519"
-# define x448_pem_type "X448"
+#define ed25519_evp_type EVP_PKEY_ED25519
+#define ed448_evp_type EVP_PKEY_ED448
+#define x25519_evp_type EVP_PKEY_X25519
+#define x448_evp_type EVP_PKEY_X448
+#define ed25519_pem_type "ED25519"
+#define ed448_pem_type "ED448"
+#define x25519_pem_type "X25519"
+#define x448_pem_type "X448"
#endif
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_ML_DSA
static int ml_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
return ossl_ml_dsa_i2d_pubkey(vkey, pder);
}
static int ml_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder,
- void *vctx)
+ void *vctx)
{
KEY2ANY_CTX *ctx = vctx;
return ossl_ml_dsa_i2d_prvkey(vkey, pder, ctx->provctx);
}
-# define ml_dsa_epki_priv_to_der ml_dsa_pki_priv_to_der
-# define prepare_ml_dsa_params NULL
-# define ml_dsa_check_key_type NULL
+#define ml_dsa_epki_priv_to_der ml_dsa_pki_priv_to_der
+#define prepare_ml_dsa_params NULL
+#define ml_dsa_check_key_type NULL
-# define ml_dsa_44_evp_type EVP_PKEY_ML_DSA_44
-# define ml_dsa_44_pem_type "ML-DSA-44"
-# define ml_dsa_65_evp_type EVP_PKEY_ML_DSA_65
-# define ml_dsa_65_pem_type "ML-DSA-65"
-# define ml_dsa_87_evp_type EVP_PKEY_ML_DSA_87
-# define ml_dsa_87_pem_type "ML-DSA-87"
+#define ml_dsa_44_evp_type EVP_PKEY_ML_DSA_44
+#define ml_dsa_44_pem_type "ML-DSA-44"
+#define ml_dsa_65_evp_type EVP_PKEY_ML_DSA_65
+#define ml_dsa_65_pem_type "ML-DSA-65"
+#define ml_dsa_87_evp_type EVP_PKEY_ML_DSA_87
+#define ml_dsa_87_pem_type "ML-DSA-87"
#endif /* OPENSSL_NO_ML_DSA */
/* ---------------------------------------------------------------------- */
@@ -884,29 +875,29 @@ static int ml_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder,
#ifndef OPENSSL_NO_ML_KEM
static int ml_kem_spki_pub_to_der(const void *vkey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
return ossl_ml_kem_i2d_pubkey(vkey, pder);
}
static int ml_kem_pki_priv_to_der(const void *vkey, unsigned char **pder,
- void *vctx)
+ void *vctx)
{
KEY2ANY_CTX *ctx = vctx;
return ossl_ml_kem_i2d_prvkey(vkey, pder, ctx->provctx);
}
-# define ml_kem_epki_priv_to_der ml_kem_pki_priv_to_der
-# define prepare_ml_kem_params NULL
-# define ml_kem_check_key_type NULL
+#define ml_kem_epki_priv_to_der ml_kem_pki_priv_to_der
+#define prepare_ml_kem_params NULL
+#define ml_kem_check_key_type NULL
-# define ml_kem_512_evp_type EVP_PKEY_ML_KEM_512
-# define ml_kem_512_pem_type "ML-KEM-512"
-# define ml_kem_768_evp_type EVP_PKEY_ML_KEM_768
-# define ml_kem_768_pem_type "ML-KEM-768"
-# define ml_kem_1024_evp_type EVP_PKEY_ML_KEM_1024
-# define ml_kem_1024_pem_type "ML-KEM-1024"
+#define ml_kem_512_evp_type EVP_PKEY_ML_KEM_512
+#define ml_kem_512_pem_type "ML-KEM-512"
+#define ml_kem_768_evp_type EVP_PKEY_ML_KEM_768
+#define ml_kem_768_pem_type "ML-KEM-768"
+#define ml_kem_1024_evp_type EVP_PKEY_ML_KEM_1024
+#define ml_kem_1024_pem_type "ML-KEM-1024"
#endif
/* ---------------------------------------------------------------------- */
@@ -918,7 +909,7 @@ static int ml_kem_pki_priv_to_der(const void *vkey, unsigned char **pder,
*/
static int prepare_rsa_params(const void *rsa, int nid, int save,
- void **pstr, int *pstrtype)
+ void **pstr, int *pstrtype)
{
const RSA_PSS_PARAMS_30 *pss = ossl_rsa_get0_pss_params_30((RSA *)rsa);
@@ -979,7 +970,7 @@ static int prepare_rsa_params(const void *rsa, int nid, int save,
*pstr = astr;
return 1;
- err:
+ err:
OPENSSL_free(str);
return 0;
}
@@ -990,20 +981,20 @@ static int prepare_rsa_params(const void *rsa, int nid, int save,
}
k2d_NOCTX(rsa_prv, i2d_RSAPrivateKey)
-k2d_NOCTX(rsa_pub, i2d_RSAPublicKey)
+ k2d_NOCTX(rsa_pub, i2d_RSAPublicKey)
/*
* RSA is extremely simple, as PKCS#1 is used for the PKCS#8 |privateKey|
* field as well as the SubjectPublicKeyInfo |subjectPublicKey| field.
*/
-#define rsa_pki_priv_to_der rsa_type_specific_priv_to_der
-#define rsa_epki_priv_to_der rsa_type_specific_priv_to_der
-#define rsa_spki_pub_to_der rsa_type_specific_pub_to_der
-#define rsa_type_specific_priv_to_der rsa_prv_k2d
-#define rsa_type_specific_pub_to_der rsa_pub_k2d
+#define rsa_pki_priv_to_der rsa_type_specific_priv_to_der
+#define rsa_epki_priv_to_der rsa_type_specific_priv_to_der
+#define rsa_spki_pub_to_der rsa_type_specific_pub_to_der
+#define rsa_type_specific_priv_to_der rsa_prv_k2d
+#define rsa_type_specific_pub_to_der rsa_pub_k2d
#define rsa_type_specific_params_to_der NULL
-static int rsa_check_key_type(const void *rsa, int expected_type)
+ static int rsa_check_key_type(const void *rsa, int expected_type)
{
switch (RSA_test_flags(rsa, RSA_FLAG_TYPE_MASK)) {
case RSA_FLAG_TYPE_RSA:
@@ -1016,18 +1007,18 @@ static int rsa_check_key_type(const void *rsa, int expected_type)
return EVP_PKEY_NONE;
}
-#define rsa_evp_type EVP_PKEY_RSA
-#define rsapss_evp_type EVP_PKEY_RSA_PSS
-#define rsa_pem_type "RSA"
-#define rsapss_pem_type "RSA-PSS"
+#define rsa_evp_type EVP_PKEY_RSA
+#define rsapss_evp_type EVP_PKEY_RSA_PSS
+#define rsa_pem_type "RSA"
+#define rsapss_pem_type "RSA-PSS"
/* ---------------------------------------------------------------------- */
#ifndef OPENSSL_NO_SLH_DSA
-# define prepare_slh_dsa_params NULL
+#define prepare_slh_dsa_params NULL
static int slh_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const SLH_DSA_KEY *key = vkey;
uint8_t *key_blob;
@@ -1047,7 +1038,7 @@ static int slh_dsa_spki_pub_to_der(const void *vkey, unsigned char **pder,
}
static int slh_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder,
- ossl_unused void *ctx)
+ ossl_unused void *ctx)
{
const SLH_DSA_KEY *key = vkey;
size_t len;
@@ -1059,52 +1050,52 @@ static int slh_dsa_pki_priv_to_der(const void *vkey, unsigned char **pder,
len = ossl_slh_dsa_key_get_priv_len(key);
if (pder != NULL
- && ((*pder = OPENSSL_memdup(ossl_slh_dsa_key_get_priv(key), len)) == NULL))
+ && ((*pder = OPENSSL_memdup(ossl_slh_dsa_key_get_priv(key), len)) == NULL))
return 0;
return len;
}
-# define slh_dsa_epki_priv_to_der slh_dsa_pki_priv_to_der
+#define slh_dsa_epki_priv_to_der slh_dsa_pki_priv_to_der
/* SLH_DSA only has PKCS#8 / SubjectPublicKeyInfo representations. */
-# define slh_dsa_check_key_type NULL
-# define slh_dsa_sha2_128s_evp_type EVP_PKEY_SLH_DSA_SHA2_128S
-# define slh_dsa_sha2_128f_evp_type EVP_PKEY_SLH_DSA_SHA2_128F
-# define slh_dsa_sha2_192s_evp_type EVP_PKEY_SLH_DSA_SHA2_192S
-# define slh_dsa_sha2_192f_evp_type EVP_PKEY_SLH_DSA_SHA2_192F
-# define slh_dsa_sha2_256s_evp_type EVP_PKEY_SLH_DSA_SHA2_256S
-# define slh_dsa_sha2_256f_evp_type EVP_PKEY_SLH_DSA_SHA2_256F
-# define slh_dsa_shake_128s_evp_type EVP_PKEY_SLH_DSA_SHAKE_128S
-# define slh_dsa_shake_128f_evp_type EVP_PKEY_SLH_DSA_SHAKE_128F
-# define slh_dsa_shake_192s_evp_type EVP_PKEY_SLH_DSA_SHAKE_192S
-# define slh_dsa_shake_192f_evp_type EVP_PKEY_SLH_DSA_SHAKE_192F
-# define slh_dsa_shake_256s_evp_type EVP_PKEY_SLH_DSA_SHAKE_256S
-# define slh_dsa_shake_256f_evp_type EVP_PKEY_SLH_DSA_SHAKE_256F
-# define slh_dsa_sha2_128s_input_type "SLH-DSA-SHA2-128s"
-# define slh_dsa_sha2_128f_input_type "SLH-DSA-SHA2-128f"
-# define slh_dsa_sha2_192s_input_type "SLH-DSA-SHA2-192s"
-# define slh_dsa_sha2_192f_input_type "SLH-DSA-SHA2-192f"
-# define slh_dsa_sha2_256s_input_type "SLH-DSA-SHA2-256s"
-# define slh_dsa_sha2_256f_input_type "SLH-DSA-SHA2-256f"
-# define slh_dsa_shake_128s_input_type "SLH-DSA-SHAKE-128s"
-# define slh_dsa_shake_128f_input_type "SLH-DSA-SHAKE-128f"
-# define slh_dsa_shake_192s_input_type "SLH-DSA-SHAKE-192s"
-# define slh_dsa_shake_192f_input_type "SLH-DSA-SHAKE-192f"
-# define slh_dsa_shake_256s_input_type "SLH-DSA-SHAKE-256s"
-# define slh_dsa_shake_256f_input_type "SLH-DSA-SHAKE-256f"
-# define slh_dsa_sha2_128s_pem_type "SLH-DSA-SHA2-128s"
-# define slh_dsa_sha2_128f_pem_type "SLH-DSA-SHA2-128f"
-# define slh_dsa_sha2_192s_pem_type "SLH-DSA-SHA2-192s"
-# define slh_dsa_sha2_192f_pem_type "SLH-DSA-SHA2-192f"
-# define slh_dsa_sha2_256s_pem_type "SLH-DSA-SHA2-256s"
-# define slh_dsa_sha2_256f_pem_type "SLH-DSA-SHA2-256f"
-# define slh_dsa_shake_128s_pem_type "SLH-DSA-SHAKE-128s"
-# define slh_dsa_shake_128f_pem_type "SLH-DSA-SHAKE-128f"
-# define slh_dsa_shake_192s_pem_type "SLH-DSA-SHAKE-192s"
-# define slh_dsa_shake_192f_pem_type "SLH-DSA-SHAKE-192f"
-# define slh_dsa_shake_256s_pem_type "SLH-DSA-SHAKE-256s"
-# define slh_dsa_shake_256f_pem_type "SLH-DSA-SHAKE-256f"
+#define slh_dsa_check_key_type NULL
+#define slh_dsa_sha2_128s_evp_type EVP_PKEY_SLH_DSA_SHA2_128S
+#define slh_dsa_sha2_128f_evp_type EVP_PKEY_SLH_DSA_SHA2_128F
+#define slh_dsa_sha2_192s_evp_type EVP_PKEY_SLH_DSA_SHA2_192S
+#define slh_dsa_sha2_192f_evp_type EVP_PKEY_SLH_DSA_SHA2_192F
+#define slh_dsa_sha2_256s_evp_type EVP_PKEY_SLH_DSA_SHA2_256S
+#define slh_dsa_sha2_256f_evp_type EVP_PKEY_SLH_DSA_SHA2_256F
+#define slh_dsa_shake_128s_evp_type EVP_PKEY_SLH_DSA_SHAKE_128S
+#define slh_dsa_shake_128f_evp_type EVP_PKEY_SLH_DSA_SHAKE_128F
+#define slh_dsa_shake_192s_evp_type EVP_PKEY_SLH_DSA_SHAKE_192S
+#define slh_dsa_shake_192f_evp_type EVP_PKEY_SLH_DSA_SHAKE_192F
+#define slh_dsa_shake_256s_evp_type EVP_PKEY_SLH_DSA_SHAKE_256S
+#define slh_dsa_shake_256f_evp_type EVP_PKEY_SLH_DSA_SHAKE_256F
+#define slh_dsa_sha2_128s_input_type "SLH-DSA-SHA2-128s"
+#define slh_dsa_sha2_128f_input_type "SLH-DSA-SHA2-128f"
+#define slh_dsa_sha2_192s_input_type "SLH-DSA-SHA2-192s"
+#define slh_dsa_sha2_192f_input_type "SLH-DSA-SHA2-192f"
+#define slh_dsa_sha2_256s_input_type "SLH-DSA-SHA2-256s"
+#define slh_dsa_sha2_256f_input_type "SLH-DSA-SHA2-256f"
+#define slh_dsa_shake_128s_input_type "SLH-DSA-SHAKE-128s"
+#define slh_dsa_shake_128f_input_type "SLH-DSA-SHAKE-128f"
+#define slh_dsa_shake_192s_input_type "SLH-DSA-SHAKE-192s"
+#define slh_dsa_shake_192f_input_type "SLH-DSA-SHAKE-192f"
+#define slh_dsa_shake_256s_input_type "SLH-DSA-SHAKE-256s"
+#define slh_dsa_shake_256f_input_type "SLH-DSA-SHAKE-256f"
+#define slh_dsa_sha2_128s_pem_type "SLH-DSA-SHA2-128s"
+#define slh_dsa_sha2_128f_pem_type "SLH-DSA-SHA2-128f"
+#define slh_dsa_sha2_192s_pem_type "SLH-DSA-SHA2-192s"
+#define slh_dsa_sha2_192f_pem_type "SLH-DSA-SHA2-192f"
+#define slh_dsa_sha2_256s_pem_type "SLH-DSA-SHA2-256s"
+#define slh_dsa_sha2_256f_pem_type "SLH-DSA-SHA2-256f"
+#define slh_dsa_shake_128s_pem_type "SLH-DSA-SHAKE-128s"
+#define slh_dsa_shake_128f_pem_type "SLH-DSA-SHAKE-128f"
+#define slh_dsa_shake_192s_pem_type "SLH-DSA-SHAKE-192s"
+#define slh_dsa_shake_192f_pem_type "SLH-DSA-SHAKE-192f"
+#define slh_dsa_shake_256s_pem_type "SLH-DSA-SHAKE-256s"
+#define slh_dsa_shake_256f_pem_type "SLH-DSA-SHAKE-256f"
#endif /* OPENSSL_NO_SLH_DSA */
/* ---------------------------------------------------------------------- */
@@ -1148,12 +1139,9 @@ static int key2any_set_ctx_params(void *vctx, const OSSL_PARAM params[])
{
KEY2ANY_CTX *ctx = vctx;
OSSL_LIB_CTX *libctx = ossl_prov_ctx_get0_libctx(ctx->provctx);
- const OSSL_PARAM *cipherp =
- OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_CIPHER);
- const OSSL_PARAM *propsp =
- OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_PROPERTIES);
- const OSSL_PARAM *save_paramsp =
- OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_SAVE_PARAMETERS);
+ const OSSL_PARAM *cipherp = OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_CIPHER);
+ const OSSL_PARAM *propsp = OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_PROPERTIES);
+ const OSSL_PARAM *save_paramsp = OSSL_PARAM_locate_const(params, OSSL_ENCODER_PARAM_SAVE_PARAMETERS);
if (cipherp != NULL) {
const char *ciphername = NULL;
@@ -1168,8 +1156,7 @@ static int key2any_set_ctx_params(void *vctx, const OSSL_PARAM params[])
ctx->cipher = NULL;
ctx->cipher_intent = ciphername != NULL;
if (ciphername != NULL
- && ((ctx->cipher =
- EVP_CIPHER_fetch(libctx, ciphername, props)) == NULL))
+ && ((ctx->cipher = EVP_CIPHER_fetch(libctx, ciphername, props)) == NULL))
return 0;
}
@@ -1214,26 +1201,25 @@ static int key2any_check_selection(int selection, int selection_mask)
}
static int key2any_encode(KEY2ANY_CTX *ctx, OSSL_CORE_BIO *cout,
- const void *key, int type, const char *pemname,
- check_key_type_fn *checker,
- key_to_der_fn *writer,
- OSSL_PASSPHRASE_CALLBACK *pwcb, void *pwcbarg,
- key_to_paramstring_fn *key2paramstring,
- OSSL_i2d_of_void_ctx *key2der)
+ const void *key, int type, const char *pemname,
+ check_key_type_fn *checker,
+ key_to_der_fn *writer,
+ OSSL_PASSPHRASE_CALLBACK *pwcb, void *pwcbarg,
+ key_to_paramstring_fn *key2paramstring,
+ OSSL_i2d_of_void_ctx *key2der)
{
int ret = 0;
if (key == NULL) {
ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_NULL_PARAMETER);
} else if (writer != NULL
- && (checker == NULL || checker(key, type))) {
+ && (checker == NULL || checker(key, type))) {
BIO *out = ossl_bio_new_from_core_bio(ctx->provctx, cout);
if (out != NULL
&& (pwcb == NULL
|| ossl_pw_set_ossl_passphrase_cb(&ctx->pwdata, pwcb, pwcbarg)))
- ret =
- writer(out, key, type, pemname, key2paramstring, key2der, ctx);
+ ret = writer(out, key, type, pemname, key2paramstring, key2der, ctx);
BIO_free(out);
} else {
@@ -1243,34 +1229,34 @@ static int key2any_encode(KEY2ANY_CTX *ctx, OSSL_CORE_BIO *cout,
}
#define DO_PRIVATE_KEY_selection_mask OSSL_KEYMGMT_SELECT_PRIVATE_KEY
-#define DO_PRIVATE_KEY(impl, type, kind, output) \
- if ((selection & DO_PRIVATE_KEY_selection_mask) != 0) \
- return key2any_encode(ctx, cout, key, impl##_evp_type, \
- impl##_pem_type " PRIVATE KEY", \
- type##_check_key_type, \
- key_to_##kind##_##output##_priv_bio, \
- cb, cbarg, prepare_##type##_params, \
- type##_##kind##_priv_to_der);
+#define DO_PRIVATE_KEY(impl, type, kind, output) \
+ if ((selection & DO_PRIVATE_KEY_selection_mask) != 0) \
+ return key2any_encode(ctx, cout, key, impl##_evp_type, \
+ impl##_pem_type " PRIVATE KEY", \
+ type##_check_key_type, \
+ key_to_##kind##_##output##_priv_bio, \
+ cb, cbarg, prepare_##type##_params, \
+ type##_##kind##_priv_to_der);
#define DO_PUBLIC_KEY_selection_mask OSSL_KEYMGMT_SELECT_PUBLIC_KEY
-#define DO_PUBLIC_KEY(impl, type, kind, output) \
- if ((selection & DO_PUBLIC_KEY_selection_mask) != 0) \
- return key2any_encode(ctx, cout, key, impl##_evp_type, \
- impl##_pem_type " PUBLIC KEY", \
- type##_check_key_type, \
- key_to_##kind##_##output##_pub_bio, \
- cb, cbarg, prepare_##type##_params, \
- type##_##kind##_pub_to_der);
+#define DO_PUBLIC_KEY(impl, type, kind, output) \
+ if ((selection & DO_PUBLIC_KEY_selection_mask) != 0) \
+ return key2any_encode(ctx, cout, key, impl##_evp_type, \
+ impl##_pem_type " PUBLIC KEY", \
+ type##_check_key_type, \
+ key_to_##kind##_##output##_pub_bio, \
+ cb, cbarg, prepare_##type##_params, \
+ type##_##kind##_pub_to_der);
#define DO_PARAMETERS_selection_mask OSSL_KEYMGMT_SELECT_ALL_PARAMETERS
-#define DO_PARAMETERS(impl, type, kind, output) \
- if ((selection & DO_PARAMETERS_selection_mask) != 0) \
- return key2any_encode(ctx, cout, key, impl##_evp_type, \
- impl##_pem_type " PARAMETERS", \
- type##_check_key_type, \
- key_to_##kind##_##output##_param_bio, \
- NULL, NULL, NULL, \
- type##_##kind##_params_to_der);
+#define DO_PARAMETERS(impl, type, kind, output) \
+ if ((selection & DO_PARAMETERS_selection_mask) != 0) \
+ return key2any_encode(ctx, cout, key, impl##_evp_type, \
+ impl##_pem_type " PARAMETERS", \
+ type##_check_key_type, \
+ key_to_##kind##_##output##_param_bio, \
+ NULL, NULL, NULL, \
+ type##_##kind##_params_to_der);
/*-
* Implement the kinds of output structure that can be produced. They are
@@ -1306,16 +1292,16 @@ static int key2any_encode(KEY2ANY_CTX *ctx, OSSL_CORE_BIO *cout,
* passphrase callback has been passed to them.
*/
#define DO_PrivateKeyInfo_selection_mask DO_PRIVATE_KEY_selection_mask
-#define DO_PrivateKeyInfo(impl, type, output) \
+#define DO_PrivateKeyInfo(impl, type, output) \
DO_PRIVATE_KEY(impl, type, pki, output)
#define DO_EncryptedPrivateKeyInfo_selection_mask DO_PRIVATE_KEY_selection_mask
-#define DO_EncryptedPrivateKeyInfo(impl, type, output) \
+#define DO_EncryptedPrivateKeyInfo(impl, type, output) \
DO_PRIVATE_KEY(impl, type, epki, output)
/* SubjectPublicKeyInfo is a structure for public keys only */
#define DO_SubjectPublicKeyInfo_selection_mask DO_PUBLIC_KEY_selection_mask
-#define DO_SubjectPublicKeyInfo(impl, type, output) \
+#define DO_SubjectPublicKeyInfo(impl, type, output) \
DO_PUBLIC_KEY(impl, type, spki, output)
/*
@@ -1334,23 +1320,23 @@ static int key2any_encode(KEY2ANY_CTX *ctx, OSSL_CORE_BIO *cout,
* except public key
*/
#define DO_type_specific_params_selection_mask DO_PARAMETERS_selection_mask
-#define DO_type_specific_params(impl, type, output) \
+#define DO_type_specific_params(impl, type, output) \
DO_PARAMETERS(impl, type, type_specific, output)
-#define DO_type_specific_keypair_selection_mask \
- ( DO_PRIVATE_KEY_selection_mask | DO_PUBLIC_KEY_selection_mask )
-#define DO_type_specific_keypair(impl, type, output) \
- DO_PRIVATE_KEY(impl, type, type_specific, output) \
+#define DO_type_specific_keypair_selection_mask \
+ (DO_PRIVATE_KEY_selection_mask | DO_PUBLIC_KEY_selection_mask)
+#define DO_type_specific_keypair(impl, type, output) \
+ DO_PRIVATE_KEY(impl, type, type_specific, output) \
DO_PUBLIC_KEY(impl, type, type_specific, output)
-#define DO_type_specific_selection_mask \
- ( DO_type_specific_keypair_selection_mask \
- | DO_type_specific_params_selection_mask )
-#define DO_type_specific(impl, type, output) \
- DO_type_specific_keypair(impl, type, output) \
- DO_type_specific_params(impl, type, output)
+#define DO_type_specific_selection_mask \
+ (DO_type_specific_keypair_selection_mask \
+ | DO_type_specific_params_selection_mask)
+#define DO_type_specific(impl, type, output) \
+ DO_type_specific_keypair(impl, type, output) \
+ DO_type_specific_params(impl, type, output)
#define DO_type_specific_no_pub_selection_mask \
- ( DO_PRIVATE_KEY_selection_mask | DO_PARAMETERS_selection_mask)
-#define DO_type_specific_no_pub(impl, type, output) \
- DO_PRIVATE_KEY(impl, type, type_specific, output) \
+ (DO_PRIVATE_KEY_selection_mask | DO_PARAMETERS_selection_mask)
+#define DO_type_specific_no_pub(impl, type, output) \
+ DO_PRIVATE_KEY(impl, type, type_specific, output) \
DO_type_specific_params(impl, type, output)
/*
@@ -1409,71 +1395,72 @@ static int key2any_encode(KEY2ANY_CTX *ctx, OSSL_CORE_BIO *cout,
*
* ossl_##impl##_to_##kind##_##output##_encoder_functions
*/
-#define MAKE_ENCODER(impl, type, kind, output) \
- static OSSL_FUNC_encoder_import_object_fn \
- impl##_to_##kind##_##output##_import_object; \
- static OSSL_FUNC_encoder_free_object_fn \
- impl##_to_##kind##_##output##_free_object; \
- static OSSL_FUNC_encoder_encode_fn \
- impl##_to_##kind##_##output##_encode; \
- \
- static void * \
- impl##_to_##kind##_##output##_import_object(void *vctx, int selection, \
- const OSSL_PARAM params[]) \
- { \
- KEY2ANY_CTX *ctx = vctx; \
- \
- return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
- ctx->provctx, selection, params); \
- } \
- static void impl##_to_##kind##_##output##_free_object(void *key) \
- { \
- ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
- } \
- static int impl##_to_##kind##_##output##_does_selection(void *ctx, \
- int selection) \
- { \
- return key2any_check_selection(selection, \
- DO_##kind##_selection_mask); \
- } \
- static int \
- impl##_to_##kind##_##output##_encode(void *ctx, OSSL_CORE_BIO *cout, \
- const void *key, \
- const OSSL_PARAM key_abstract[], \
- int selection, \
- OSSL_PASSPHRASE_CALLBACK *cb, \
- void *cbarg) \
- { \
- /* We don't deal with abstract objects */ \
- if (key_abstract != NULL) { \
- ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
- return 0; \
- } \
- DO_##kind(impl, type, output) \
- \
- ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
- return 0; \
- } \
- const OSSL_DISPATCH \
- ossl_##impl##_to_##kind##_##output##_encoder_functions[] = { \
- { OSSL_FUNC_ENCODER_NEWCTX, \
- (void (*)(void))key2any_newctx }, \
- { OSSL_FUNC_ENCODER_FREECTX, \
- (void (*)(void))key2any_freectx }, \
- { OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS, \
- (void (*)(void))key2any_settable_ctx_params }, \
- { OSSL_FUNC_ENCODER_SET_CTX_PARAMS, \
- (void (*)(void))key2any_set_ctx_params }, \
- { OSSL_FUNC_ENCODER_DOES_SELECTION, \
- (void (*)(void))impl##_to_##kind##_##output##_does_selection }, \
- { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
- (void (*)(void))impl##_to_##kind##_##output##_import_object }, \
- { OSSL_FUNC_ENCODER_FREE_OBJECT, \
- (void (*)(void))impl##_to_##kind##_##output##_free_object }, \
- { OSSL_FUNC_ENCODER_ENCODE, \
- (void (*)(void))impl##_to_##kind##_##output##_encode }, \
- OSSL_DISPATCH_END \
- }
+#define MAKE_ENCODER(impl, type, kind, output) \
+ static OSSL_FUNC_encoder_import_object_fn \
+ impl##_to_##kind##_##output##_import_object; \
+ static OSSL_FUNC_encoder_free_object_fn \
+ impl##_to_##kind##_##output##_free_object; \
+ static OSSL_FUNC_encoder_encode_fn \
+ impl##_to_##kind##_##output##_encode; \
+ \
+ static void * \
+ impl##_to_##kind##_##output##_import_object(void *vctx, int selection, \
+ const OSSL_PARAM params[]) \
+ { \
+ KEY2ANY_CTX *ctx = vctx; \
+ \
+ return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
+ ctx->provctx, selection, params); \
+ } \
+ static void impl##_to_##kind##_##output##_free_object(void *key) \
+ { \
+ ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
+ } \
+ static int impl##_to_##kind##_##output##_does_selection(void *ctx, \
+ int selection) \
+ { \
+ return key2any_check_selection(selection, \
+ DO_##kind##_selection_mask); \
+ } \
+ static int \
+ impl##_to_##kind##_##output##_encode(void *ctx, OSSL_CORE_BIO *cout, \
+ const void *key, \
+ const OSSL_PARAM key_abstract[], \
+ int selection, \
+ OSSL_PASSPHRASE_CALLBACK *cb, \
+ void *cbarg) \
+ { \
+ /* We don't deal with abstract objects */ \
+ if (key_abstract != NULL) { \
+ ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
+ return 0; \
+ } \
+ DO_##kind(impl, type, output) \
+ \
+ ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
+ return 0; \
+ } \
+ const OSSL_DISPATCH \
+ ossl_##impl##_to_##kind##_##output##_encoder_functions[] \
+ = { \
+ { OSSL_FUNC_ENCODER_NEWCTX, \
+ (void (*)(void))key2any_newctx }, \
+ { OSSL_FUNC_ENCODER_FREECTX, \
+ (void (*)(void))key2any_freectx }, \
+ { OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS, \
+ (void (*)(void))key2any_settable_ctx_params }, \
+ { OSSL_FUNC_ENCODER_SET_CTX_PARAMS, \
+ (void (*)(void))key2any_set_ctx_params }, \
+ { OSSL_FUNC_ENCODER_DOES_SELECTION, \
+ (void (*)(void))impl##_to_##kind##_##output##_does_selection }, \
+ { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
+ (void (*)(void))impl##_to_##kind##_##output##_import_object }, \
+ { OSSL_FUNC_ENCODER_FREE_OBJECT, \
+ (void (*)(void))impl##_to_##kind##_##output##_free_object }, \
+ { OSSL_FUNC_ENCODER_ENCODE, \
+ (void (*)(void))impl##_to_##kind##_##output##_encode }, \
+ OSSL_DISPATCH_END \
+ }
/*
* Replacements for i2d_{TYPE}PrivateKey, i2d_{TYPE}PublicKey,
@@ -1489,9 +1476,9 @@ MAKE_ENCODER(dsa, dsa, type_specific, der);
#endif
#ifndef OPENSSL_NO_EC
MAKE_ENCODER(ec, ec, type_specific_no_pub, der);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_ENCODER(sm2, ec, type_specific_no_pub, der);
-# endif
+#endif
#endif
/*
@@ -1508,9 +1495,9 @@ MAKE_ENCODER(dsa, dsa, type_specific, pem);
#endif
#ifndef OPENSSL_NO_EC
MAKE_ENCODER(ec, ec, type_specific_no_pub, pem);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_ENCODER(sm2, ec, type_specific_no_pub, pem);
-# endif
+#endif
#endif
/*
@@ -1562,15 +1549,15 @@ MAKE_ENCODER(ec, ec, PrivateKeyInfo, der);
MAKE_ENCODER(ec, ec, PrivateKeyInfo, pem);
MAKE_ENCODER(ec, ec, SubjectPublicKeyInfo, der);
MAKE_ENCODER(ec, ec, SubjectPublicKeyInfo, pem);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_ENCODER(sm2, ec, EncryptedPrivateKeyInfo, der);
MAKE_ENCODER(sm2, ec, EncryptedPrivateKeyInfo, pem);
MAKE_ENCODER(sm2, ec, PrivateKeyInfo, der);
MAKE_ENCODER(sm2, ec, PrivateKeyInfo, pem);
MAKE_ENCODER(sm2, ec, SubjectPublicKeyInfo, der);
MAKE_ENCODER(sm2, ec, SubjectPublicKeyInfo, pem);
-# endif
-# ifndef OPENSSL_NO_ECX
+#endif
+#ifndef OPENSSL_NO_ECX
MAKE_ENCODER(ed25519, ecx, EncryptedPrivateKeyInfo, der);
MAKE_ENCODER(ed25519, ecx, EncryptedPrivateKeyInfo, pem);
MAKE_ENCODER(ed25519, ecx, PrivateKeyInfo, der);
@@ -1595,7 +1582,7 @@ MAKE_ENCODER(x448, ecx, PrivateKeyInfo, der);
MAKE_ENCODER(x448, ecx, PrivateKeyInfo, pem);
MAKE_ENCODER(x448, ecx, SubjectPublicKeyInfo, der);
MAKE_ENCODER(x448, ecx, SubjectPublicKeyInfo, pem);
-# endif
+#endif
#endif
#ifndef OPENSSL_NO_SLH_DSA
MAKE_ENCODER(slh_dsa_sha2_128s, slh_dsa, EncryptedPrivateKeyInfo, der);
@@ -1718,10 +1705,10 @@ MAKE_ENCODER(dsa, dsa, DSA, pem);
#ifndef OPENSSL_NO_EC
MAKE_ENCODER(ec, ec, EC, der);
MAKE_ENCODER(ec, ec, EC, pem);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_ENCODER(sm2, ec, SM2, der);
MAKE_ENCODER(sm2, ec, SM2, pem);
-# endif
+#endif
#endif
/* Convenience structure names */
diff --git a/crypto/openssl/providers/implementations/encode_decode/encode_key2blob.c b/crypto/openssl/providers/implementations/encode_decode/encode_key2blob.c
index 29e72faa63de..437bf022d62b 100644
--- a/crypto/openssl/providers/implementations/encode_decode/encode_key2blob.c
+++ b/crypto/openssl/providers/implementations/encode_decode/encode_key2blob.c
@@ -27,7 +27,7 @@
#include "endecoder_local.h"
static int write_blob(void *provctx, OSSL_CORE_BIO *cout,
- void *data, int len)
+ void *data, int len)
{
BIO *out = ossl_bio_new_from_core_bio(provctx, cout);
int ret;
@@ -86,7 +86,7 @@ static int key2blob_check_selection(int selection, int selection_mask)
}
static int key2blob_encode(void *vctx, const void *key, int selection,
- OSSL_CORE_BIO *cout)
+ OSSL_CORE_BIO *cout)
{
int pubkey_len = 0, ok = 0;
unsigned char *pubkey = NULL;
@@ -118,62 +118,62 @@ static int key2blob_encode(void *vctx, const void *key, int selection,
* EVP_PKEY_##selection_name are convenience macros that combine "typical"
* OSSL_KEYMGMT_SELECT_ macros for a certain type of EVP_PKEY content.
*/
-#define MAKE_BLOB_ENCODER(impl, type, selection_name) \
- static OSSL_FUNC_encoder_import_object_fn \
- impl##2blob_import_object; \
- static OSSL_FUNC_encoder_free_object_fn impl##2blob_free_object; \
- static OSSL_FUNC_encoder_does_selection_fn \
- impl##2blob_does_selection; \
- static OSSL_FUNC_encoder_encode_fn impl##2blob_encode; \
- \
- static void *impl##2blob_import_object(void *ctx, int selection, \
- const OSSL_PARAM params[]) \
- { \
- return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
- ctx, selection, params); \
- } \
- static void impl##2blob_free_object(void *key) \
- { \
- ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
- } \
- static int impl##2blob_does_selection(void *ctx, int selection) \
- { \
- return key2blob_check_selection(selection, \
- EVP_PKEY_##selection_name); \
- } \
- static int impl##2blob_encode(void *vctx, OSSL_CORE_BIO *cout, \
- const void *key, \
- const OSSL_PARAM key_abstract[], \
- int selection, \
- OSSL_PASSPHRASE_CALLBACK *cb, \
- void *cbarg) \
- { \
- /* We don't deal with abstract objects */ \
- if (key_abstract != NULL) { \
- ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
- return 0; \
- } \
- return key2blob_encode(vctx, key, selection, cout); \
- } \
- const OSSL_DISPATCH ossl_##impl##_to_blob_encoder_functions[] = { \
- { OSSL_FUNC_ENCODER_NEWCTX, \
- (void (*)(void))key2blob_newctx }, \
- { OSSL_FUNC_ENCODER_FREECTX, \
- (void (*)(void))key2blob_freectx }, \
- { OSSL_FUNC_ENCODER_DOES_SELECTION, \
- (void (*)(void))impl##2blob_does_selection }, \
- { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
- (void (*)(void))impl##2blob_import_object }, \
- { OSSL_FUNC_ENCODER_FREE_OBJECT, \
- (void (*)(void))impl##2blob_free_object }, \
- { OSSL_FUNC_ENCODER_ENCODE, \
- (void (*)(void))impl##2blob_encode }, \
- OSSL_DISPATCH_END \
+#define MAKE_BLOB_ENCODER(impl, type, selection_name) \
+ static OSSL_FUNC_encoder_import_object_fn \
+ impl##2blob_import_object; \
+ static OSSL_FUNC_encoder_free_object_fn impl##2blob_free_object; \
+ static OSSL_FUNC_encoder_does_selection_fn \
+ impl##2blob_does_selection; \
+ static OSSL_FUNC_encoder_encode_fn impl##2blob_encode; \
+ \
+ static void *impl##2blob_import_object(void *ctx, int selection, \
+ const OSSL_PARAM params[]) \
+ { \
+ return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
+ ctx, selection, params); \
+ } \
+ static void impl##2blob_free_object(void *key) \
+ { \
+ ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
+ } \
+ static int impl##2blob_does_selection(void *ctx, int selection) \
+ { \
+ return key2blob_check_selection(selection, \
+ EVP_PKEY_##selection_name); \
+ } \
+ static int impl##2blob_encode(void *vctx, OSSL_CORE_BIO *cout, \
+ const void *key, \
+ const OSSL_PARAM key_abstract[], \
+ int selection, \
+ OSSL_PASSPHRASE_CALLBACK *cb, \
+ void *cbarg) \
+ { \
+ /* We don't deal with abstract objects */ \
+ if (key_abstract != NULL) { \
+ ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
+ return 0; \
+ } \
+ return key2blob_encode(vctx, key, selection, cout); \
+ } \
+ const OSSL_DISPATCH ossl_##impl##_to_blob_encoder_functions[] = { \
+ { OSSL_FUNC_ENCODER_NEWCTX, \
+ (void (*)(void))key2blob_newctx }, \
+ { OSSL_FUNC_ENCODER_FREECTX, \
+ (void (*)(void))key2blob_freectx }, \
+ { OSSL_FUNC_ENCODER_DOES_SELECTION, \
+ (void (*)(void))impl##2blob_does_selection }, \
+ { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
+ (void (*)(void))impl##2blob_import_object }, \
+ { OSSL_FUNC_ENCODER_FREE_OBJECT, \
+ (void (*)(void))impl##2blob_free_object }, \
+ { OSSL_FUNC_ENCODER_ENCODE, \
+ (void (*)(void))impl##2blob_encode }, \
+ OSSL_DISPATCH_END \
}
#ifndef OPENSSL_NO_EC
MAKE_BLOB_ENCODER(ec, ec, PUBLIC_KEY);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_BLOB_ENCODER(sm2, ec, PUBLIC_KEY);
-# endif
+#endif
#endif
diff --git a/crypto/openssl/providers/implementations/encode_decode/encode_key2ms.c b/crypto/openssl/providers/implementations/encode_decode/encode_key2ms.c
index 1f21a5129615..362a806589e6 100644
--- a/crypto/openssl/providers/implementations/encode_decode/encode_key2ms.c
+++ b/crypto/openssl/providers/implementations/encode_decode/encode_key2ms.c
@@ -18,7 +18,7 @@
#include <openssl/core_names.h>
#include <openssl/params.h>
#include <openssl/err.h>
-#include <openssl/pem.h> /* Functions for writing MSBLOB and PVK */
+#include <openssl/pem.h> /* Functions for writing MSBLOB and PVK */
#include <openssl/dsa.h>
#include "internal/passphrase.h"
#include "crypto/rsa.h"
@@ -36,7 +36,7 @@ struct key2ms_ctx_st {
};
static int write_msblob(struct key2ms_ctx_st *ctx, OSSL_CORE_BIO *cout,
- EVP_PKEY *pkey, int ispub)
+ EVP_PKEY *pkey, int ispub)
{
BIO *out = ossl_bio_new_from_core_bio(ctx->provctx, cout);
int ret;
@@ -50,7 +50,7 @@ static int write_msblob(struct key2ms_ctx_st *ctx, OSSL_CORE_BIO *cout,
}
static int write_pvk(struct key2ms_ctx_st *ctx, OSSL_CORE_BIO *cout,
- EVP_PKEY *pkey)
+ EVP_PKEY *pkey)
{
BIO *out = NULL;
int ret;
@@ -60,7 +60,7 @@ static int write_pvk(struct key2ms_ctx_st *ctx, OSSL_CORE_BIO *cout,
if (out == NULL)
return 0;
ret = i2b_PVK_bio_ex(out, pkey, ctx->pvk_encr_level,
- ossl_pw_pvk_password, &ctx->pwdata, libctx, NULL);
+ ossl_pw_pvk_password, &ctx->pwdata, libctx, NULL);
BIO_free(out);
return ret;
}
@@ -126,8 +126,8 @@ static int key2ms_does_selection(void *vctx, int selection)
typedef int evp_pkey_set1_fn(EVP_PKEY *, const void *key);
static int key2msblob_encode(void *vctx, const void *key, int selection,
- OSSL_CORE_BIO *cout, evp_pkey_set1_fn *set1_key,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CORE_BIO *cout, evp_pkey_set1_fn *set1_key,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct key2ms_ctx_st *ctx = vctx;
int ispub = -1;
@@ -139,7 +139,7 @@ static int key2msblob_encode(void *vctx, const void *key, int selection,
else if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0)
ispub = 1;
else
- return 0; /* Error */
+ return 0; /* Error */
if ((pkey = EVP_PKEY_new()) != NULL && set1_key(pkey, key))
ok = write_msblob(ctx, cout, pkey, ispub);
@@ -148,15 +148,15 @@ static int key2msblob_encode(void *vctx, const void *key, int selection,
}
static int key2pvk_encode(void *vctx, const void *key, int selection,
- OSSL_CORE_BIO *cout, evp_pkey_set1_fn *set1_key,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
+ OSSL_CORE_BIO *cout, evp_pkey_set1_fn *set1_key,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg)
{
struct key2ms_ctx_st *ctx = vctx;
EVP_PKEY *pkey = NULL;
int ok = 0;
if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) == 0)
- return 0; /* Error */
+ return 0; /* Error */
if ((pkey = EVP_PKEY_new()) != NULL && set1_key(pkey, key)
&& (pw_cb == NULL
@@ -166,39 +166,39 @@ static int key2pvk_encode(void *vctx, const void *key, int selection,
return ok;
}
-#define dsa_set1 (evp_pkey_set1_fn *)EVP_PKEY_set1_DSA
-#define rsa_set1 (evp_pkey_set1_fn *)EVP_PKEY_set1_RSA
+#define dsa_set1 (evp_pkey_set1_fn *)EVP_PKEY_set1_DSA
+#define rsa_set1 (evp_pkey_set1_fn *)EVP_PKEY_set1_RSA
#define msblob_set_params
-#define pvk_set_params \
- { OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS, \
- (void (*)(void))key2pvk_settable_ctx_params }, \
- { OSSL_FUNC_ENCODER_SET_CTX_PARAMS, \
- (void (*)(void))key2pvk_set_ctx_params },
+#define pvk_set_params \
+ { OSSL_FUNC_ENCODER_SETTABLE_CTX_PARAMS, \
+ (void (*)(void))key2pvk_settable_ctx_params }, \
+ { OSSL_FUNC_ENCODER_SET_CTX_PARAMS, \
+ (void (*)(void))key2pvk_set_ctx_params },
#define MAKE_MS_ENCODER(impl, output, type) \
static OSSL_FUNC_encoder_import_object_fn \
- impl##2##output##_import_object; \
+ impl##2##output##_import_object; \
static OSSL_FUNC_encoder_free_object_fn impl##2##output##_free_object; \
static OSSL_FUNC_encoder_encode_fn impl##2##output##_encode; \
\
static void * \
- impl##2##output##_import_object(void *ctx, int selection, \
- const OSSL_PARAM params[]) \
+ impl##2##output##_import_object(void *ctx, int selection, \
+ const OSSL_PARAM params[]) \
{ \
return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
- ctx, selection, params); \
+ ctx, selection, params); \
} \
static void impl##2##output##_free_object(void *key) \
{ \
ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
} \
static int impl##2##output##_encode(void *vctx, OSSL_CORE_BIO *cout, \
- const void *key, \
- const OSSL_PARAM key_abstract[], \
- int selection, \
- OSSL_PASSPHRASE_CALLBACK *cb, \
- void *cbarg) \
+ const void *key, \
+ const OSSL_PARAM key_abstract[], \
+ int selection, \
+ OSSL_PASSPHRASE_CALLBACK *cb, \
+ void *cbarg) \
{ \
/* We don't deal with abstract objects */ \
if (key_abstract != NULL) { \
@@ -206,22 +206,21 @@ static int key2pvk_encode(void *vctx, const void *key, int selection,
return 0; \
} \
return key2##output##_encode(vctx, key, selection, cout, type##_set1, \
- cb, cbarg); \
+ cb, cbarg); \
} \
const OSSL_DISPATCH ossl_##impl##_to_##output##_encoder_functions[] = { \
{ OSSL_FUNC_ENCODER_NEWCTX, \
- (void (*)(void))key2ms_newctx }, \
+ (void (*)(void))key2ms_newctx }, \
{ OSSL_FUNC_ENCODER_FREECTX, \
- (void (*)(void))key2ms_freectx }, \
- output##_set_params \
- { OSSL_FUNC_ENCODER_DOES_SELECTION, \
- (void (*)(void))key2ms_does_selection }, \
+ (void (*)(void))key2ms_freectx }, \
+ output##_set_params { OSSL_FUNC_ENCODER_DOES_SELECTION, \
+ (void (*)(void))key2ms_does_selection }, \
{ OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
- (void (*)(void))impl##2##output##_import_object }, \
+ (void (*)(void))impl##2##output##_import_object }, \
{ OSSL_FUNC_ENCODER_FREE_OBJECT, \
- (void (*)(void))impl##2##output##_free_object }, \
+ (void (*)(void))impl##2##output##_free_object }, \
{ OSSL_FUNC_ENCODER_ENCODE, \
- (void (*)(void))impl##2##output##_encode }, \
+ (void (*)(void))impl##2##output##_encode }, \
OSSL_DISPATCH_END \
}
diff --git a/crypto/openssl/providers/implementations/encode_decode/encode_key2text.c b/crypto/openssl/providers/implementations/encode_decode/encode_key2text.c
index 7a564807326f..5c120d469d22 100644
--- a/crypto/openssl/providers/implementations/encode_decode/encode_key2text.c
+++ b/crypto/openssl/providers/implementations/encode_decode/encode_key2text.c
@@ -19,12 +19,12 @@
#include <openssl/err.h>
#include <openssl/safestack.h>
#include <openssl/proverr.h>
-#include "crypto/dh.h" /* ossl_dh_get0_params() */
-#include "crypto/dsa.h" /* ossl_dsa_get0_params() */
-#include "crypto/ec.h" /* ossl_ec_key_get_libctx */
-#include "crypto/ecx.h" /* ECX_KEY, etc... */
-#include "crypto/ml_kem.h" /* ML_KEM_KEY, etc... */
-#include "crypto/rsa.h" /* RSA_PSS_PARAMS_30, etc... */
+#include "crypto/dh.h" /* ossl_dh_get0_params() */
+#include "crypto/dsa.h" /* ossl_dsa_get0_params() */
+#include "crypto/ec.h" /* ossl_ec_key_get_libctx */
+#include "crypto/ecx.h" /* ECX_KEY, etc... */
+#include "crypto/ml_kem.h" /* ML_KEM_KEY, etc... */
+#include "crypto/rsa.h" /* RSA_PSS_PARAMS_30, etc... */
#include "crypto/ml_dsa.h"
#include "crypto/slh_dsa.h"
#include "prov/bio.h"
@@ -102,7 +102,8 @@ static int dh_to_text(BIO *out, const void *key, int selection)
length = DH_get_length(dh);
if (length > 0
&& BIO_printf(out, "recommended-private-length: %ld bits\n",
- length) <= 0)
+ length)
+ <= 0)
return 0;
return 1;
@@ -180,7 +181,7 @@ static int dsa_to_text(BIO *out, const void *key, int selection)
#ifndef OPENSSL_NO_EC
static int ec_param_explicit_curve_to_text(BIO *out, const EC_GROUP *group,
- BN_CTX *ctx)
+ BN_CTX *ctx)
{
const char *plabel = "Prime:";
BIGNUM *p = NULL, *a = NULL, *b = NULL;
@@ -207,7 +208,7 @@ static int ec_param_explicit_curve_to_text(BIO *out, const EC_GROUP *group,
}
static int ec_param_explicit_gen_to_text(BIO *out, const EC_GROUP *group,
- BN_CTX *ctx)
+ BN_CTX *ctx)
{
int ret;
size_t buflen;
@@ -224,8 +225,8 @@ static int ec_param_explicit_gen_to_text(BIO *out, const EC_GROUP *group,
switch (form) {
case POINT_CONVERSION_COMPRESSED:
- glabel = "Generator (compressed):";
- break;
+ glabel = "Generator (compressed):";
+ break;
case POINT_CONVERSION_UNCOMPRESSED:
glabel = "Generator (uncompressed):";
break;
@@ -247,7 +248,7 @@ static int ec_param_explicit_gen_to_text(BIO *out, const EC_GROUP *group,
/* Print explicit parameters */
static int ec_param_explicit_to_text(BIO *out, const EC_GROUP *group,
- OSSL_LIB_CTX *libctx)
+ OSSL_LIB_CTX *libctx)
{
int ret = 0, tmp_nid;
BN_CTX *ctx = NULL;
@@ -288,7 +289,7 @@ err:
}
static int ec_param_to_text(BIO *out, const EC_GROUP *group,
- OSSL_LIB_CTX *libctx)
+ OSSL_LIB_CTX *libctx)
{
if (EC_GROUP_get_asn1_flag(group) & OPENSSL_EC_NAMED_CURVE) {
const char *curve_name;
@@ -303,7 +304,7 @@ static int ec_param_to_text(BIO *out, const EC_GROUP *group,
curve_name = EC_curve_nid2nist(curve_nid);
return (curve_name == NULL
- || BIO_printf(out, "%s: %s\n", "NIST CURVE", curve_name) > 0);
+ || BIO_printf(out, "%s: %s\n", "NIST CURVE", curve_name) > 0);
} else {
return ec_param_explicit_to_text(out, group, libctx);
}
@@ -362,7 +363,8 @@ static int ec_to_text(BIO *out, const void *key, int selection)
if (type_label != NULL
&& BIO_printf(out, "%s: (%d bit)\n", type_label,
- EC_GROUP_order_bits(group)) <= 0)
+ EC_GROUP_order_bits(group))
+ <= 0)
goto err;
if (priv != NULL
&& !ossl_bio_print_labeled_buf(out, "priv:", priv, priv_len))
@@ -497,11 +499,13 @@ static int rsa_to_text(BIO *out, const void *key, int selection)
if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) {
if (BIO_printf(out, "%s: (%d bit, %d primes)\n",
- type_label, BN_num_bits(rsa_n), primes) <= 0)
+ type_label, BN_num_bits(rsa_n), primes)
+ <= 0)
goto err;
} else {
if (BIO_printf(out, "%s: (%d bit)\n",
- type_label, BN_num_bits(rsa_n)) <= 0)
+ type_label, BN_num_bits(rsa_n))
+ <= 0)
goto err;
}
@@ -515,35 +519,35 @@ static int rsa_to_text(BIO *out, const void *key, int selection)
if (!ossl_bio_print_labeled_bignum(out, "privateExponent:", rsa_d))
goto err;
if (!ossl_bio_print_labeled_bignum(out, "prime1:",
- sk_BIGNUM_const_value(factors, 0)))
+ sk_BIGNUM_const_value(factors, 0)))
goto err;
if (!ossl_bio_print_labeled_bignum(out, "prime2:",
- sk_BIGNUM_const_value(factors, 1)))
+ sk_BIGNUM_const_value(factors, 1)))
goto err;
if (!ossl_bio_print_labeled_bignum(out, "exponent1:",
- sk_BIGNUM_const_value(exps, 0)))
+ sk_BIGNUM_const_value(exps, 0)))
goto err;
if (!ossl_bio_print_labeled_bignum(out, "exponent2:",
- sk_BIGNUM_const_value(exps, 1)))
+ sk_BIGNUM_const_value(exps, 1)))
goto err;
if (!ossl_bio_print_labeled_bignum(out, "coefficient:",
- sk_BIGNUM_const_value(coeffs, 0)))
+ sk_BIGNUM_const_value(coeffs, 0)))
goto err;
for (i = 2; i < sk_BIGNUM_const_num(factors); i++) {
if (BIO_printf(out, "prime%d:", i + 1) <= 0)
goto err;
if (!ossl_bio_print_labeled_bignum(out, NULL,
- sk_BIGNUM_const_value(factors, i)))
+ sk_BIGNUM_const_value(factors, i)))
goto err;
if (BIO_printf(out, "exponent%d:", i + 1) <= 0)
goto err;
if (!ossl_bio_print_labeled_bignum(out, NULL,
- sk_BIGNUM_const_value(exps, i)))
+ sk_BIGNUM_const_value(exps, i)))
goto err;
if (BIO_printf(out, "coefficient%d:", i + 1) <= 0)
goto err;
if (!ossl_bio_print_labeled_bignum(out, NULL,
- sk_BIGNUM_const_value(coeffs, i - 1)))
+ sk_BIGNUM_const_value(coeffs, i - 1)))
goto err;
}
}
@@ -562,35 +566,38 @@ static int rsa_to_text(BIO *out, const void *key, int selection)
goto err;
} else {
int hashalg_nid = ossl_rsa_pss_params_30_hashalg(pss_params);
- int maskgenalg_nid =
- ossl_rsa_pss_params_30_maskgenalg(pss_params);
- int maskgenhashalg_nid =
- ossl_rsa_pss_params_30_maskgenhashalg(pss_params);
+ int maskgenalg_nid = ossl_rsa_pss_params_30_maskgenalg(pss_params);
+ int maskgenhashalg_nid = ossl_rsa_pss_params_30_maskgenhashalg(pss_params);
int saltlen = ossl_rsa_pss_params_30_saltlen(pss_params);
- int trailerfield =
- ossl_rsa_pss_params_30_trailerfield(pss_params);
+ int trailerfield = ossl_rsa_pss_params_30_trailerfield(pss_params);
if (BIO_printf(out, "PSS parameter restrictions:\n") <= 0)
goto err;
if (BIO_printf(out, " Hash Algorithm: %s%s\n",
- ossl_rsa_oaeppss_nid2name(hashalg_nid),
- (hashalg_nid == NID_sha1
- ? " (default)" : "")) <= 0)
+ ossl_rsa_oaeppss_nid2name(hashalg_nid),
+ (hashalg_nid == NID_sha1
+ ? " (default)"
+ : ""))
+ <= 0)
goto err;
if (BIO_printf(out, " Mask Algorithm: %s with %s%s\n",
- ossl_rsa_mgf_nid2name(maskgenalg_nid),
- ossl_rsa_oaeppss_nid2name(maskgenhashalg_nid),
- (maskgenalg_nid == NID_mgf1
- && maskgenhashalg_nid == NID_sha1
- ? " (default)" : "")) <= 0)
+ ossl_rsa_mgf_nid2name(maskgenalg_nid),
+ ossl_rsa_oaeppss_nid2name(maskgenhashalg_nid),
+ (maskgenalg_nid == NID_mgf1
+ && maskgenhashalg_nid == NID_sha1
+ ? " (default)"
+ : ""))
+ <= 0)
goto err;
if (BIO_printf(out, " Minimum Salt Length: %d%s\n",
- saltlen,
- (saltlen == 20 ? " (default)" : "")) <= 0)
+ saltlen,
+ (saltlen == 20 ? " (default)" : ""))
+ <= 0)
goto err;
if (BIO_printf(out, " Trailer Field: 0x%x%s\n",
- trailerfield,
- (trailerfield == 1 ? " (default)" : "")) <= 0)
+ trailerfield,
+ (trailerfield == 1 ? " (default)" : ""))
+ <= 0)
goto err;
}
break;
@@ -598,7 +605,7 @@ static int rsa_to_text(BIO *out, const void *key, int selection)
}
ret = 1;
- err:
+err:
sk_BIGNUM_const_free(factors);
sk_BIGNUM_const_free(exps);
sk_BIGNUM_const_free(coeffs);
@@ -625,10 +632,10 @@ static void key2text_freectx(ossl_unused void *vctx)
}
static int key2text_encode(void *vctx, const void *key, int selection,
- OSSL_CORE_BIO *cout,
- int (*key2text)(BIO *out, const void *key,
- int selection),
- OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg)
+ OSSL_CORE_BIO *cout,
+ int (*key2text)(BIO *out, const void *key,
+ int selection),
+ OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg)
{
BIO *out = ossl_bio_new_from_core_bio(vctx, cout);
int ret;
@@ -642,50 +649,50 @@ static int key2text_encode(void *vctx, const void *key, int selection,
return ret;
}
-#define MAKE_TEXT_ENCODER(impl, type) \
- static OSSL_FUNC_encoder_import_object_fn \
- impl##2text_import_object; \
- static OSSL_FUNC_encoder_free_object_fn \
- impl##2text_free_object; \
- static OSSL_FUNC_encoder_encode_fn impl##2text_encode; \
- \
- static void *impl##2text_import_object(void *ctx, int selection, \
- const OSSL_PARAM params[]) \
- { \
- return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
- ctx, selection, params); \
- } \
- static void impl##2text_free_object(void *key) \
- { \
- ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
- } \
- static int impl##2text_encode(void *vctx, OSSL_CORE_BIO *cout, \
- const void *key, \
- const OSSL_PARAM key_abstract[], \
- int selection, \
- OSSL_PASSPHRASE_CALLBACK *cb, \
- void *cbarg) \
- { \
- /* We don't deal with abstract objects */ \
- if (key_abstract != NULL) { \
- ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
- return 0; \
- } \
- return key2text_encode(vctx, key, selection, cout, \
- type##_to_text, cb, cbarg); \
- } \
- const OSSL_DISPATCH ossl_##impl##_to_text_encoder_functions[] = { \
- { OSSL_FUNC_ENCODER_NEWCTX, \
- (void (*)(void))key2text_newctx }, \
- { OSSL_FUNC_ENCODER_FREECTX, \
- (void (*)(void))key2text_freectx }, \
- { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
- (void (*)(void))impl##2text_import_object }, \
- { OSSL_FUNC_ENCODER_FREE_OBJECT, \
- (void (*)(void))impl##2text_free_object }, \
- { OSSL_FUNC_ENCODER_ENCODE, \
- (void (*)(void))impl##2text_encode }, \
- OSSL_DISPATCH_END \
+#define MAKE_TEXT_ENCODER(impl, type) \
+ static OSSL_FUNC_encoder_import_object_fn \
+ impl##2text_import_object; \
+ static OSSL_FUNC_encoder_free_object_fn \
+ impl##2text_free_object; \
+ static OSSL_FUNC_encoder_encode_fn impl##2text_encode; \
+ \
+ static void *impl##2text_import_object(void *ctx, int selection, \
+ const OSSL_PARAM params[]) \
+ { \
+ return ossl_prov_import_key(ossl_##impl##_keymgmt_functions, \
+ ctx, selection, params); \
+ } \
+ static void impl##2text_free_object(void *key) \
+ { \
+ ossl_prov_free_key(ossl_##impl##_keymgmt_functions, key); \
+ } \
+ static int impl##2text_encode(void *vctx, OSSL_CORE_BIO *cout, \
+ const void *key, \
+ const OSSL_PARAM key_abstract[], \
+ int selection, \
+ OSSL_PASSPHRASE_CALLBACK *cb, \
+ void *cbarg) \
+ { \
+ /* We don't deal with abstract objects */ \
+ if (key_abstract != NULL) { \
+ ERR_raise(ERR_LIB_PROV, ERR_R_PASSED_INVALID_ARGUMENT); \
+ return 0; \
+ } \
+ return key2text_encode(vctx, key, selection, cout, \
+ type##_to_text, cb, cbarg); \
+ } \
+ const OSSL_DISPATCH ossl_##impl##_to_text_encoder_functions[] = { \
+ { OSSL_FUNC_ENCODER_NEWCTX, \
+ (void (*)(void))key2text_newctx }, \
+ { OSSL_FUNC_ENCODER_FREECTX, \
+ (void (*)(void))key2text_freectx }, \
+ { OSSL_FUNC_ENCODER_IMPORT_OBJECT, \
+ (void (*)(void))impl##2text_import_object }, \
+ { OSSL_FUNC_ENCODER_FREE_OBJECT, \
+ (void (*)(void))impl##2text_free_object }, \
+ { OSSL_FUNC_ENCODER_ENCODE, \
+ (void (*)(void))impl##2text_encode }, \
+ OSSL_DISPATCH_END \
}
#ifndef OPENSSL_NO_DH
@@ -697,15 +704,15 @@ MAKE_TEXT_ENCODER(dsa, dsa);
#endif
#ifndef OPENSSL_NO_EC
MAKE_TEXT_ENCODER(ec, ec);
-# ifndef OPENSSL_NO_SM2
+#ifndef OPENSSL_NO_SM2
MAKE_TEXT_ENCODER(sm2, ec);
-# endif
-# ifndef OPENSSL_NO_ECX
+#endif
+#ifndef OPENSSL_NO_ECX
MAKE_TEXT_ENCODER(ed25519, ecx);
MAKE_TEXT_ENCODER(ed448, ecx);
MAKE_TEXT_ENCODER(x25519, ecx);
MAKE_TEXT_ENCODER(x448, ecx);
-# endif
+#endif
#endif
#ifndef OPENSSL_NO_ML_KEM
MAKE_TEXT_ENCODER(ml_kem_512, ml_kem);
diff --git a/crypto/openssl/providers/implementations/encode_decode/endecoder_common.c b/crypto/openssl/providers/implementations/encode_decode/endecoder_common.c
index c4ea2f853cfc..2e5b39242a71 100644
--- a/crypto/openssl/providers/implementations/encode_decode/endecoder_common.c
+++ b/crypto/openssl/providers/implementations/encode_decode/endecoder_common.c
@@ -58,12 +58,11 @@ ossl_prov_get_keymgmt_export(const OSSL_DISPATCH *fns)
}
void *ossl_prov_import_key(const OSSL_DISPATCH *fns, void *provctx,
- int selection, const OSSL_PARAM params[])
+ int selection, const OSSL_PARAM params[])
{
OSSL_FUNC_keymgmt_new_fn *kmgmt_new = ossl_prov_get_keymgmt_new(fns);
OSSL_FUNC_keymgmt_free_fn *kmgmt_free = ossl_prov_get_keymgmt_free(fns);
- OSSL_FUNC_keymgmt_import_fn *kmgmt_import =
- ossl_prov_get_keymgmt_import(fns);
+ OSSL_FUNC_keymgmt_import_fn *kmgmt_import = ossl_prov_get_keymgmt_import(fns);
void *key = NULL;
if (kmgmt_new != NULL && kmgmt_import != NULL && kmgmt_free != NULL) {
@@ -84,8 +83,8 @@ void ossl_prov_free_key(const OSSL_DISPATCH *fns, void *key)
kmgmt_free(key);
}
-int ossl_read_der(PROV_CTX *provctx, OSSL_CORE_BIO *cin, unsigned char **data,
- long *len)
+int ossl_read_der(PROV_CTX *provctx, OSSL_CORE_BIO *cin, unsigned char **data,
+ long *len)
{
BUF_MEM *mem = NULL;
BIO *in = ossl_bio_new_from_core_bio(provctx, cin);
diff --git a/crypto/openssl/providers/implementations/encode_decode/endecoder_local.h b/crypto/openssl/providers/implementations/encode_decode/endecoder_local.h
index a65d05ffaeac..2576812be2df 100644
--- a/crypto/openssl/providers/implementations/encode_decode/endecoder_local.h
+++ b/crypto/openssl/providers/implementations/encode_decode/endecoder_local.h
@@ -18,11 +18,11 @@ OSSL_FUNC_keymgmt_import_fn *ossl_prov_get_keymgmt_import(const OSSL_DISPATCH *f
OSSL_FUNC_keymgmt_export_fn *ossl_prov_get_keymgmt_export(const OSSL_DISPATCH *fns);
int ossl_prov_der_from_p8(unsigned char **new_der, long *new_der_len,
- unsigned char *input_der, long input_der_len,
- OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg);
+ unsigned char *input_der, long input_der_len,
+ OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg);
void *ossl_prov_import_key(const OSSL_DISPATCH *fns, void *provctx,
- int selection, const OSSL_PARAM params[]);
+ int selection, const OSSL_PARAM params[]);
void ossl_prov_free_key(const OSSL_DISPATCH *fns, void *key);
-int ossl_read_der(PROV_CTX *provctx, OSSL_CORE_BIO *cin, unsigned char **data,
- long *len);
+int ossl_read_der(PROV_CTX *provctx, OSSL_CORE_BIO *cin, unsigned char **data,
+ long *len);
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.c b/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.c
index 773550c9fb93..0ce80b67ecd9 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.c
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.c
@@ -33,8 +33,8 @@ static int pref_cmp(const void *va, const void *vb)
ML_COMMON_PKCS8_FMT_PREF *
ossl_ml_common_pkcs8_fmt_order(const char *algorithm_name,
- const ML_COMMON_PKCS8_FMT *p8fmt,
- const char *direction, const char *formats)
+ const ML_COMMON_PKCS8_FMT *p8fmt,
+ const char *direction, const char *formats)
{
ML_COMMON_PKCS8_FMT_PREF *ret;
int i, count = 0;
@@ -57,7 +57,7 @@ ossl_ml_common_pkcs8_fmt_order(const char *algorithm_name,
/*
* Formats are case-insensitive, separated by spaces, tabs or commas.
- * Duplicate formats are allowed, the first occurence determines the order.
+ * Duplicate formats are allowed, the first occurrence determines the order.
*/
do {
if (*(fmt += strspn(fmt, sep)) == '\0')
@@ -67,7 +67,8 @@ ossl_ml_common_pkcs8_fmt_order(const char *algorithm_name,
/* Skip slots already selected or with a different name. */
if (ret[i].pref > 0
|| OPENSSL_strncasecmp(ret[i].fmt->p8_name,
- fmt, (end - fmt)) != 0)
+ fmt, (end - fmt))
+ != 0)
continue;
/* First time match */
ret[i].pref = ++count;
@@ -80,8 +81,8 @@ ossl_ml_common_pkcs8_fmt_order(const char *algorithm_name,
if (count == 0) {
OPENSSL_free(ret);
ERR_raise_data(ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT,
- "no %s private key %s formats are enabled",
- algorithm_name, direction);
+ "no %s private key %s formats are enabled",
+ algorithm_name, direction);
return NULL;
}
/* Sort by preference, with 0's last */
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.h b/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.h
index 4bf618ea0b79..110b9e0a51dd 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.h
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_common_codecs.h
@@ -8,31 +8,31 @@
*/
#ifndef PROV_ML_COMMON_CODECS_H
-# define PROV_ML_COMMON_CODECS_H
-# pragma once
+#define PROV_ML_COMMON_CODECS_H
+#pragma once
-# include <openssl/e_os2.h>
-# include "crypto/ml_dsa.h"
-# include "prov/provider_ctx.h"
+#include <openssl/e_os2.h>
+#include "crypto/ml_dsa.h"
+#include "prov/provider_ctx.h"
- /*-
- * The DER ASN.1 encoding of ML-DSA and ML-KEM public keys prepends 22 bytes
- * to the encoded public key:
- *
- * - 4 byte outer sequence tag and length
- * - 2 byte algorithm sequence tag and length
- * - 2 byte algorithm OID tag and length
- * - 9 byte algorithm OID (from NIST CSOR OID arc)
- * - 4 byte bit string tag and length
- * - 1 bitstring lead byte
- */
-# define ML_COMMON_SPKI_OVERHEAD 22
+/*-
+ * The DER ASN.1 encoding of ML-DSA and ML-KEM public keys prepends 22 bytes
+ * to the encoded public key:
+ *
+ * - 4 byte outer sequence tag and length
+ * - 2 byte algorithm sequence tag and length
+ * - 2 byte algorithm OID tag and length
+ * - 9 byte algorithm OID (from NIST CSOR OID arc)
+ * - 4 byte bit string tag and length
+ * - 1 bitstring lead byte
+ */
+#define ML_COMMON_SPKI_OVERHEAD 22
typedef struct {
const uint8_t asn1_prefix[ML_COMMON_SPKI_OVERHEAD];
} ML_COMMON_SPKI_FMT;
/*-
-* For each parameter set we support a few PKCS#8 input formats, three
+ * For each parameter set we support a few PKCS#8 input formats, three
* corresponding to the "either or both" variants of:
*
* ML-DSA-PrivateKey ::= CHOICE {
@@ -64,21 +64,21 @@ typedef struct {
* The p8_shift is 0 when the top-level tag+length occupy four bytes, 2 when
* they occupy two by†es, and 4 when no tag is used at all.
*/
-#define NUM_PKCS8_FORMATS 6
+#define NUM_PKCS8_FORMATS 6
typedef struct {
- const char *p8_name; /* Format name */
- size_t p8_bytes; /* Total P8 encoding length */
- int p8_shift; /* 4 - (top-level tag + len) */
- uint32_t p8_magic; /* The tag + len value */
- uint16_t seed_magic; /* Interior tag + len for the seed */
- size_t seed_offset; /* Seed offset from start */
- size_t seed_length; /* Seed bytes */
- uint32_t priv_magic; /* Interior tag + len for the key */
- size_t priv_offset; /* Key offset from start */
- size_t priv_length; /* Key bytes */
- size_t pub_offset; /* Pubkey offset */
- size_t pub_length; /* Pubkey bytes */
+ const char *p8_name; /* Format name */
+ size_t p8_bytes; /* Total P8 encoding length */
+ int p8_shift; /* 4 - (top-level tag + len) */
+ uint32_t p8_magic; /* The tag + len value */
+ uint16_t seed_magic; /* Interior tag + len for the seed */
+ size_t seed_offset; /* Seed offset from start */
+ size_t seed_length; /* Seed bytes */
+ uint32_t priv_magic; /* Interior tag + len for the key */
+ size_t priv_offset; /* Key offset from start */
+ size_t priv_length; /* Key bytes */
+ size_t pub_offset; /* Pubkey offset */
+ size_t pub_length; /* Pubkey bytes */
} ML_COMMON_PKCS8_FMT;
typedef struct {
@@ -93,6 +93,6 @@ typedef struct {
ML_COMMON_PKCS8_FMT_PREF *
ossl_ml_common_pkcs8_fmt_order(const char *algorithm_name,
- const ML_COMMON_PKCS8_FMT *p8fmt,
- const char *direction, const char *formats);
+ const ML_COMMON_PKCS8_FMT *p8fmt,
+ const char *direction, const char *formats);
#endif
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.c b/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.c
index dd54137fe500..faf142466686 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.c
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.c
@@ -27,16 +27,103 @@
* Private key bytes: 2560 (0x0a00)
*/
static const ML_COMMON_SPKI_FMT ml_dsa_44_spkifmt = {
- { 0x30, 0x82, 0x05, 0x32, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x03, 0x11, 0x03, 0x82, 0x05, 0x21, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x05,
+ 0x32,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x03,
+ 0x11,
+ 0x03,
+ 0x82,
+ 0x05,
+ 0x21,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_dsa_44_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x0a2a, 0, 0x30820a26, 0x0420, 6, 0x20, 0x04820a00, 0x2a, 0x0a00, 0, 0, },
- { "priv-only", 0x0a04, 0, 0x04820a00, 0, 0, 0, 0, 0x04, 0x0a00, 0, 0, },
- { "oqskeypair", 0x0f24, 0, 0x04820f20, 0, 0, 0, 0, 0x04, 0x0a00, 0x0a04, 0x0520 },
- { "seed-only", 0x0022, 2, 0x8020, 0, 2, 0x20, 0, 0, 0, 0, 0, },
- { "bare-priv", 0x0a00, 4, 0, 0, 0, 0, 0, 0, 0x0a00, 0, 0, },
- { "bare-seed", 0x0020, 4, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, },
+ {
+ "seed-priv",
+ 0x0a2a,
+ 0,
+ 0x30820a26,
+ 0x0420,
+ 6,
+ 0x20,
+ 0x04820a00,
+ 0x2a,
+ 0x0a00,
+ 0,
+ 0,
+ },
+ {
+ "priv-only",
+ 0x0a04,
+ 0,
+ 0x04820a00,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x04,
+ 0x0a00,
+ 0,
+ 0,
+ },
+ { "oqskeypair", 0x0f24, 0, 0x04820f20, 0, 0, 0, 0, 0x04, 0x0a00, 0x0a04, 0x0520 },
+ {
+ "seed-only",
+ 0x0022,
+ 2,
+ 0x8020,
+ 0,
+ 2,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
+ {
+ "bare-priv",
+ 0x0a00,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x0a00,
+ 0,
+ 0,
+ },
+ {
+ "bare-seed",
+ 0x0020,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
};
/*
@@ -45,16 +132,103 @@ static const ML_COMMON_PKCS8_FMT ml_dsa_44_p8fmt[NUM_PKCS8_FORMATS] = {
* Private key bytes: 4032 (0x0fc0)
*/
static const ML_COMMON_SPKI_FMT ml_dsa_65_spkifmt = {
- { 0x30, 0x82, 0x07, 0xb2, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x03, 0x12, 0x03, 0x82, 0x07, 0xa1, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x07,
+ 0xb2,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x03,
+ 0x12,
+ 0x03,
+ 0x82,
+ 0x07,
+ 0xa1,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_dsa_65_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x0fea, 0, 0x30820fe6, 0x0420, 6, 0x20, 0x04820fc0, 0x2a, 0x0fc0, 0, 0, },
- { "priv-only", 0x0fc4, 0, 0x04820fc0, 0, 0, 0, 0, 0x04, 0x0fc0, 0, 0, },
- { "oqskeypair", 0x1764, 0, 0x04821760, 0, 0, 0, 0, 0x04, 0x0fc0, 0x0fc4, 0x07a0 },
- { "seed-only", 0x0022, 2, 0x8020, 0, 2, 0x20, 0, 0, 0, 0, 0, },
- { "bare-priv", 0x0fc0, 4, 0, 0, 0, 0, 0, 0, 0x0fc0, 0, 0, },
- { "bare-seed", 0x0020, 4, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, },
+ {
+ "seed-priv",
+ 0x0fea,
+ 0,
+ 0x30820fe6,
+ 0x0420,
+ 6,
+ 0x20,
+ 0x04820fc0,
+ 0x2a,
+ 0x0fc0,
+ 0,
+ 0,
+ },
+ {
+ "priv-only",
+ 0x0fc4,
+ 0,
+ 0x04820fc0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x04,
+ 0x0fc0,
+ 0,
+ 0,
+ },
+ { "oqskeypair", 0x1764, 0, 0x04821760, 0, 0, 0, 0, 0x04, 0x0fc0, 0x0fc4, 0x07a0 },
+ {
+ "seed-only",
+ 0x0022,
+ 2,
+ 0x8020,
+ 0,
+ 2,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
+ {
+ "bare-priv",
+ 0x0fc0,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x0fc0,
+ 0,
+ 0,
+ },
+ {
+ "bare-seed",
+ 0x0020,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
};
/*-
@@ -63,22 +237,109 @@ static const ML_COMMON_PKCS8_FMT ml_dsa_65_p8fmt[NUM_PKCS8_FORMATS] = {
* Private key bytes: 4896 (0x1320)
*/
static const ML_COMMON_SPKI_FMT ml_dsa_87_spkifmt = {
- { 0x30, 0x82, 0x0a, 0x32, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x03, 0x13, 0x03, 0x82, 0x0a, 0x21, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x0a,
+ 0x32,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x03,
+ 0x13,
+ 0x03,
+ 0x82,
+ 0x0a,
+ 0x21,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_dsa_87_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x134a, 0, 0x30821346, 0x0420, 6, 0x20, 0x04821320, 0x2a, 0x1320, 0, 0, },
- { "priv-only", 0x1324, 0, 0x04821320, 0, 0, 0, 0, 0x04, 0x1320, 0, 0, },
- { "oqskeypair", 0x1d44, 0, 0x04821d40, 0, 0, 0, 0, 0x04, 0x1320, 0x1324, 0x0a20 },
- { "seed-only", 0x0022, 2, 0x8020, 0, 2, 0x20, 0, 0, 0, 0, 0, },
- { "bare-priv", 0x1320, 4, 0, 0, 0, 0, 0, 0, 0x1320, 0, 0, },
- { "bare-seed", 0x0020, 4, 0, 0, 0, 0x20, 0, 0, 0, 0, 0, },
+ {
+ "seed-priv",
+ 0x134a,
+ 0,
+ 0x30821346,
+ 0x0420,
+ 6,
+ 0x20,
+ 0x04821320,
+ 0x2a,
+ 0x1320,
+ 0,
+ 0,
+ },
+ {
+ "priv-only",
+ 0x1324,
+ 0,
+ 0x04821320,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x04,
+ 0x1320,
+ 0,
+ 0,
+ },
+ { "oqskeypair", 0x1d44, 0, 0x04821d40, 0, 0, 0, 0, 0x04, 0x1320, 0x1324, 0x0a20 },
+ {
+ "seed-only",
+ 0x0022,
+ 2,
+ 0x8020,
+ 0,
+ 2,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
+ {
+ "bare-priv",
+ 0x1320,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x1320,
+ 0,
+ 0,
+ },
+ {
+ "bare-seed",
+ 0x0020,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0x20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
};
/* Indices of slots in the codec table below */
-#define ML_DSA_44_CODEC 0
-#define ML_DSA_65_CODEC 1
-#define ML_DSA_87_CODEC 2
+#define ML_DSA_44_CODEC 0
+#define ML_DSA_65_CODEC 1
+#define ML_DSA_87_CODEC 2
/*
* Per-variant fixed parameters
@@ -105,7 +366,7 @@ static const ML_COMMON_CODEC *ml_dsa_get_codec(int evp_type)
ML_DSA_KEY *
ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pk, int pk_len, int evp_type,
- PROV_CTX *provctx, const char *propq)
+ PROV_CTX *provctx, const char *propq)
{
OSSL_LIB_CTX *libctx = PROV_LIBCTX_OF(provctx);
const ML_COMMON_CODEC *codec;
@@ -115,7 +376,7 @@ ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pk, int pk_len, int evp_type,
if ((params = ossl_ml_dsa_params_get(evp_type)) == NULL
|| (codec = ml_dsa_get_codec(evp_type)) == NULL)
return NULL;
- if (pk_len != ML_COMMON_SPKI_OVERHEAD + (ossl_ssize_t) params->pk_len
+ if (pk_len != ML_COMMON_SPKI_OVERHEAD + (ossl_ssize_t)params->pk_len
|| memcmp(pk, codec->spkifmt->asn1_prefix, ML_COMMON_SPKI_OVERHEAD) != 0)
return NULL;
pk_len -= ML_COMMON_SPKI_OVERHEAD;
@@ -124,10 +385,10 @@ ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pk, int pk_len, int evp_type,
if ((ret = ossl_ml_dsa_key_new(libctx, propq, evp_type)) == NULL)
return NULL;
- if (!ossl_ml_dsa_pk_decode(ret, pk, (size_t) pk_len)) {
+ if (!ossl_ml_dsa_pk_decode(ret, pk, (size_t)pk_len)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "errror parsing %s public key from input SPKI",
- params->alg);
+ "error parsing %s public key from input SPKI",
+ params->alg);
ossl_ml_dsa_key_free(ret);
return NULL;
}
@@ -137,8 +398,8 @@ ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pk, int pk_len, int evp_type,
ML_DSA_KEY *
ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
- int evp_type, PROV_CTX *provctx,
- const char *propq)
+ int evp_type, PROV_CTX *provctx,
+ const char *propq)
{
const ML_DSA_PARAMS *v;
const ML_COMMON_CODEC *codec;
@@ -174,7 +435,7 @@ ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
formats = ossl_prov_ctx_get_param(
provctx, OSSL_PKEY_PARAM_ML_DSA_INPUT_FORMATS, NULL);
fmt_slots = ossl_ml_common_pkcs8_fmt_order(v->alg, codec->p8fmt,
- "input", formats);
+ "input", formats);
if (fmt_slots == NULL)
goto end;
@@ -182,8 +443,8 @@ ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
X509_ALGOR_get0(NULL, &ptype, NULL, alg);
if (ptype != V_ASN1_UNDEF) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS,
- "unexpected parameters with a PKCS#8 %s private key",
- v->alg);
+ "unexpected parameters with a PKCS#8 %s private key",
+ v->alg);
goto end;
}
if ((ossl_ssize_t)len < (ossl_ssize_t)sizeof(magic))
@@ -205,8 +466,8 @@ ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
|| (p8fmt->priv_length > 0 && p8fmt->priv_length != v->sk_len)
|| (p8fmt->pub_length > 0 && p8fmt->pub_length != v->pk_len)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT,
- "no matching enabled %s private key input formats",
- v->alg);
+ "no matching enabled %s private key input formats",
+ v->alg);
goto end;
}
@@ -253,10 +514,10 @@ ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
/* Any OQS public key content is ignored */
if (ossl_ml_dsa_set_prekey(key, 0, 0,
- seed, ML_DSA_SEED_BYTES, priv, v->sk_len))
+ seed, ML_DSA_SEED_BYTES, priv, v->sk_len))
ret = key;
- end:
+end:
OPENSSL_free(fmt_slots);
PKCS8_PRIV_KEY_INFO_free(p8inf);
if (ret == NULL)
@@ -272,7 +533,7 @@ int ossl_ml_dsa_i2d_pubkey(const ML_DSA_KEY *key, unsigned char **out)
if (pk == NULL) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY,
- "no %s public key data available", params->alg);
+ "no %s public key data available", params->alg);
return 0;
}
if (out != NULL
@@ -283,7 +544,7 @@ int ossl_ml_dsa_i2d_pubkey(const ML_DSA_KEY *key, unsigned char **out)
/* Allocate and encode PKCS#8 private key payload. */
int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
- PROV_CTX *provctx)
+ PROV_CTX *provctx)
{
const ML_DSA_PARAMS *params = ossl_ml_dsa_key_params(key);
const ML_COMMON_CODEC *codec;
@@ -302,15 +563,15 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
if (sk == NULL) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY,
- "no %s private key data available",
- params->alg);
+ "no %s private key data available",
+ params->alg);
return 0;
}
formats = ossl_prov_ctx_get_param(
provctx, OSSL_PKEY_PARAM_ML_DSA_OUTPUT_FORMATS, NULL);
fmt_slots = ossl_ml_common_pkcs8_fmt_order(params->alg, codec->p8fmt,
- "output", formats);
+ "output", formats);
if (fmt_slots == NULL)
return 0;
@@ -324,8 +585,8 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
|| (p8fmt->priv_length > 0 && p8fmt->priv_length != params->sk_len)
|| (p8fmt->pub_length > 0 && p8fmt->pub_length != params->pk_len)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT,
- "no matching enabled %s private key output formats",
- params->alg);
+ "no matching enabled %s private key output formats",
+ params->alg);
goto end;
}
len = p8fmt->p8_bytes;
@@ -335,7 +596,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
goto end;
}
- if ((pos = buf = OPENSSL_malloc((size_t) len)) == NULL)
+ if ((pos = buf = OPENSSL_malloc((size_t)len)) == NULL)
goto end;
switch (p8fmt->p8_shift) {
@@ -349,7 +610,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
break;
default:
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key", params->alg);
+ "error encoding %s private key", params->alg);
goto end;
}
@@ -362,7 +623,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
pos = OPENSSL_store_u16_be(pos, p8fmt->seed_magic);
if (pos != buf + p8fmt->seed_offset) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key", params->alg);
+ "error encoding %s private key", params->alg);
goto end;
}
memcpy(pos, seed, ML_DSA_SEED_BYTES);
@@ -373,7 +634,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
pos = OPENSSL_store_u32_be(pos, p8fmt->priv_magic);
if (pos != buf + p8fmt->priv_offset) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key", params->alg);
+ "error encoding %s private key", params->alg);
goto end;
}
memcpy(pos, sk, params->sk_len);
@@ -384,7 +645,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
/* The OQS pubkey is never separately DER-wrapped */
if (pos != buf + p8fmt->pub_offset) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key", params->alg);
+ "error encoding %s private key", params->alg);
goto end;
}
memcpy(pos, ossl_ml_dsa_key_get_pub(key), params->pk_len);
@@ -396,7 +657,7 @@ int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, uint8_t **out,
ret = len;
}
- end:
+end:
OPENSSL_free(fmt_slots);
if (ret == 0)
OPENSSL_free(buf);
@@ -420,20 +681,19 @@ int ossl_ml_dsa_key_to_text(BIO *out, const ML_DSA_KEY *key, int selection)
if (pk == NULL) {
/* Regardless of the |selection|, there must be a public key */
ERR_raise_data(ERR_LIB_PROV, PROV_R_MISSING_KEY,
- "no %s key material available", params->alg);
+ "no %s key material available", params->alg);
return 0;
}
if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) {
if (sk == NULL) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_MISSING_KEY,
- "no %s key material available", params->alg);
+ "no %s key material available", params->alg);
return 0;
}
if (BIO_printf(out, "%s Private-Key:\n", params->alg) <= 0)
return 0;
- if (seed != NULL && !ossl_bio_print_labeled_buf(out, "seed:", seed,
- ML_DSA_SEED_BYTES))
+ if (seed != NULL && !ossl_bio_print_labeled_buf(out, "seed:", seed, ML_DSA_SEED_BYTES))
return 0;
if (!ossl_bio_print_labeled_buf(out, "priv:", sk, params->sk_len))
return 0;
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.h b/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.h
index c0c2e842a242..e05b54b1d0a3 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.h
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_dsa_codecs.h
@@ -8,32 +8,29 @@
*/
#ifndef PROV_ML_DSA_CODECS_H
-# define PROV_ML_DSA_CODECS_H
-# pragma once
+#define PROV_ML_DSA_CODECS_H
+#pragma once
-# ifndef OPENSSL_NO_ML_DSA
-# include <openssl/e_os2.h>
-# include "crypto/ml_dsa.h"
-# include "prov/provider_ctx.h"
-# include "ml_common_codecs.h"
+#ifndef OPENSSL_NO_ML_DSA
+#include <openssl/e_os2.h>
+#include "crypto/ml_dsa.h"
+#include "prov/provider_ctx.h"
+#include "ml_common_codecs.h"
+__owur ML_DSA_KEY *ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pubenc, int publen,
+ int evp_type, PROV_CTX *provctx,
+ const char *propq);
+__owur ML_DSA_KEY *ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
+ int evp_type, PROV_CTX *provctx,
+ const char *propq);
+__owur int ossl_ml_dsa_key_to_text(BIO *out, const ML_DSA_KEY *key, int selection);
__owur
-ML_DSA_KEY *ossl_ml_dsa_d2i_PUBKEY(const uint8_t *pubenc, int publen,
- int evp_type, PROV_CTX *provctx,
- const char *propq);
+ __owur int
+ ossl_ml_dsa_i2d_pubkey(const ML_DSA_KEY *key, unsigned char **out);
__owur
-ML_DSA_KEY *ossl_ml_dsa_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
- int evp_type, PROV_CTX *provctx,
- const char *propq);
-__owur
-int ossl_ml_dsa_key_to_text(BIO *out, const ML_DSA_KEY *key, int selection);
-__owur
-__owur
-int ossl_ml_dsa_i2d_pubkey(const ML_DSA_KEY *key, unsigned char **out);
-__owur
-__owur
-int ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, unsigned char **out,
- PROV_CTX *provctx);
+ __owur int
+ ossl_ml_dsa_i2d_prvkey(const ML_DSA_KEY *key, unsigned char **out,
+ PROV_CTX *provctx);
-# endif /* OPENSSL_NO_ML_DSA */
-#endif /* PROV_ML_DSA_CODECS_H */
+#endif /* OPENSSL_NO_ML_DSA */
+#endif /* PROV_ML_DSA_CODECS_H */
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.c b/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.c
index fe0c8acc7e63..482775433b62 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.c
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.c
@@ -24,16 +24,38 @@
* Private key bytes: 1632 (0x0660)
*/
static const ML_COMMON_SPKI_FMT ml_kem_512_spkifmt = {
- { 0x30, 0x82, 0x03, 0x32, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x04, 0x01, 0x03, 0x82, 0x03, 0x21, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x03,
+ 0x32,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x04,
+ 0x01,
+ 0x03,
+ 0x82,
+ 0x03,
+ 0x21,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_kem_512_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x06aa, 0, 0x308206a6, 0x0440, 6, 0x40, 0x04820660, 0x4a, 0x0660, 0, 0 },
- { "priv-only", 0x0664, 0, 0x04820660, 0, 0, 0, 0, 0x04, 0x0660, 0, 0 },
- { "oqskeypair", 0x0984, 0, 0x04820980, 0, 0, 0, 0, 0x04, 0x0660, 0x0664, 0x0320 },
- { "seed-only", 0x0042, 2, 0x8040, 0, 2, 0x40, 0, 0, 0, 0, 0 },
- { "bare-priv", 0x0660, 4, 0, 0, 0, 0, 0, 0, 0x0660, 0, 0 },
- { "bare-seed", 0x0040, 4, 0, 0, 0, 0x40, 0, 0, 0, 0, 0 },
+ { "seed-priv", 0x06aa, 0, 0x308206a6, 0x0440, 6, 0x40, 0x04820660, 0x4a, 0x0660, 0, 0 },
+ { "priv-only", 0x0664, 0, 0x04820660, 0, 0, 0, 0, 0x04, 0x0660, 0, 0 },
+ { "oqskeypair", 0x0984, 0, 0x04820980, 0, 0, 0, 0, 0x04, 0x0660, 0x0664, 0x0320 },
+ { "seed-only", 0x0042, 2, 0x8040, 0, 2, 0x40, 0, 0, 0, 0, 0 },
+ { "bare-priv", 0x0660, 4, 0, 0, 0, 0, 0, 0, 0x0660, 0, 0 },
+ { "bare-seed", 0x0040, 4, 0, 0, 0, 0x40, 0, 0, 0, 0, 0 },
};
/*-
@@ -42,16 +64,103 @@ static const ML_COMMON_PKCS8_FMT ml_kem_512_p8fmt[NUM_PKCS8_FORMATS] = {
* Private key bytes: 2400 (0x0960)
*/
static const ML_COMMON_SPKI_FMT ml_kem_768_spkifmt = {
- { 0x30, 0x82, 0x04, 0xb2, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x04, 0x02, 0x03, 0x82, 0x04, 0xa1, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x04,
+ 0xb2,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x04,
+ 0x02,
+ 0x03,
+ 0x82,
+ 0x04,
+ 0xa1,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_kem_768_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x09aa, 0, 0x308209a6, 0x0440, 6, 0x40, 0x04820960, 0x4a, 0x0960, 0, 0, },
- { "priv-only", 0x0964, 0, 0x04820960, 0, 0, 0, 0, 0x04, 0x0960, 0, 0, },
- { "oqskeypair", 0x0e04, 0, 0x04820e00, 0, 0, 0, 0, 0x04, 0x0960, 0x0964, 0x04a0 },
- { "seed-only", 0x0042, 2, 0x8040, 0, 2, 0x40, 0, 0, 0, 0, 0, },
- { "bare-priv", 0x0960, 4, 0, 0, 0, 0, 0, 0, 0x0960, 0, 0, },
- { "bare-seed", 0x0040, 4, 0, 0, 0, 0x40, 0, 0, 0, 0, 0, },
+ {
+ "seed-priv",
+ 0x09aa,
+ 0,
+ 0x308209a6,
+ 0x0440,
+ 6,
+ 0x40,
+ 0x04820960,
+ 0x4a,
+ 0x0960,
+ 0,
+ 0,
+ },
+ {
+ "priv-only",
+ 0x0964,
+ 0,
+ 0x04820960,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x04,
+ 0x0960,
+ 0,
+ 0,
+ },
+ { "oqskeypair", 0x0e04, 0, 0x04820e00, 0, 0, 0, 0, 0x04, 0x0960, 0x0964, 0x04a0 },
+ {
+ "seed-only",
+ 0x0042,
+ 2,
+ 0x8040,
+ 0,
+ 2,
+ 0x40,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
+ {
+ "bare-priv",
+ 0x0960,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0x0960,
+ 0,
+ 0,
+ },
+ {
+ "bare-seed",
+ 0x0040,
+ 4,
+ 0,
+ 0,
+ 0,
+ 0x40,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ },
};
/*-
@@ -60,29 +169,51 @@ static const ML_COMMON_PKCS8_FMT ml_kem_768_p8fmt[NUM_PKCS8_FORMATS] = {
* Public key bytes: 1568 (0x0620)
*/
static const ML_COMMON_SPKI_FMT ml_kem_1024_spkifmt = {
- { 0x30, 0x82, 0x06, 0x32, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48,
- 0x01, 0x65, 0x03, 0x04, 0x04, 0x03, 0x03, 0x82, 0x06, 0x21, 0x00, }
+ {
+ 0x30,
+ 0x82,
+ 0x06,
+ 0x32,
+ 0x30,
+ 0x0b,
+ 0x06,
+ 0x09,
+ 0x60,
+ 0x86,
+ 0x48,
+ 0x01,
+ 0x65,
+ 0x03,
+ 0x04,
+ 0x04,
+ 0x03,
+ 0x03,
+ 0x82,
+ 0x06,
+ 0x21,
+ 0x00,
+ }
};
static const ML_COMMON_PKCS8_FMT ml_kem_1024_p8fmt[NUM_PKCS8_FORMATS] = {
- { "seed-priv", 0x0caa, 0, 0x30820ca6, 0x0440, 6, 0x40, 0x04820c60, 0x4a, 0x0c60, 0, 0 },
- { "priv-only", 0x0c64, 0, 0x04820c60, 0, 0, 0, 0, 0x04, 0x0c60, 0, 0 },
- { "oqskeypair", 0x1284, 0, 0x04821280, 0, 0, 0, 0, 0x04, 0x0c60, 0x0c64, 0x0620 },
- { "seed-only", 0x0042, 2, 0x8040, 0, 2, 0x40, 0, 0, 0, 0, 0 },
- { "bare-priv", 0x0c60, 4, 0, 0, 0, 0, 0, 0, 0x0c60, 0, 0 },
- { "bare-seed", 0x0040, 4, 0, 0, 0, 0x40, 0, 0, 0, 0, 0 },
+ { "seed-priv", 0x0caa, 0, 0x30820ca6, 0x0440, 6, 0x40, 0x04820c60, 0x4a, 0x0c60, 0, 0 },
+ { "priv-only", 0x0c64, 0, 0x04820c60, 0, 0, 0, 0, 0x04, 0x0c60, 0, 0 },
+ { "oqskeypair", 0x1284, 0, 0x04821280, 0, 0, 0, 0, 0x04, 0x0c60, 0x0c64, 0x0620 },
+ { "seed-only", 0x0042, 2, 0x8040, 0, 2, 0x40, 0, 0, 0, 0, 0 },
+ { "bare-priv", 0x0c60, 4, 0, 0, 0, 0, 0, 0, 0x0c60, 0, 0 },
+ { "bare-seed", 0x0040, 4, 0, 0, 0, 0x40, 0, 0, 0, 0, 0 },
};
/* Indices of slots in the `codecs` table below */
-#define ML_KEM_512_CODEC 0
-#define ML_KEM_768_CODEC 1
-#define ML_KEM_1024_CODEC 2
+#define ML_KEM_512_CODEC 0
+#define ML_KEM_768_CODEC 1
+#define ML_KEM_1024_CODEC 2
/*
* Per-variant fixed parameters
*/
static const ML_COMMON_CODEC codecs[3] = {
- { &ml_kem_512_spkifmt, ml_kem_512_p8fmt },
- { &ml_kem_768_spkifmt, ml_kem_768_p8fmt },
+ { &ml_kem_512_spkifmt, ml_kem_512_p8fmt },
+ { &ml_kem_768_spkifmt, ml_kem_768_p8fmt },
{ &ml_kem_1024_spkifmt, ml_kem_1024_p8fmt }
};
@@ -102,7 +233,7 @@ static const ML_COMMON_CODEC *ml_kem_get_codec(int evp_type)
ML_KEM_KEY *
ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen, int evp_type,
- PROV_CTX *provctx, const char *propq)
+ PROV_CTX *provctx, const char *propq)
{
OSSL_LIB_CTX *libctx = PROV_LIBCTX_OF(provctx);
const ML_KEM_VINFO *v;
@@ -114,7 +245,7 @@ ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen, int evp_type,
|| (codec = ml_kem_get_codec(evp_type)) == NULL)
return NULL;
vspki = codec->spkifmt;
- if (publen != ML_COMMON_SPKI_OVERHEAD + (ossl_ssize_t) v->pubkey_bytes
+ if (publen != ML_COMMON_SPKI_OVERHEAD + (ossl_ssize_t)v->pubkey_bytes
|| memcmp(pubenc, vspki->asn1_prefix, ML_COMMON_SPKI_OVERHEAD) != 0)
return NULL;
publen -= ML_COMMON_SPKI_OVERHEAD;
@@ -123,10 +254,10 @@ ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen, int evp_type,
if ((ret = ossl_ml_kem_key_new(libctx, propq, evp_type)) == NULL)
return NULL;
- if (!ossl_ml_kem_parse_public_key(pubenc, (size_t) publen, ret)) {
+ if (!ossl_ml_kem_parse_public_key(pubenc, (size_t)publen, ret)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_BAD_ENCODING,
- "errror parsing %s public key from input SPKI",
- v->algorithm_name);
+ "error parsing %s public key from input SPKI",
+ v->algorithm_name);
ossl_ml_kem_key_free(ret);
return NULL;
}
@@ -136,8 +267,8 @@ ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen, int evp_type,
ML_KEM_KEY *
ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
- int evp_type, PROV_CTX *provctx,
- const char *propq)
+ int evp_type, PROV_CTX *provctx,
+ const char *propq)
{
const ML_KEM_VINFO *v;
const ML_COMMON_CODEC *codec;
@@ -171,7 +302,7 @@ ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
formats = ossl_prov_ctx_get_param(
provctx, OSSL_PKEY_PARAM_ML_KEM_INPUT_FORMATS, NULL);
fmt_slots = ossl_ml_common_pkcs8_fmt_order(v->algorithm_name, codec->p8fmt,
- "input", formats);
+ "input", formats);
if (fmt_slots == NULL)
goto end;
@@ -179,8 +310,8 @@ ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
X509_ALGOR_get0(NULL, &ptype, NULL, alg);
if (ptype != V_ASN1_UNDEF) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS,
- "unexpected parameters with a PKCS#8 %s private key",
- v->algorithm_name);
+ "unexpected parameters with a PKCS#8 %s private key",
+ v->algorithm_name);
goto end;
}
if ((ossl_ssize_t)len < (ossl_ssize_t)sizeof(magic))
@@ -202,8 +333,8 @@ ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
|| (p8fmt->priv_length > 0 && p8fmt->priv_length != v->prvkey_bytes)
|| (p8fmt->pub_length > 0 && p8fmt->pub_length != v->pubkey_bytes)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT,
- "no matching enabled %s private key input formats",
- v->algorithm_name);
+ "no matching enabled %s private key input formats",
+ v->algorithm_name);
goto end;
}
@@ -246,18 +377,18 @@ ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
if (p8fmt->seed_length > 0) {
if (!ossl_ml_kem_set_seed(buf + p8fmt->seed_offset,
- ML_KEM_SEED_BYTES, key)) {
+ ML_KEM_SEED_BYTES, key)) {
ERR_raise_data(ERR_LIB_OSSL_DECODER, ERR_R_INTERNAL_ERROR,
- "error storing %s private key seed",
- v->algorithm_name);
+ "error storing %s private key seed",
+ v->algorithm_name);
goto end;
}
}
if (p8fmt->priv_length > 0) {
if ((key->encoded_dk = OPENSSL_malloc(p8fmt->priv_length)) == NULL) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_INVALID_KEY,
- "error parsing %s private key",
- v->algorithm_name);
+ "error parsing %s private key",
+ v->algorithm_name);
goto end;
}
memcpy(key->encoded_dk, buf + p8fmt->priv_offset, p8fmt->priv_length);
@@ -265,7 +396,7 @@ ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
/* Any OQS public key content is ignored */
ret = key;
- end:
+end:
OPENSSL_free(fmt_slots);
PKCS8_PRIV_KEY_INFO_free(p8inf);
if (ret == NULL)
@@ -280,8 +411,8 @@ int ossl_ml_kem_i2d_pubkey(const ML_KEM_KEY *key, unsigned char **out)
if (!ossl_ml_kem_have_pubkey(key)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY,
- "no %s public key data available",
- key->vinfo->algorithm_name);
+ "no %s public key data available",
+ key->vinfo->algorithm_name);
return 0;
}
publen = key->vinfo->pubkey_bytes;
@@ -291,8 +422,8 @@ int ossl_ml_kem_i2d_pubkey(const ML_KEM_KEY *key, unsigned char **out)
return 0;
if (!ossl_ml_kem_encode_public_key(*out, publen, key)) {
ERR_raise_data(ERR_LIB_OSSL_ENCODER, ERR_R_INTERNAL_ERROR,
- "error encoding %s public key",
- key->vinfo->algorithm_name);
+ "error encoding %s public key",
+ key->vinfo->algorithm_name);
OPENSSL_free(*out);
return 0;
}
@@ -302,7 +433,7 @@ int ossl_ml_kem_i2d_pubkey(const ML_KEM_KEY *key, unsigned char **out)
/* Allocate and encode PKCS#8 private key payload. */
int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
- PROV_CTX *provctx)
+ PROV_CTX *provctx)
{
const ML_KEM_VINFO *v = key->vinfo;
const ML_COMMON_CODEC *codec;
@@ -319,15 +450,15 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
if (!ossl_ml_kem_have_prvkey(key)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY,
- "no %s private key data available",
- key->vinfo->algorithm_name);
+ "no %s private key data available",
+ key->vinfo->algorithm_name);
return 0;
}
formats = ossl_prov_ctx_get_param(
provctx, OSSL_PKEY_PARAM_ML_KEM_OUTPUT_FORMATS, NULL);
fmt_slots = ossl_ml_common_pkcs8_fmt_order(v->algorithm_name, codec->p8fmt,
- "output", formats);
+ "output", formats);
if (fmt_slots == NULL)
return 0;
@@ -341,8 +472,8 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
|| (p8fmt->priv_length > 0 && p8fmt->priv_length != v->prvkey_bytes)
|| (p8fmt->pub_length > 0 && p8fmt->pub_length != v->pubkey_bytes)) {
ERR_raise_data(ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT,
- "no matching enabled %s private key output formats",
- v->algorithm_name);
+ "no matching enabled %s private key output formats",
+ v->algorithm_name);
goto end;
}
len = p8fmt->p8_bytes;
@@ -352,7 +483,7 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
goto end;
}
- if ((pos = buf = OPENSSL_malloc((size_t) len)) == NULL)
+ if ((pos = buf = OPENSSL_malloc((size_t)len)) == NULL)
goto end;
switch (p8fmt->p8_shift) {
@@ -366,8 +497,8 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
break;
default:
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key",
- v->algorithm_name);
+ "error encoding %s private key",
+ v->algorithm_name);
goto end;
}
@@ -381,8 +512,8 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
if (pos != buf + p8fmt->seed_offset
|| !ossl_ml_kem_encode_seed(pos, ML_KEM_SEED_BYTES, key)) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key",
- v->algorithm_name);
+ "error encoding %s private key",
+ v->algorithm_name);
goto end;
}
pos += ML_KEM_SEED_BYTES;
@@ -393,8 +524,8 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
if (pos != buf + p8fmt->priv_offset
|| !ossl_ml_kem_encode_private_key(pos, v->prvkey_bytes, key)) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key",
- v->algorithm_name);
+ "error encoding %s private key",
+ v->algorithm_name);
goto end;
}
pos += v->prvkey_bytes;
@@ -405,8 +536,8 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
if (pos != buf + p8fmt->pub_offset
|| !ossl_ml_kem_encode_public_key(pos, v->pubkey_bytes, key)) {
ERR_raise_data(ERR_LIB_PROV, ERR_R_INTERNAL_ERROR,
- "error encoding %s private key",
- v->algorithm_name);
+ "error encoding %s private key",
+ v->algorithm_name);
goto end;
}
pos += v->pubkey_bytes;
@@ -417,7 +548,7 @@ int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, uint8_t **out,
ret = len;
}
- end:
+end:
OPENSSL_free(fmt_slots);
if (ret == 0)
OPENSSL_free(buf);
@@ -478,10 +609,10 @@ int ossl_ml_kem_key_to_text(BIO *out, const ML_KEM_KEY *key, int selection)
/* If we got here, and ret == 0, there was no key material */
if (ret == 0)
ERR_raise_data(ERR_LIB_PROV, PROV_R_MISSING_KEY,
- "no %s key material available",
- type_label);
+ "no %s key material available",
+ type_label);
- end:
+end:
OPENSSL_free(pubenc);
OPENSSL_free(prvenc);
return ret;
diff --git a/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.h b/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.h
index b8a22201ab17..01ef8bbba505 100644
--- a/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.h
+++ b/crypto/openssl/providers/implementations/encode_decode/ml_kem_codecs.h
@@ -8,32 +8,29 @@
*/
#ifndef PROV_ML_KEM_CODECS_H
-# define PROV_ML_KEM_CODECS_H
-# pragma once
+#define PROV_ML_KEM_CODECS_H
+#pragma once
-# ifndef OPENSSL_NO_ML_KEM
-# include <openssl/e_os2.h>
-# include "crypto/ml_kem.h"
-# include "prov/provider_ctx.h"
-# include "ml_common_codecs.h"
+#ifndef OPENSSL_NO_ML_KEM
+#include <openssl/e_os2.h>
+#include "crypto/ml_kem.h"
+#include "prov/provider_ctx.h"
+#include "ml_common_codecs.h"
+__owur ML_KEM_KEY *ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen,
+ int evp_type, PROV_CTX *provctx,
+ const char *propq);
+__owur ML_KEM_KEY *ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
+ int evp_type, PROV_CTX *provctx,
+ const char *propq);
+__owur int ossl_ml_kem_key_to_text(BIO *out, const ML_KEM_KEY *key, int selection);
__owur
-ML_KEM_KEY *ossl_ml_kem_d2i_PUBKEY(const uint8_t *pubenc, int publen,
- int evp_type, PROV_CTX *provctx,
- const char *propq);
+ __owur int
+ ossl_ml_kem_i2d_pubkey(const ML_KEM_KEY *key, unsigned char **out);
__owur
-ML_KEM_KEY *ossl_ml_kem_d2i_PKCS8(const uint8_t *prvenc, int prvlen,
- int evp_type, PROV_CTX *provctx,
- const char *propq);
-__owur
-int ossl_ml_kem_key_to_text(BIO *out, const ML_KEM_KEY *key, int selection);
-__owur
-__owur
-int ossl_ml_kem_i2d_pubkey(const ML_KEM_KEY *key, unsigned char **out);
-__owur
-__owur
-int ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, unsigned char **out,
- PROV_CTX *provctx);
+ __owur int
+ ossl_ml_kem_i2d_prvkey(const ML_KEM_KEY *key, unsigned char **out,
+ PROV_CTX *provctx);
-# endif /* OPENSSL_NO_ML_KEM */
-#endif /* PROV_ML_KEM_CODECS_H */
+#endif /* OPENSSL_NO_ML_KEM */
+#endif /* PROV_ML_KEM_CODECS_H */