@ -18,6 +18,7 @@
# include "prov/provider_ctx.h"
# include "prov/providercommon.h"
# include "prov/implementations.h"
# include "prov/names.h"
# include "prov/provider_util.h"
# include "prov/seeding.h"
# include "internal/nelem.h"
@ -99,34 +100,32 @@ static int deflt_get_params(void *provctx, OSSL_PARAM params[])
*/
static const OSSL_ALGORITHM deflt_digests [ ] = {
/* Our primary name:NIST name[:our older names] */
{ " SHA1:SHA-1:SSL3-SHA1 " , " provider=default " , ossl_sha1_functions } ,
{ " SHA2-224:SHA-224:SHA224 " , " provider=default " , ossl_sha224_functions } ,
{ " SHA2-256:SHA-256:SHA256 " , " provider=default " , ossl_sha256_functions } ,
{ " SHA2-384:SHA-384:SHA384 " , " provider=default " , ossl_sha384_functions } ,
{ " SHA2-512:SHA-512:SHA512 " , " provider=default " , ossl_sha512_functions } ,
{ " SHA2-512/224:SHA-512/224:SHA512-224 " , " provider=default " ,
ossl_sha512_224_functions } ,
{ " SHA2-512/256:SHA-512/256:SHA512-256 " , " provider=default " ,
ossl_sha512_256_functions } ,
{ PROV_NAMES_SHA1 , " provider=default " , ossl_sha1_functions } ,
{ PROV_NAMES_SHA2_224 , " provider=default " , ossl_sha224_functions } ,
{ PROV_NAMES_SHA2_256 , " provider=default " , ossl_sha256_functions } ,
{ PROV_NAMES_SHA2_384 , " provider=default " , ossl_sha384_functions } ,
{ PROV_NAMES_SHA2_512 , " provider=default " , ossl_sha512_functions } ,
{ PROV_NAMES_SHA2_512_224 , " provider=default " , ossl_sha512_224_functions } ,
{ PROV_NAMES_SHA2_512_256 , " provider=default " , ossl_sha512_256_functions } ,
/* We agree with NIST here, so one name only */
{ " SHA3-224 " , " provider=default " , ossl_sha3_224_functions } ,
{ " SHA3-256 " , " provider=default " , ossl_sha3_256_functions } ,
{ " SHA3-384 " , " provider=default " , ossl_sha3_384_functions } ,
{ " SHA3-512 " , " provider=default " , ossl_sha3_512_functions } ,
{ PROV_NAMES_SHA3_224 , " provider=default " , ossl_sha3_224_functions } ,
{ PROV_NAMES_SHA3_256 , " provider=default " , ossl_sha3_256_functions } ,
{ PROV_NAMES_SHA3_384 , " provider=default " , ossl_sha3_384_functions } ,
{ PROV_NAMES_SHA3_512 , " provider=default " , ossl_sha3_512_functions } ,
/*
* KECCAK - KMAC - 128 and KECCAK - KMAC - 256 as hashes are mostly useful for
* the KMAC - 128 and KMAC - 256.
*/
{ " KECCAK-KMAC-128:KECCAK-KMAC128 " , " provider=default " ,
{ PROV_NAMES_KECCAK_KMAC_128 , " provider=default " ,
ossl_keccak_kmac_128_functions } ,
{ " KECCAK-KMAC-256:KECCAK-KMAC256 " , " provider=default " ,
{ PROV_NAMES_KECCAK_KMAC_256 , " provider=default " ,
ossl_keccak_kmac_256_functions } ,
/* Our primary name:NIST name */
{ " SHAKE-128:SHAKE128 " , " provider=default " , ossl_shake_128_functions } ,
{ " SHAKE-256:SHAKE256 " , " provider=default " , ossl_shake_256_functions } ,
{ PROV_NAMES_SHAKE_128 , " provider=default " , ossl_shake_128_functions } ,
{ PROV_NAMES_SHAKE_256 , " provider=default " , ossl_shake_256_functions } ,
# ifndef OPENSSL_NO_BLAKE2
/*
@ -136,168 +135,162 @@ static const OSSL_ALGORITHM deflt_digests[] = {
* If we assume that " 2b " and " 2s " are versions , that pattern
* fits with ours . We also add our historical names .
*/
{ " BLAKE2S-256:BLAKE2s256 " , " provider=default " , ossl_blake2s256_functions } ,
{ " BLAKE2B-512:BLAKE2b512 " , " provider=default " , ossl_blake2b512_functions } ,
{ PROV_NAMES_BLAKE2S_256 , " provider=default " , ossl_blake2s256_functions } ,
{ PROV_NAMES_BLAKE2B_512 , " provider=default " , ossl_blake2b512_functions } ,
# endif /* OPENSSL_NO_BLAKE2 */
# ifndef OPENSSL_NO_SM3
{ " SM3 " , " provider=default " , ossl_sm3_functions } ,
{ PROV_NAMES_SM3 , " provider=default " , ossl_sm3_functions } ,
# endif /* OPENSSL_NO_SM3 */
# ifndef OPENSSL_NO_MD5
{ " MD5:SSL3-MD5 " , " provider=default " , ossl_md5_functions } ,
{ " MD5-SHA1 " , " provider=default " , ossl_md5_sha1_functions } ,
{ PROV_NAMES_MD5 , " provider=default " , ossl_md5_functions } ,
{ PROV_NAMES_MD5_SHA1 , " provider=default " , ossl_md5_sha1_functions } ,
# endif /* OPENSSL_NO_MD5 */
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM_CAPABLE deflt_ciphers [ ] = {
ALG ( " NULL " , ossl_null_functions ) ,
ALG ( " AES-256-ECB " , ossl_aes256ecb_functions ) ,
ALG ( " AES-192-ECB " , ossl_aes192ecb_functions ) ,
ALG ( " AES-128-ECB " , ossl_aes128ecb_functions ) ,
ALG ( " AES-256-CBC:AES256 " , ossl_aes256cbc_functions ) ,
ALG ( " AES-192-CBC:AES192 " , ossl_aes192cbc_functions ) ,
ALG ( " AES-128-CBC:AES128 " , ossl_aes128cbc_functions ) ,
ALG ( " AES-128-CBC-CTS " , ossl_aes128cbc_cts_functions ) ,
ALG ( " AES-192-CBC-CTS " , ossl_aes192cbc_cts_functions ) ,
ALG ( " AES-256-CBC-CTS " , ossl_aes256cbc_cts_functions ) ,
ALG ( " AES-256-OFB " , ossl_aes256ofb_functions ) ,
ALG ( " AES-192-OFB " , ossl_aes192ofb_functions ) ,
ALG ( " AES-128-OFB " , ossl_aes128ofb_functions ) ,
ALG ( " AES-256-CFB " , ossl_aes256cfb_functions ) ,
ALG ( " AES-192-CFB " , ossl_aes192cfb_functions ) ,
ALG ( " AES-128-CFB " , ossl_aes128cfb_functions ) ,
ALG ( " AES-256-CFB1 " , ossl_aes256cfb1_functions ) ,
ALG ( " AES-192-CFB1 " , ossl_aes192cfb1_functions ) ,
ALG ( " AES-128-CFB1 " , ossl_aes128cfb1_functions ) ,
ALG ( " AES-256-CFB8 " , ossl_aes256cfb8_functions ) ,
ALG ( " AES-192-CFB8 " , ossl_aes192cfb8_functions ) ,
ALG ( " AES-128-CFB8 " , ossl_aes128cfb8_functions ) ,
ALG ( " AES-256-CTR " , ossl_aes256ctr_functions ) ,
ALG ( " AES-192-CTR " , ossl_aes192ctr_functions ) ,
ALG ( " AES-128-CTR " , ossl_aes128ctr_functions ) ,
ALG ( " AES-256-XTS " , ossl_aes256xts_functions ) ,
ALG ( " AES-128-XTS " , ossl_aes128xts_functions ) ,
ALG ( PROV_NAMES_NULL , ossl_null_functions ) ,
ALG ( PROV_NAMES_AES_256_ECB , ossl_aes256ecb_functions ) ,
ALG ( PROV_NAMES_AES_192_ECB , ossl_aes192ecb_functions ) ,
ALG ( PROV_NAMES_AES_128_ECB , ossl_aes128ecb_functions ) ,
ALG ( PROV_NAMES_AES_256_CBC , ossl_aes256cbc_functions ) ,
ALG ( PROV_NAMES_AES_192_CBC , ossl_aes192cbc_functions ) ,
ALG ( PROV_NAMES_AES_128_CBC , ossl_aes128cbc_functions ) ,
ALG ( PROV_NAMES_AES_128_CBC_CTS , ossl_aes128cbc_cts_functions ) ,
ALG ( PROV_NAMES_AES_192_CBC_CTS , ossl_aes192cbc_cts_functions ) ,
ALG ( PROV_NAMES_AES_256_CBC_CTS , ossl_aes256cbc_cts_functions ) ,
ALG ( PROV_NAMES_AES_256_OFB , ossl_aes256ofb_functions ) ,
ALG ( PROV_NAMES_AES_192_OFB , ossl_aes192ofb_functions ) ,
ALG ( PROV_NAMES_AES_128_OFB , ossl_aes128ofb_functions ) ,
ALG ( PROV_NAMES_AES_256_CFB , ossl_aes256cfb_functions ) ,
ALG ( PROV_NAMES_AES_192_CFB , ossl_aes192cfb_functions ) ,
ALG ( PROV_NAMES_AES_128_CFB , ossl_aes128cfb_functions ) ,
ALG ( PROV_NAMES_AES_256_CFB1 , ossl_aes256cfb1_functions ) ,
ALG ( PROV_NAMES_AES_192_CFB1 , ossl_aes192cfb1_functions ) ,
ALG ( PROV_NAMES_AES_128_CFB1 , ossl_aes128cfb1_functions ) ,
ALG ( PROV_NAMES_AES_256_CFB8 , ossl_aes256cfb8_functions ) ,
ALG ( PROV_NAMES_AES_192_CFB8 , ossl_aes192cfb8_functions ) ,
ALG ( PROV_NAMES_AES_128_CFB8 , ossl_aes128cfb8_functions ) ,
ALG ( PROV_NAMES_AES_256_CTR , ossl_aes256ctr_functions ) ,
ALG ( PROV_NAMES_AES_192_CTR , ossl_aes192ctr_functions ) ,
ALG ( PROV_NAMES_AES_128_CTR , ossl_aes128ctr_functions ) ,
ALG ( PROV_NAMES_AES_256_XTS , ossl_aes256xts_functions ) ,
ALG ( PROV_NAMES_AES_128_XTS , ossl_aes128xts_functions ) ,
# ifndef OPENSSL_NO_OCB
ALG ( " AES-256-OCB " , ossl_aes256ocb_functions ) ,
ALG ( " AES-192-OCB " , ossl_aes192ocb_functions ) ,
ALG ( " AES-128-OCB " , ossl_aes128ocb_functions ) ,
ALG ( PROV_NAMES_AES_256_OCB , ossl_aes256ocb_functions ) ,
ALG ( PROV_NAMES_AES_192_OCB , ossl_aes192ocb_functions ) ,
ALG ( PROV_NAMES_AES_128_OCB , ossl_aes128ocb_functions ) ,
# endif /* OPENSSL_NO_OCB */
# ifndef OPENSSL_NO_SIV
ALG ( " AES-128-SIV " , ossl_aes128siv_functions ) ,
ALG ( " AES-192-SIV " , ossl_aes192siv_functions ) ,
ALG ( " AES-256-SIV " , ossl_aes256siv_functions ) ,
ALG ( PROV_NAMES_AES_128_SIV , ossl_aes128siv_functions ) ,
ALG ( PROV_NAMES_AES_192_SIV , ossl_aes192siv_functions ) ,
ALG ( PROV_NAMES_AES_256_SIV , ossl_aes256siv_functions ) ,
# endif /* OPENSSL_NO_SIV */
ALG ( " AES-256-GCM:id-aes256-GCM " , ossl_aes256gcm_functions ) ,
ALG ( " AES-192-GCM:id-aes192-GCM " , ossl_aes192gcm_functions ) ,
ALG ( " AES-128-GCM:id-aes128-GCM " , ossl_aes128gcm_functions ) ,
ALG ( " AES-256-CCM:id-aes256-CCM " , ossl_aes256ccm_functions ) ,
ALG ( " AES-192-CCM:id-aes192-CCM " , ossl_aes192ccm_functions ) ,
ALG ( " AES-128-CCM:id-aes128-CCM " , ossl_aes128ccm_functions ) ,
ALG ( " AES-256-WRAP:id-aes256-wrap:AES256-WRAP " , ossl_aes256wrap_functions ) ,
ALG ( " AES-192-WRAP:id-aes192-wrap:AES192-WRAP " , ossl_aes192wrap_functions ) ,
ALG ( " AES-128-WRAP:id-aes128-wrap:AES128-WRAP " , ossl_aes128wrap_functions ) ,
ALG ( " AES-256-WRAP-PAD:id-aes256-wrap-pad:AES256-WRAP-PAD " ,
ossl_aes256wrappad_functions ) ,
ALG ( " AES-192-WRAP-PAD:id-aes192-wrap-pad:AES192-WRAP-PAD " ,
ossl_aes192wrappad_functions ) ,
ALG ( " AES-128-WRAP-PAD:id-aes128-wrap-pad:AES128-WRAP-PAD " ,
ossl_aes128wrappad_functions ) ,
ALG ( " AES-256-WRAP-INV:AES256-WRAP-INV " , ossl_aes256wrapinv_functions ) ,
ALG ( " AES-192-WRAP-INV:AES192-WRAP-INV " , ossl_aes192wrapinv_functions ) ,
ALG ( " AES-128-WRAP-INV:AES128-WRAP-INV " , ossl_aes128wrapinv_functions ) ,
ALG ( " AES-256-WRAP-PAD-INV:AES256-WRAP-PAD-INV " ,
ossl_aes256wrappadinv_functions ) ,
ALG ( " AES-192-WRAP-PAD-INV:AES192-WRAP-PAD-INV " ,
ossl_aes192wrappadinv_functions ) ,
ALG ( " AES-128-WRAP-PAD-INV:AES128-WRAP-PAD-INV " ,
ossl_aes128wrappadinv_functions ) ,
ALGC ( " AES-128-CBC-HMAC-SHA1 " , ossl_aes128cbc_hmac_sha1_functions ,
ALG ( PROV_NAMES_AES_256_GCM , ossl_aes256gcm_functions ) ,
ALG ( PROV_NAMES_AES_192_GCM , ossl_aes192gcm_functions ) ,
ALG ( PROV_NAMES_AES_128_GCM , ossl_aes128gcm_functions ) ,
ALG ( PROV_NAMES_AES_256_CCM , ossl_aes256ccm_functions ) ,
ALG ( PROV_NAMES_AES_192_CCM , ossl_aes192ccm_functions ) ,
ALG ( PROV_NAMES_AES_128_CCM , ossl_aes128ccm_functions ) ,
ALG ( PROV_NAMES_AES_256_WRAP , ossl_aes256wrap_functions ) ,
ALG ( PROV_NAMES_AES_192_WRAP , ossl_aes192wrap_functions ) ,
ALG ( PROV_NAMES_AES_128_WRAP , ossl_aes128wrap_functions ) ,
ALG ( PROV_NAMES_AES_256_WRAP_PAD , ossl_aes256wrappad_functions ) ,
ALG ( PROV_NAMES_AES_192_WRAP_PAD , ossl_aes192wrappad_functions ) ,
ALG ( PROV_NAMES_AES_128_WRAP_PAD , ossl_aes128wrappad_functions ) ,
ALG ( PROV_NAMES_AES_256_WRAP_INV , ossl_aes256wrapinv_functions ) ,
ALG ( PROV_NAMES_AES_192_WRAP_INV , ossl_aes192wrapinv_functions ) ,
ALG ( PROV_NAMES_AES_128_WRAP_INV , ossl_aes128wrapinv_functions ) ,
ALG ( PROV_NAMES_AES_256_WRAP_PAD_INV , ossl_aes256wrappadinv_functions ) ,
ALG ( PROV_NAMES_AES_192_WRAP_PAD_INV , ossl_aes192wrappadinv_functions ) ,
ALG ( PROV_NAMES_AES_128_WRAP_PAD_INV , ossl_aes128wrappadinv_functions ) ,
ALGC ( PROV_NAMES_AES_128_CBC_HMAC_SHA1 , ossl_aes128cbc_hmac_sha1_functions ,
ossl_cipher_capable_aes_cbc_hmac_sha1 ) ,
ALGC ( " AES-256-CBC-HMAC-SHA1 " , ossl_aes256cbc_hmac_sha1_functions ,
ALGC ( PROV_NAMES_AES_256_CBC_HMAC_SHA1 , ossl_aes256cbc_hmac_sha1_functions ,
ossl_cipher_capable_aes_cbc_hmac_sha1 ) ,
ALGC ( " AES-128-CBC-HMAC-SHA256 " , ossl_aes128cbc_hmac_sha256_functions ,
ALGC ( PROV_NAMES_AES_128_CBC_HMAC_SHA256 , ossl_aes128cbc_hmac_sha256_functions ,
ossl_cipher_capable_aes_cbc_hmac_sha256 ) ,
ALGC ( " AES-256-CBC-HMAC-SHA256 " , ossl_aes256cbc_hmac_sha256_functions ,
ALGC ( PROV_NAMES_AES_256_CBC_HMAC_SHA256 , ossl_aes256cbc_hmac_sha256_functions ,
ossl_cipher_capable_aes_cbc_hmac_sha256 ) ,
# ifndef OPENSSL_NO_ARIA
ALG ( " ARIA-256-GCM " , ossl_aria256gcm_functions ) ,
ALG ( " ARIA-192-GCM " , ossl_aria192gcm_functions ) ,
ALG ( " ARIA-128-GCM " , ossl_aria128gcm_functions ) ,
ALG ( " ARIA-256-CCM " , ossl_aria256ccm_functions ) ,
ALG ( " ARIA-192-CCM " , ossl_aria192ccm_functions ) ,
ALG ( " ARIA-128-CCM " , ossl_aria128ccm_functions ) ,
ALG ( " ARIA-256-ECB " , ossl_aria256ecb_functions ) ,
ALG ( " ARIA-192-ECB " , ossl_aria192ecb_functions ) ,
ALG ( " ARIA-128-ECB " , ossl_aria128ecb_functions ) ,
ALG ( " ARIA-256-CBC:ARIA256 " , ossl_aria256cbc_functions ) ,
ALG ( " ARIA-192-CBC:ARIA192 " , ossl_aria192cbc_functions ) ,
ALG ( " ARIA-128-CBC:ARIA128 " , ossl_aria128cbc_functions ) ,
ALG ( " ARIA-256-OFB " , ossl_aria256ofb_functions ) ,
ALG ( " ARIA-192-OFB " , ossl_aria192ofb_functions ) ,
ALG ( " ARIA-128-OFB " , ossl_aria128ofb_functions ) ,
ALG ( " ARIA-256-CFB " , ossl_aria256cfb_functions ) ,
ALG ( " ARIA-192-CFB " , ossl_aria192cfb_functions ) ,
ALG ( " ARIA-128-CFB " , ossl_aria128cfb_functions ) ,
ALG ( " ARIA-256-CFB1 " , ossl_aria256cfb1_functions ) ,
ALG ( " ARIA-192-CFB1 " , ossl_aria192cfb1_functions ) ,
ALG ( " ARIA-128-CFB1 " , ossl_aria128cfb1_functions ) ,
ALG ( " ARIA-256-CFB8 " , ossl_aria256cfb8_functions ) ,
ALG ( " ARIA-192-CFB8 " , ossl_aria192cfb8_functions ) ,
ALG ( " ARIA-128-CFB8 " , ossl_aria128cfb8_functions ) ,
ALG ( " ARIA-256-CTR " , ossl_aria256ctr_functions ) ,
ALG ( " ARIA-192-CTR " , ossl_aria192ctr_functions ) ,
ALG ( " ARIA-128-CTR " , ossl_aria128ctr_functions ) ,
ALG ( PROV_NAMES_ARIA_256_GCM , ossl_aria256gcm_functions ) ,
ALG ( PROV_NAMES_ARIA_192_GCM , ossl_aria192gcm_functions ) ,
ALG ( PROV_NAMES_ARIA_128_GCM , ossl_aria128gcm_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CCM , ossl_aria256ccm_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CCM , ossl_aria192ccm_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CCM , ossl_aria128ccm_functions ) ,
ALG ( PROV_NAMES_ARIA_256_ECB , ossl_aria256ecb_functions ) ,
ALG ( PROV_NAMES_ARIA_192_ECB , ossl_aria192ecb_functions ) ,
ALG ( PROV_NAMES_ARIA_128_ECB , ossl_aria128ecb_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CBC , ossl_aria256cbc_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CBC , ossl_aria192cbc_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CBC , ossl_aria128cbc_functions ) ,
ALG ( PROV_NAMES_ARIA_256_OFB , ossl_aria256ofb_functions ) ,
ALG ( PROV_NAMES_ARIA_192_OFB , ossl_aria192ofb_functions ) ,
ALG ( PROV_NAMES_ARIA_128_OFB , ossl_aria128ofb_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CFB , ossl_aria256cfb_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CFB , ossl_aria192cfb_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CFB , ossl_aria128cfb_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CFB1 , ossl_aria256cfb1_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CFB1 , ossl_aria192cfb1_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CFB1 , ossl_aria128cfb1_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CFB8 , ossl_aria256cfb8_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CFB8 , ossl_aria192cfb8_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CFB8 , ossl_aria128cfb8_functions ) ,
ALG ( PROV_NAMES_ARIA_256_CTR , ossl_aria256ctr_functions ) ,
ALG ( PROV_NAMES_ARIA_192_CTR , ossl_aria192ctr_functions ) ,
ALG ( PROV_NAMES_ARIA_128_CTR , ossl_aria128ctr_functions ) ,
# endif /* OPENSSL_NO_ARIA */
# ifndef OPENSSL_NO_CAMELLIA
ALG ( " CAMELLIA-256-ECB " , ossl_camellia256ecb_functions ) ,
ALG ( " CAMELLIA-192-ECB " , ossl_camellia192ecb_functions ) ,
ALG ( " CAMELLIA-128-ECB " , ossl_camellia128ecb_functions ) ,
ALG ( " CAMELLIA-256-CBC:CAMELLIA256 " , ossl_camellia256cbc_functions ) ,
ALG ( " CAMELLIA-192-CBC:CAMELLIA192 " , ossl_camellia192cbc_functions ) ,
ALG ( " CAMELLIA-128-CBC:CAMELLIA128 " , ossl_camellia128cbc_functions ) ,
ALG ( " CAMELLIA-256-OFB " , ossl_camellia256ofb_functions ) ,
ALG ( " CAMELLIA-192-OFB " , ossl_camellia192ofb_functions ) ,
ALG ( " CAMELLIA-128-OFB " , ossl_camellia128ofb_functions ) ,
ALG ( " CAMELLIA-256-CFB " , ossl_camellia256cfb_functions ) ,
ALG ( " CAMELLIA-192-CFB " , ossl_camellia192cfb_functions ) ,
ALG ( " CAMELLIA-128-CFB " , ossl_camellia128cfb_functions ) ,
ALG ( " CAMELLIA-256-CFB1 " , ossl_camellia256cfb1_functions ) ,
ALG ( " CAMELLIA-192-CFB1 " , ossl_camellia192cfb1_functions ) ,
ALG ( " CAMELLIA-128-CFB1 " , ossl_camellia128cfb1_functions ) ,
ALG ( " CAMELLIA-256-CFB8 " , ossl_camellia256cfb8_functions ) ,
ALG ( " CAMELLIA-192-CFB8 " , ossl_camellia192cfb8_functions ) ,
ALG ( " CAMELLIA-128-CFB8 " , ossl_camellia128cfb8_functions ) ,
ALG ( " CAMELLIA-256-CTR " , ossl_camellia256ctr_functions ) ,
ALG ( " CAMELLIA-192-CTR " , ossl_camellia192ctr_functions ) ,
ALG ( " CAMELLIA-128-CTR " , ossl_camellia128ctr_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_ECB , ossl_camellia256ecb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_ECB , ossl_camellia192ecb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_ECB , ossl_camellia128ecb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_CBC , ossl_camellia256cbc_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_CBC , ossl_camellia192cbc_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_CBC , ossl_camellia128cbc_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_OFB , ossl_camellia256ofb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_OFB , ossl_camellia192ofb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_OFB , ossl_camellia128ofb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_CFB , ossl_camellia256cfb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_CFB , ossl_camellia192cfb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_CFB , ossl_camellia128cfb_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_CFB1 , ossl_camellia256cfb1_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_CFB1 , ossl_camellia192cfb1_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_CFB1 , ossl_camellia128cfb1_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_CFB8 , ossl_camellia256cfb8_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_CFB8 , ossl_camellia192cfb8_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_CFB8 , ossl_camellia128cfb8_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_256_CTR , ossl_camellia256ctr_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_192_CTR , ossl_camellia192ctr_functions ) ,
ALG ( PROV_NAMES_CAMELLIA_128_CTR , ossl_camellia128ctr_functions ) ,
# endif /* OPENSSL_NO_CAMELLIA */
# ifndef OPENSSL_NO_DES
ALG ( " DES-EDE3-ECB:DES-EDE3 " , ossl_tdes_ede3_ecb_functions ) ,
ALG ( " DES-EDE3-CBC:DES3 " , ossl_tdes_ede3_cbc_functions ) ,
ALG ( " DES-EDE3-OFB " , ossl_tdes_ede3_ofb_functions ) ,
ALG ( " DES-EDE3-CFB " , ossl_tdes_ede3_cfb_functions ) ,
ALG ( " DES-EDE3-CFB8 " , ossl_tdes_ede3_cfb8_functions ) ,
ALG ( " DES-EDE3-CFB1 " , ossl_tdes_ede3_cfb1_functions ) ,
ALG ( " DES3-WRAP:id-smime-alg-CMS3DESwrap " , ossl_tdes_wrap_cbc_functions ) ,
ALG ( " DES-EDE-ECB:DES-EDE " , ossl_tdes_ede2_ecb_functions ) ,
ALG ( " DES-EDE-CBC " , ossl_tdes_ede2_cbc_functions ) ,
ALG ( " DES-EDE-OFB " , ossl_tdes_ede2_ofb_functions ) ,
ALG ( " DES-EDE-CFB " , ossl_tdes_ede2_cfb_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_ECB , ossl_tdes_ede3_ecb_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_CBC , ossl_tdes_ede3_cbc_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_OFB , ossl_tdes_ede3_ofb_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_CFB , ossl_tdes_ede3_cfb_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_CFB8 , ossl_tdes_ede3_cfb8_functions ) ,
ALG ( PROV_NAMES_DES_EDE3_CFB1 , ossl_tdes_ede3_cfb1_functions ) ,
ALG ( PROV_NAMES_DES3_WRAP , ossl_tdes_wrap_cbc_functions ) ,
ALG ( PROV_NAMES_DES_EDE_ECB , ossl_tdes_ede2_ecb_functions ) ,
ALG ( PROV_NAMES_DES_EDE_CBC , ossl_tdes_ede2_cbc_functions ) ,
ALG ( PROV_NAMES_DES_EDE_OFB , ossl_tdes_ede2_ofb_functions ) ,
ALG ( PROV_NAMES_DES_EDE_CFB , ossl_tdes_ede2_cfb_functions ) ,
# endif /* OPENSSL_NO_DES */
# ifndef OPENSSL_NO_SM4
ALG ( " SM4-ECB " , ossl_sm4128ecb_functions ) ,
ALG ( " SM4-CBC:SM4 " , ossl_sm4128cbc_functions ) ,
ALG ( " SM4-CTR " , ossl_sm4128ctr_functions ) ,
ALG ( " SM4-OFB:SM4-OFB128 " , ossl_sm4128ofb128_functions ) ,
ALG ( " SM4-CFB:SM4-CFB128 " , ossl_sm4128cfb128_functions ) ,
ALG ( PROV_NAMES_SM4_ECB , ossl_sm4128ecb_functions ) ,
ALG ( PROV_NAMES_SM4_CBC , ossl_sm4128cbc_functions ) ,
ALG ( PROV_NAMES_SM4_CTR , ossl_sm4128ctr_functions ) ,
ALG ( PROV_NAMES_SM4_OFB , ossl_sm4128ofb128_functions ) ,
ALG ( PROV_NAMES_SM4_CFB , ossl_sm4128cfb128_functions ) ,
# endif /* OPENSSL_NO_SM4 */
# ifndef OPENSSL_NO_CHACHA
ALG ( " ChaCha20 " , ossl_chacha20_functions ) ,
ALG ( PROV_NAMES_ChaCha20 , ossl_chacha20_functions ) ,
# ifndef OPENSSL_NO_POLY1305
ALG ( " ChaCha20-Poly1305 " , ossl_chacha20_ossl_poly1305_functions ) ,
ALG ( PROV_NAMES_ChaCha20_Poly1305 , ossl_chacha20_ossl_poly1305_functions ) ,
# endif /* OPENSSL_NO_POLY1305 */
# endif /* OPENSSL_NO_CHACHA */
{ { NULL , NULL , NULL } , NULL }
@ -306,154 +299,154 @@ static OSSL_ALGORITHM exported_ciphers[OSSL_NELEM(deflt_ciphers)];
static const OSSL_ALGORITHM deflt_macs [ ] = {
# ifndef OPENSSL_NO_BLAKE2
{ " BLAKE2BMAC " , " provider=default " , ossl_blake2bmac_functions } ,
{ " BLAKE2SMAC " , " provider=default " , ossl_blake2smac_functions } ,
{ PROV_NAMES_BLAKE2BMAC , " provider=default " , ossl_blake2bmac_functions } ,
{ PROV_NAMES_BLAKE2SMAC , " provider=default " , ossl_blake2smac_functions } ,
# endif
# ifndef OPENSSL_NO_CMAC
{ " CMAC " , " provider=default " , ossl_cmac_functions } ,
{ PROV_NAMES_CMAC , " provider=default " , ossl_cmac_functions } ,
# endif
{ " GMAC " , " provider=default " , ossl_gmac_functions } ,
{ " HMAC " , " provider=default " , ossl_hmac_functions } ,
{ " KMAC-128:KMAC128 " , " provider=default " , ossl_kmac128_functions } ,
{ " KMAC-256:KMAC256 " , " provider=default " , ossl_kmac256_functions } ,
{ PROV_NAMES_GMAC , " provider=default " , ossl_gmac_functions } ,
{ PROV_NAMES_HMAC , " provider=default " , ossl_hmac_functions } ,
{ PROV_NAMES_KMAC_128 , " provider=default " , ossl_kmac128_functions } ,
{ PROV_NAMES_KMAC_256 , " provider=default " , ossl_kmac256_functions } ,
# ifndef OPENSSL_NO_SIPHASH
{ " SIPHASH " , " provider=default " , ossl_siphash_functions } ,
{ PROV_NAMES_SIPHASH , " provider=default " , ossl_siphash_functions } ,
# endif
# ifndef OPENSSL_NO_POLY1305
{ " POLY1305 " , " provider=default " , ossl_poly1305_functions } ,
{ PROV_NAMES_POLY1305 , " provider=default " , ossl_poly1305_functions } ,
# endif
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_kdfs [ ] = {
{ " HKDF " , " provider=default " , ossl_kdf_hkdf_functions } ,
{ " SSKDF " , " provider=default " , ossl_kdf_sskdf_functions } ,
{ " PBKDF2 " , " provider=default " , ossl_kdf_pbkdf2_functions } ,
{ " PKCS12KDF " , " provider=default " , ossl_kdf_pkcs12_functions } ,
{ " SSHKDF " , " provider=default " , ossl_kdf_sshkdf_functions } ,
{ " X963KDF:X942KDF-CONCAT " , " provider=default " , ossl_kdf_x963_kdf_functions } ,
{ " TLS1-PRF " , " provider=default " , ossl_kdf_tls1_prf_functions } ,
{ " KBKDF " , " provider=default " , ossl_kdf_kbkdf_functions } ,
{ " X942KDF-ASN1:X942KDF " , " provider=default " , ossl_kdf_x942_kdf_functions } ,
{ PROV_NAMES_HKDF , " provider=default " , ossl_kdf_hkdf_functions } ,
{ PROV_NAMES_SSKDF , " provider=default " , ossl_kdf_sskdf_functions } ,
{ PROV_NAMES_PBKDF2 , " provider=default " , ossl_kdf_pbkdf2_functions } ,
{ PROV_NAMES_PKCS12KDF , " provider=default " , ossl_kdf_pkcs12_functions } ,
{ PROV_NAMES_SSHKDF , " provider=default " , ossl_kdf_sshkdf_functions } ,
{ PROV_NAMES_X963KDF , " provider=default " , ossl_kdf_x963_kdf_functions } ,
{ PROV_NAMES_TLS1_PRF , " provider=default " , ossl_kdf_tls1_prf_functions } ,
{ PROV_NAMES_KBKDF , " provider=default " , ossl_kdf_kbkdf_functions } ,
{ PROV_NAMES_X942KDF_ASN1 , " provider=default " , ossl_kdf_x942_kdf_functions } ,
# ifndef OPENSSL_NO_SCRYPT
{ " SCRYPT:id-scrypt " , " provider=default " , ossl_kdf_scrypt_functions } ,
{ PROV_NAMES_SCRYPT , " provider=default " , ossl_kdf_scrypt_functions } ,
# endif
{ " KRB5KDF " , " provider=default " , ossl_kdf_krb5kdf_functions } ,
{ PROV_NAMES_KRB5KDF , " provider=default " , ossl_kdf_krb5kdf_functions } ,
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_keyexch [ ] = {
# ifndef OPENSSL_NO_DH
{ " DH:dhKeyAgreement " , " provider=default " , ossl_dh_keyexch_functions } ,
{ PROV_NAMES_DH , " provider=default " , ossl_dh_keyexch_functions } ,
# endif
# ifndef OPENSSL_NO_EC
{ " ECDH " , " provider=default " , ossl_ecdh_keyexch_functions } ,
{ " X25519 " , " provider=default " , ossl_x25519_keyexch_functions } ,
{ " X448 " , " provider=default " , ossl_x448_keyexch_functions } ,
{ PROV_NAMES_ECDH , " provider=default " , ossl_ecdh_keyexch_functions } ,
{ PROV_NAMES_X25519 , " provider=default " , ossl_x25519_keyexch_functions } ,
{ PROV_NAMES_X448 , " provider=default " , ossl_x448_keyexch_functions } ,
# endif
{ " TLS1-PRF " , " provider=default " , ossl_kdf_tls1_prf_keyexch_functions } ,
{ " HKDF " , " provider=default " , ossl_kdf_hkdf_keyexch_functions } ,
{ " SCRYPT:id-scrypt " , " provider=default " ,
{ PROV_NAMES_TLS1_PRF , " provider=default " , ossl_kdf_tls1_prf_keyexch_functions } ,
{ PROV_NAMES_HKDF , " provider=default " , ossl_kdf_hkdf_keyexch_functions } ,
{ PROV_NAMES_SCRYPT , " provider=default " ,
ossl_kdf_scrypt_keyexch_functions } ,
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_rands [ ] = {
{ " CTR-DRBG " , " provider=default " , ossl_drbg_ctr_functions } ,
{ " HASH-DRBG " , " provider=default " , ossl_drbg_hash_functions } ,
{ " HMAC-DRBG " , " provider=default " , ossl_drbg_ossl_hmac_functions } ,
{ " SEED-SRC " , " provider=default " , ossl_seed_src_functions } ,
{ " TEST-RAND " , " provider=default " , ossl_test_rng_functions } ,
{ PROV_NAMES_CTR_DRBG , " provider=default " , ossl_drbg_ctr_functions } ,
{ PROV_NAMES_HASH_DRBG , " provider=default " , ossl_drbg_hash_functions } ,
{ PROV_NAMES_HMAC_DRBG , " provider=default " , ossl_drbg_ossl_hmac_functions } ,
{ PROV_NAMES_SEED_SRC , " provider=default " , ossl_seed_src_functions } ,
{ PROV_NAMES_TEST_RAND , " provider=default " , ossl_test_rng_functions } ,
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_signature [ ] = {
# ifndef OPENSSL_NO_DSA
{ " DSA:dsaEncryption " , " provider=default " , ossl_dsa_signature_functions } ,
{ PROV_NAMES_DSA , " provider=default " , ossl_dsa_signature_functions } ,
# endif
{ " RSA:rsaEncryption " , " provider=default " , ossl_rsa_signature_functions } ,
{ PROV_NAMES_RSA , " provider=default " , ossl_rsa_signature_functions } ,
# ifndef OPENSSL_NO_EC
{ " ED25519 " , " provider=default " , ossl_ed25519_signature_functions } ,
{ " ED448 " , " provider=default " , ossl_ed448_signature_functions } ,
{ " ECDSA " , " provider=default " , ossl_ecdsa_signature_functions } ,
{ PROV_NAMES_ED25519 , " provider=default " , ossl_ed25519_signature_functions } ,
{ PROV_NAMES_ED448 , " provider=default " , ossl_ed448_signature_functions } ,
{ PROV_NAMES_ECDSA , " provider=default " , ossl_ecdsa_signature_functions } ,
# ifndef OPENSSL_NO_SM2
{ " SM2 " , " provider=default " , ossl_sm2_signature_functions } ,
{ PROV_NAMES_SM2 , " provider=default " , ossl_sm2_signature_functions } ,
# endif
# endif
{ " HMAC " , " provider=default " , ossl_mac_legacy_hmac_signature_functions } ,
{ " SIPHASH " , " provider=default " ,
{ PROV_NAMES_HMAC , " provider=default " , ossl_mac_legacy_hmac_signature_functions } ,
{ PROV_NAMES_SIPHASH , " provider=default " ,
ossl_mac_legacy_siphash_signature_functions } ,
# ifndef OPENSSL_NO_POLY1305
{ " POLY1305 " , " provider=default " ,
{ PROV_NAMES_POLY1305 , " provider=default " ,
ossl_mac_legacy_poly1305_signature_functions } ,
# endif
# ifndef OPENSSL_NO_CMAC
{ " CMAC " , " provider=default " , ossl_mac_legacy_cmac_signature_functions } ,
{ PROV_NAMES_CMAC , " provider=default " , ossl_mac_legacy_cmac_signature_functions } ,
# endif
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_asym_cipher [ ] = {
{ " RSA:rsaEncryption " , " provider=default " , ossl_rsa_asym_cipher_functions } ,
{ PROV_NAMES_RSA , " provider=default " , ossl_rsa_asym_cipher_functions } ,
# ifndef OPENSSL_NO_SM2
{ " SM2 " , " provider=default " , ossl_sm2_asym_cipher_functions } ,
{ PROV_NAMES_SM2 , " provider=default " , ossl_sm2_asym_cipher_functions } ,
# endif
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_asym_kem [ ] = {
{ " RSA " , " provider=default " , ossl_rsa_asym_kem_functions } ,
{ PROV_NAMES_RSA , " provider=default " , ossl_rsa_asym_kem_functions } ,
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM deflt_keymgmt [ ] = {
# ifndef OPENSSL_NO_DH
{ " DH:dhKeyAgreement " , " provider=default " , ossl_dh_keymgmt_functions ,
" OpenSSL PKCS#3 DH implementation " } ,
{ " DHX:X9.42 DH:dhpublicnumber " , " provider=default " ,
ossl_dhx_keymgmt_functions , " OpenSSL X9.42 DH implementation " } ,
{ PROV_NAMES_DH , " provider=default " , ossl_dh_keymgmt_functions ,
PROV_DESCS_DH } ,
{ PROV_NAMES_DHX , " provider=default " , ossl_dhx_keymgmt_functions ,
PROV_DESCS_DHX } ,
# endif
# ifndef OPENSSL_NO_DSA
{ " DSA:dsaEncryption " , " provider=default " , ossl_dsa_keymgmt_functions ,
" OpenSSL DSA implementation " } ,
{ PROV_NAMES_DSA , " provider=default " , ossl_dsa_keymgmt_functions ,
PROV_DESCS_DSA } ,
# endif
{ " RSA:rsaEncryption " , " provider=default " , ossl_rsa_keymgmt_functions ,
" OpenSSL RSA implementation " } ,
{ " RSA-PSS:RSASSA-PSS " , " provider=default " , ossl_rsapss_keymgmt_functions ,
" OpenSSL RSA-PSS implementation " } ,
{ PROV_NAMES_RSA , " provider=default " , ossl_rsa_keymgmt_functions ,
PROV_DESCS_RSA } ,
{ PROV_NAMES_RSA_PSS , " provider=default " , ossl_rsapss_keymgmt_functions ,
PROV_DESCS_RSA_PSS } ,
# ifndef OPENSSL_NO_EC
{ " EC:id-ecPublicKey " , " provider=default " , ossl_ec_keymgmt_functions ,
" OpenSSL EC implementation " } ,
{ " X25519 " , " provider=default " , ossl_x25519_keymgmt_functions ,
" OpenSSL X25519 implementation " } ,
{ " X448 " , " provider=default " , ossl_x448_keymgmt_functions ,
" OpenSSL X448 implementation " } ,
{ " ED25519 " , " provider=default " , ossl_ed25519_keymgmt_functions ,
" OpenSSL ED25519 implementation " } ,
{ " ED448 " , " provider=default " , ossl_ed448_keymgmt_functions ,
" OpenSSL ED448 implementation " } ,
{ PROV_NAMES_EC , " provider=default " , ossl_ec_keymgmt_functions ,
PROV_DESCS_EC } ,
{ PROV_NAMES_X25519 , " provider=default " , ossl_x25519_keymgmt_functions ,
PROV_DESCS_X25519 } ,
{ PROV_NAMES_X448 , " provider=default " , ossl_x448_keymgmt_functions ,
PROV_DESCS_X448 } ,
{ PROV_NAMES_ED25519 , " provider=default " , ossl_ed25519_keymgmt_functions ,
PROV_DESCS_ED25519 } ,
{ PROV_NAMES_ED448 , " provider=default " , ossl_ed448_keymgmt_functions ,
PROV_DESCS_ED448 } ,
# endif
{ " TLS1-PRF " , " provider=default " , ossl_kdf_keymgmt_functions ,
" OpenSSL TLS1-PRF via EVP_PKEY implementation " } ,
{ " HKDF " , " provider=default " , ossl_kdf_keymgmt_functions ,
" OpenSSL HKDF via EVP_PKEY implementation " } ,
{ " SCRYPT:id-scrypt " , " provider=default " , ossl_kdf_keymgmt_functions ,
" OpenSSL SCRYPT via EVP_PKEY implementation " } ,
{ " HMAC " , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
" OpenSSL HMAC via EVP_PKEY implementation " } ,
{ " SIPHASH " , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
" OpenSSL SIPHASH via EVP_PKEY implementation " } ,
{ PROV_NAMES_TLS1_PRF , " provider=default " , ossl_kdf_keymgmt_functions ,
PROV_DESCS_TLS1_PRF_SIGN } ,
{ PROV_NAMES_HKDF , " provider=default " , ossl_kdf_keymgmt_functions ,
PROV_DESCS_HKDF_SIGN } ,
{ PROV_NAMES_SCRYPT , " provider=default " , ossl_kdf_keymgmt_functions ,
PROV_DESCS_SCRYPT_SIGN } ,
{ PROV_NAMES_HMAC , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
PROV_DESCS_HMAC_SIGN } ,
{ PROV_NAMES_SIPHASH , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
PROV_DESCS_SIPHASH_SIGN } ,
# ifndef OPENSSL_NO_POLY1305
{ " POLY1305 " , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
" OpenSSL POLY1305 via EVP_PKEY implementation " } ,
{ PROV_NAMES_POLY1305 , " provider=default " , ossl_mac_legacy_keymgmt_functions ,
PROV_DESCS_POLY1305_SIGN } ,
# endif
# ifndef OPENSSL_NO_CMAC
{ " CMAC " , " provider=default " , ossl_cossl_ mac_legacy_keymgmt_functions ,
" OpenSSL CMAC via EVP_PKEY implementation " } ,
{ PROV_NAMES_CMAC , " provider=default " , ossl_cmac_legacy_keymgmt_functions ,
PROV_DESCS_CMAC_SIGN } ,
# endif
# ifndef OPENSSL_NO_SM2
{ " SM2 " , " provider=default " , ossl_sm2_keymgmt_functions ,
" OpenSSL SM2 implementation " } ,
{ PROV_NAMES_SM2 , " provider=default " , ossl_sm2_keymgmt_functions ,
PROV_DESCS_SM2 } ,
# endif
{ NULL , NULL , NULL }
} ;