@ -15,6 +15,8 @@
# include <openssl/params.h>
# include "prov/implementations.h"
# define ALG(NAMES, FUNC) { NAMES, "provider=legacy", FUNC }
# ifdef STATIC_LEGACY
OSSL_provider_init_fn ossl_legacy_provider_init ;
# define OSSL_provider_init ossl_legacy_provider_init
@ -56,25 +58,78 @@ static int legacy_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[])
static const OSSL_ALGORITHM legacy_digests [ ] = {
# ifndef OPENSSL_NO_MD2
{ " MD2 " , " provider=legacy " , md2_functions } ,
ALG ( " MD2 " , md2_functions ) ,
# endif
# ifndef OPENSSL_NO_MD4
{ " MD4 " , " provider=legacy " , md4_functions } ,
ALG ( " MD4 " , md4_functions ) ,
# endif
# ifndef OPENSSL_NO_MDC2
{ " MDC2 " , " provider=legacy " , mdc2_functions } ,
ALG ( " MDC2 " , mdc2_functions ) ,
# endif /* OPENSSL_NO_MDC2 */
# ifndef OPENSSL_NO_WHIRLPOOL
{ " WHIRLPOOL " , " provider=legacy " , wp_functions } ,
ALG ( " WHIRLPOOL " , wp_functions ) ,
# endif /* OPENSSL_NO_WHIRLPOOL */
# ifndef OPENSSL_NO_RMD160
{ " RIPEMD-160:RIPEMD160:RIPEMD:RMD160 " , " provider=legacy " , ripemd160_functions } ,
ALG ( " RIPEMD-160:RIPEMD160:RIPEMD:RMD160 " , ripemd160_functions ) ,
# endif /* OPENSSL_NO_RMD160 */
{ NULL , NULL , NULL }
} ;
static const OSSL_ALGORITHM legacy_ciphers [ ] = {
# ifndef OPENSSL_NO_CAST
ALG ( " CAST5-ECB " , cast5128ecb_functions ) ,
ALG ( " CAST5-CBC:CAST-CBC:CAST " , cast5128cbc_functions ) ,
ALG ( " CAST5-OFB " , cast564ofb64_functions ) ,
ALG ( " CAST5-CFB " , cast564cfb64_functions ) ,
# endif /* OPENSSL_NO_CAST */
# ifndef OPENSSL_NO_BF
ALG ( " BF-ECB " , blowfish128ecb_functions ) ,
ALG ( " BF-CBC:BF:BLOWFISH " , blowfish128cbc_functions ) ,
ALG ( " BF-OFB " , blowfish64ofb64_functions ) ,
ALG ( " BF-CFB " , blowfish64cfb64_functions ) ,
# endif /* OPENSSL_NO_BF */
# ifndef OPENSSL_NO_IDEA
ALG ( " IDEA-ECB " , idea128ecb_functions ) ,
ALG ( " IDEA-CBC:IDEA " , idea128cbc_functions ) ,
ALG ( " IDEA-OFB:IDEA-OFB64 " , idea128ofb64_functions ) ,
ALG ( " IDEA-CFB:IDEA-CFB64 " , idea128cfb64_functions ) ,
# endif /* OPENSSL_NO_IDEA */
# ifndef OPENSSL_NO_SEED
ALG ( " SEED-ECB " , seed128ecb_functions ) ,
ALG ( " SEED-CBC:SEED " , seed128cbc_functions ) ,
ALG ( " SEED-OFB:SEED-OFB128 " , seed128ofb128_functions ) ,
ALG ( " SEED-CFB:SEED-CFB128 " , seed128cfb128_functions ) ,
# endif /* OPENSSL_NO_SEED */
# ifndef OPENSSL_NO_RC2
ALG ( " RC2-ECB " , rc2128ecb_functions ) ,
ALG ( " RC2-CBC " , rc2128cbc_functions ) ,
ALG ( " RC2-40-CBC " , rc240cbc_functions ) ,
ALG ( " RC2-64-CBC " , rc264cbc_functions ) ,
ALG ( " RC2-CFB " , rc2128cfb128_functions ) ,
ALG ( " RC2-OFB " , rc2128ofb128_functions ) ,
# endif /* OPENSSL_NO_RC2 */
# ifndef OPENSSL_NO_RC4
ALG ( " RC4 " , rc4128_functions ) ,
ALG ( " RC4-40 " , rc440_functions ) ,
# ifndef OPENSSL_NO_MD5
ALG ( " RC4-HMAC-MD5 " , rc4_hmac_md5_functions ) ,
# endif /* OPENSSL_NO_MD5 */
# endif /* OPENSSL_NO_RC4 */
# ifndef OPENSSL_NO_RC5
ALG ( " RC5-ECB " , rc5128ecb_functions ) ,
ALG ( " RC5-CBC " , rc5128cbc_functions ) ,
ALG ( " RC5-OFB " , rc5128ofb64_functions ) ,
ALG ( " RC5-CFB " , rc5128cfb64_functions ) ,
# endif /* OPENSSL_NO_RC5 */
# ifndef OPENSSL_NO_DES
ALG ( " DESX-CBC:DESX " , tdes_desx_cbc_functions ) ,
ALG ( " DES-ECB " , des_ecb_functions ) ,
ALG ( " DES-CBC:DES " , des_cbc_functions ) ,
ALG ( " DES-OFB " , des_ofb64_functions ) ,
ALG ( " DES-CFB " , des_cfb64_functions ) ,
ALG ( " DES-CFB1 " , des_cfb1_functions ) ,
ALG ( " DES-CFB8 " , des_cfb8_functions ) ,
# endif /* OPENSSL_NO_DES */
{ NULL , NULL , NULL }
} ;
@ -86,6 +141,8 @@ static const OSSL_ALGORITHM *legacy_query(OSSL_PROVIDER *prov,
switch ( operation_id ) {
case OSSL_OP_DIGEST :
return legacy_digests ;
case OSSL_OP_CIPHER :
return legacy_ciphers ;
}
return NULL ;
}