+++ /dev/null
-/*
- * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License"). You may not use
- * this file except in compliance with the License. You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/* Digests */
-extern const OSSL_DISPATCH sha1_functions[];
-extern const OSSL_DISPATCH sha224_functions[];
-extern const OSSL_DISPATCH sha256_functions[];
-extern const OSSL_DISPATCH sha384_functions[];
-extern const OSSL_DISPATCH sha512_functions[];
-extern const OSSL_DISPATCH sha512_224_functions[];
-extern const OSSL_DISPATCH sha512_256_functions[];
-extern const OSSL_DISPATCH sha3_224_functions[];
-extern const OSSL_DISPATCH sha3_256_functions[];
-extern const OSSL_DISPATCH sha3_384_functions[];
-extern const OSSL_DISPATCH sha3_512_functions[];
-extern const OSSL_DISPATCH keccak_kmac_128_functions[];
-extern const OSSL_DISPATCH keccak_kmac_256_functions[];
-extern const OSSL_DISPATCH shake_128_functions[];
-extern const OSSL_DISPATCH shake_256_functions[];
-extern const OSSL_DISPATCH blake2s256_functions[];
-extern const OSSL_DISPATCH blake2b512_functions[];
-extern const OSSL_DISPATCH md5_functions[];
-extern const OSSL_DISPATCH md5_sha1_functions[];
-extern const OSSL_DISPATCH sm3_functions[];
-extern const OSSL_DISPATCH md2_functions[];
-extern const OSSL_DISPATCH md4_functions[];
-extern const OSSL_DISPATCH mdc2_functions[];
-extern const OSSL_DISPATCH wp_functions[];
-extern const OSSL_DISPATCH ripemd160_functions[];
-
-/* Ciphers */
-extern const OSSL_DISPATCH aes256ecb_functions[];
-extern const OSSL_DISPATCH aes192ecb_functions[];
-extern const OSSL_DISPATCH aes128ecb_functions[];
-extern const OSSL_DISPATCH aes256cbc_functions[];
-extern const OSSL_DISPATCH aes192cbc_functions[];
-extern const OSSL_DISPATCH aes128cbc_functions[];
-extern const OSSL_DISPATCH aes256ofb_functions[];
-extern const OSSL_DISPATCH aes192ofb_functions[];
-extern const OSSL_DISPATCH aes128ofb_functions[];
-extern const OSSL_DISPATCH aes256cfb_functions[];
-extern const OSSL_DISPATCH aes192cfb_functions[];
-extern const OSSL_DISPATCH aes128cfb_functions[];
-extern const OSSL_DISPATCH aes256cfb1_functions[];
-extern const OSSL_DISPATCH aes192cfb1_functions[];
-extern const OSSL_DISPATCH aes128cfb1_functions[];
-extern const OSSL_DISPATCH aes256cfb8_functions[];
-extern const OSSL_DISPATCH aes192cfb8_functions[];
-extern const OSSL_DISPATCH aes128cfb8_functions[];
-extern const OSSL_DISPATCH aes256ctr_functions[];
-extern const OSSL_DISPATCH aes192ctr_functions[];
-extern const OSSL_DISPATCH aes128ctr_functions[];
-extern const OSSL_DISPATCH aes256xts_functions[];
-extern const OSSL_DISPATCH aes128xts_functions[];
-#ifndef OPENSSL_NO_OCB
-extern const OSSL_DISPATCH aes256ocb_functions[];
-extern const OSSL_DISPATCH aes192ocb_functions[];
-extern const OSSL_DISPATCH aes128ocb_functions[];
-#endif /* OPENSSL_NO_OCB */
-extern const OSSL_DISPATCH aes256gcm_functions[];
-extern const OSSL_DISPATCH aes192gcm_functions[];
-extern const OSSL_DISPATCH aes128gcm_functions[];
-extern const OSSL_DISPATCH aes256ccm_functions[];
-extern const OSSL_DISPATCH aes192ccm_functions[];
-extern const OSSL_DISPATCH aes128ccm_functions[];
-extern const OSSL_DISPATCH aes256wrap_functions[];
-extern const OSSL_DISPATCH aes192wrap_functions[];
-extern const OSSL_DISPATCH aes128wrap_functions[];
-extern const OSSL_DISPATCH aes256wrappad_functions[];
-extern const OSSL_DISPATCH aes192wrappad_functions[];
-extern const OSSL_DISPATCH aes128wrappad_functions[];
-
-#ifndef OPENSSL_NO_ARIA
-extern const OSSL_DISPATCH aria256gcm_functions[];
-extern const OSSL_DISPATCH aria192gcm_functions[];
-extern const OSSL_DISPATCH aria128gcm_functions[];
-extern const OSSL_DISPATCH aria256ccm_functions[];
-extern const OSSL_DISPATCH aria192ccm_functions[];
-extern const OSSL_DISPATCH aria128ccm_functions[];
-extern const OSSL_DISPATCH aria256ecb_functions[];
-extern const OSSL_DISPATCH aria192ecb_functions[];
-extern const OSSL_DISPATCH aria128ecb_functions[];
-extern const OSSL_DISPATCH aria256cbc_functions[];
-extern const OSSL_DISPATCH aria192cbc_functions[];
-extern const OSSL_DISPATCH aria128cbc_functions[];
-extern const OSSL_DISPATCH aria256ofb_functions[];
-extern const OSSL_DISPATCH aria192ofb_functions[];
-extern const OSSL_DISPATCH aria128ofb_functions[];
-extern const OSSL_DISPATCH aria256cfb_functions[];
-extern const OSSL_DISPATCH aria192cfb_functions[];
-extern const OSSL_DISPATCH aria128cfb_functions[];
-extern const OSSL_DISPATCH aria256cfb1_functions[];
-extern const OSSL_DISPATCH aria192cfb1_functions[];
-extern const OSSL_DISPATCH aria128cfb1_functions[];
-extern const OSSL_DISPATCH aria256cfb8_functions[];
-extern const OSSL_DISPATCH aria192cfb8_functions[];
-extern const OSSL_DISPATCH aria128cfb8_functions[];
-extern const OSSL_DISPATCH aria256ctr_functions[];
-extern const OSSL_DISPATCH aria192ctr_functions[];
-extern const OSSL_DISPATCH aria128ctr_functions[];
-#endif /* OPENSSL_NO_ARIA */
-#ifndef OPENSSL_NO_CAMELLIA
-extern const OSSL_DISPATCH camellia256ecb_functions[];
-extern const OSSL_DISPATCH camellia192ecb_functions[];
-extern const OSSL_DISPATCH camellia128ecb_functions[];
-extern const OSSL_DISPATCH camellia256cbc_functions[];
-extern const OSSL_DISPATCH camellia192cbc_functions[];
-extern const OSSL_DISPATCH camellia128cbc_functions[];
-extern const OSSL_DISPATCH camellia256ofb_functions[];
-extern const OSSL_DISPATCH camellia192ofb_functions[];
-extern const OSSL_DISPATCH camellia128ofb_functions[];
-extern const OSSL_DISPATCH camellia256cfb_functions[];
-extern const OSSL_DISPATCH camellia192cfb_functions[];
-extern const OSSL_DISPATCH camellia128cfb_functions[];
-extern const OSSL_DISPATCH camellia256cfb1_functions[];
-extern const OSSL_DISPATCH camellia192cfb1_functions[];
-extern const OSSL_DISPATCH camellia128cfb1_functions[];
-extern const OSSL_DISPATCH camellia256cfb8_functions[];
-extern const OSSL_DISPATCH camellia192cfb8_functions[];
-extern const OSSL_DISPATCH camellia128cfb8_functions[];
-extern const OSSL_DISPATCH camellia256ctr_functions[];
-extern const OSSL_DISPATCH camellia192ctr_functions[];
-extern const OSSL_DISPATCH camellia128ctr_functions[];
-#endif /* OPENSSL_NO_CAMELLIA */
-#ifndef OPENSSL_NO_BF
-extern const OSSL_DISPATCH blowfish128ecb_functions[];
-extern const OSSL_DISPATCH blowfish128cbc_functions[];
-extern const OSSL_DISPATCH blowfish64ofb64_functions[];
-extern const OSSL_DISPATCH blowfish64cfb64_functions[];
-#endif /* OPENSSL_NO_BF */
-#ifndef OPENSSL_NO_IDEA
-extern const OSSL_DISPATCH idea128ecb_functions[];
-extern const OSSL_DISPATCH idea128cbc_functions[];
-extern const OSSL_DISPATCH idea128ofb64_functions[];
-extern const OSSL_DISPATCH idea128cfb64_functions[];
-#endif /* OPENSSL_NO_IDEA */
-#ifndef OPENSSL_NO_CAST
-extern const OSSL_DISPATCH cast5128ecb_functions[];
-extern const OSSL_DISPATCH cast5128cbc_functions[];
-extern const OSSL_DISPATCH cast564ofb64_functions[];
-extern const OSSL_DISPATCH cast564cfb64_functions[];
-#endif /* OPENSSL_NO_CAST */
-#ifndef OPENSSL_NO_SEED
-extern const OSSL_DISPATCH seed128ecb_functions[];
-extern const OSSL_DISPATCH seed128cbc_functions[];
-extern const OSSL_DISPATCH seed128ofb128_functions[];
-extern const OSSL_DISPATCH seed128cfb128_functions[];
-#endif /* OPENSSL_NO_SEED */
-#ifndef OPENSSL_NO_SM4
-extern const OSSL_DISPATCH sm4128ecb_functions[];
-extern const OSSL_DISPATCH sm4128cbc_functions[];
-extern const OSSL_DISPATCH sm4128ctr_functions[];
-extern const OSSL_DISPATCH sm4128ofb128_functions[];
-extern const OSSL_DISPATCH sm4128cfb128_functions[];
-#endif /* OPENSSL_NO_SM4 */
-#ifndef OPENSSL_NO_RC5
-extern const OSSL_DISPATCH rc5128ecb_functions[];
-extern const OSSL_DISPATCH rc5128cbc_functions[];
-extern const OSSL_DISPATCH rc5128ofb64_functions[];
-extern const OSSL_DISPATCH rc5128cfb64_functions[];
-#endif /* OPENSSL_NO_RC5 */
-#ifndef OPENSSL_NO_RC2
-extern const OSSL_DISPATCH rc2128ecb_functions[];
-extern const OSSL_DISPATCH rc2128cbc_functions[];
-extern const OSSL_DISPATCH rc240cbc_functions[];
-extern const OSSL_DISPATCH rc264cbc_functions[];
-extern const OSSL_DISPATCH rc2128cfb128_functions[];
-extern const OSSL_DISPATCH rc2128ofb128_functions[];
-#endif /* OPENSSL_NO_RC2 */
-#ifndef OPENSSL_NO_DES
-extern const OSSL_DISPATCH tdes_ede3_ecb_functions[];
-extern const OSSL_DISPATCH tdes_ede3_cbc_functions[];
-# ifndef FIPS_MODE
-extern const OSSL_DISPATCH tdes_ede3_ofb_functions[];
-extern const OSSL_DISPATCH tdes_ede3_cfb_functions[];
-extern const OSSL_DISPATCH tdes_ede3_cfb8_functions[];
-extern const OSSL_DISPATCH tdes_ede3_cfb1_functions[];
-
-extern const OSSL_DISPATCH tdes_ede2_ecb_functions[];
-extern const OSSL_DISPATCH tdes_ede2_cbc_functions[];
-extern const OSSL_DISPATCH tdes_ede2_ofb_functions[];
-extern const OSSL_DISPATCH tdes_ede2_cfb_functions[];
-
-extern const OSSL_DISPATCH tdes_desx_cbc_functions[];
-extern const OSSL_DISPATCH tdes_wrap_cbc_functions[];
-
-extern const OSSL_DISPATCH des_ecb_functions[];
-extern const OSSL_DISPATCH des_cbc_functions[];
-extern const OSSL_DISPATCH des_ofb64_functions[];
-extern const OSSL_DISPATCH des_cfb64_functions[];
-extern const OSSL_DISPATCH des_cfb1_functions[];
-extern const OSSL_DISPATCH des_cfb8_functions[];
-# endif /* FIPS_MODE */
-#endif /* OPENSSL_NO_DES */
-
-#ifndef OPENSSL_NO_RC4
-extern const OSSL_DISPATCH rc440_functions[];
-extern const OSSL_DISPATCH rc4128_functions[];
-#endif /* OPENSSL_NO_RC4 */
-
-/* MACs */
-extern const OSSL_DISPATCH blake2bmac_functions[];
-extern const OSSL_DISPATCH blake2smac_functions[];
-extern const OSSL_DISPATCH cmac_functions[];
-extern const OSSL_DISPATCH gmac_functions[];
-extern const OSSL_DISPATCH hmac_functions[];
-extern const OSSL_DISPATCH kmac128_functions[];
-extern const OSSL_DISPATCH kmac256_functions[];
-extern const OSSL_DISPATCH siphash_functions[];
-extern const OSSL_DISPATCH poly1305_functions[];
-
-/* KDFs / PRFs */
-extern const OSSL_DISPATCH kdf_pbkdf2_functions[];
-#ifndef OPENSSL_NO_SCRYPT
-extern const OSSL_DISPATCH kdf_scrypt_functions[];
-#endif
-extern const OSSL_DISPATCH kdf_tls1_prf_functions[];
-extern const OSSL_DISPATCH kdf_hkdf_functions[];
-extern const OSSL_DISPATCH kdf_sshkdf_functions[];
-extern const OSSL_DISPATCH kdf_sskdf_functions[];
-extern const OSSL_DISPATCH kdf_x963_kdf_functions[];
-extern const OSSL_DISPATCH kdf_kbkdf_functions[];
-#ifndef OPENSSL_NO_CMS
-extern const OSSL_DISPATCH kdf_x942_kdf_functions[];
-#endif
-
-
-/* Key management */
-extern const OSSL_DISPATCH dh_keymgmt_functions[];
-extern const OSSL_DISPATCH dsa_keymgmt_functions[];
-
-/* Key Exchange */
-extern const OSSL_DISPATCH dh_keyexch_functions[];
-
-/* Signature */
-extern const OSSL_DISPATCH dsa_signature_functions[];
#include <openssl/core_numbers.h>
#include <openssl/core_names.h>
#include <openssl/params.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* Functions provided by the core */
static OSSL_core_gettable_params_fn *c_gettable_params = NULL;
#include "internal/cryptlib.h"
#include "internal/property.h"
#include "crypto/evp.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/providercommon.h"
#include "selftest.h"
/* Dispatch functions for AES cipher modes ecb, cbc, ofb, cfb, ctr */
#include "cipher_aes.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn aes_freectx;
static OSSL_OP_cipher_dupctx_fn aes_dupctx;
#include "prov/ciphercommon.h"
#include "prov/cipher_ccm.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static void *aes_ccm_newctx(void *provctx, size_t keybits)
{
#include "prov/ciphercommon.h"
#include "prov/cipher_gcm.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static void *aes_gcm_newctx(void *provctx, size_t keybits)
{
#include "cipher_aes_ocb.h"
#include "internal/providercommonerr.h"
#include "prov/cipher_aead.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#define AES_OCB_FLAGS AEAD_FLAGS
#include "cipher_aes.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* AES wrap with padding has IV length of 4, without padding 8 */
#define AES_WRAP_PAD_IVLEN 4
*/
#include "cipher_aes_xts.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
/* TODO (3.0) Figure out what flags need to be set */
/* Dispatch functions for ARIA cipher modes ecb, cbc, ofb, cfb, ctr */
#include "cipher_aria.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn aria_freectx;
static OSSL_OP_cipher_dupctx_fn aria_dupctx;
/* Dispatch functions for ARIA CCM mode */
#include "cipher_aria_ccm.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn aria_ccm_freectx;
/* Dispatch functions for ARIA GCM mode */
#include "cipher_aria_gcm.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static void *aria_gcm_newctx(void *provctx, size_t keybits)
{
/* Dispatch functions for Blowfish cipher modes ecb, cbc, ofb, cfb */
#include "cipher_blowfish.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#define BF_FLAGS (EVP_CIPH_VARIABLE_LENGTH)
/* Dispatch functions for CAMELLIA cipher modes ecb, cbc, ofb, cfb, ctr */
#include "cipher_camellia.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn camellia_freectx;
static OSSL_OP_cipher_dupctx_fn camellia_dupctx;
/* Dispatch functions for cast cipher modes ecb, cbc, ofb, cfb */
#include "cipher_cast.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#define CAST5_FLAGS (EVP_CIPH_VARIABLE_LENGTH)
#include "prov/ciphercommon.h"
#include "cipher_des.h"
#include "crypto/rand.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
/* TODO(3.0) Figure out what flags need to be here */
*/
#include "cipher_tdes_default.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* desx_cbc_functions */
IMPLEMENT_tdes_cipher(desx, DESX, cbc, CBC, TDES_FLAGS, 64*3, 64, 64, block);
/* Dispatch functions for Idea cipher modes ecb, cbc, ofb, cfb */
#include "cipher_idea.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn idea_freectx;
static OSSL_OP_cipher_dupctx_fn idea_dupctx;
/* Dispatch functions for RC2 cipher modes ecb, cbc, ofb, cfb */
#include "cipher_rc2.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
#define RC2_40_MAGIC 0xa0
/* Dispatch functions for RC4 ciphers */
#include "cipher_rc4.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* TODO (3.0) Figure out what flags are required */
#define RC4_FLAGS EVP_CIPH_FLAG_DEFAULT_ASN1
/* Dispatch functions for RC5 cipher modes ecb, cbc, ofb, cfb */
#include "cipher_rc5.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
static OSSL_OP_cipher_freectx_fn rc5_freectx;
/* Dispatch functions for Seed cipher modes ecb, cbc, ofb, cfb */
#include "cipher_seed.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn seed_freectx;
static OSSL_OP_cipher_dupctx_fn seed_dupctx;
/* Dispatch functions for cast cipher modes ecb, cbc, ofb, cfb */
#include "cipher_sm4.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_cipher_freectx_fn sm4_freectx;
static OSSL_OP_cipher_dupctx_fn sm4_dupctx;
#include "prov/ciphercommon.h"
#include "cipher_tdes.h"
#include "crypto/rand.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
void *tdes_newctx(void *provctx, int mode, size_t kbits, size_t blkbits,
*/
#include "cipher_tdes_default.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* tdes_ede3_ofb_functions */
IMPLEMENT_tdes_cipher(ede3, EDE3, ofb, OFB, TDES_FLAGS, 64*3, 8, 64, stream);
#include "cipher_tdes_default.h"
#include "crypto/evp.h"
#include "crypto/rand.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
/* TODO (3.0) Figure out what flags are requred */
#include <openssl/crypto.h>
#include "prov/blake2.h"
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
OSSL_OP_digest_init_fn blake2s256_init;
OSSL_OP_digest_init_fn blake2b512_init;
#include <openssl/crypto.h>
#include <openssl/md2.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* md2_functions */
IMPLEMENT_digest_functions(md2, MD2_CTX,
#include <openssl/crypto.h>
#include <openssl/md4.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* md4_functions */
IMPLEMENT_digest_functions(md4, MD4_CTX,
#include <openssl/crypto.h>
#include <openssl/md5.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* md5_functions */
IMPLEMENT_digest_functions(md5, MD5_CTX,
#include <openssl/core_names.h>
#include "prov/md5_sha1.h"
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_digest_set_ctx_params_fn md5_sha1_set_ctx_params;
static OSSL_OP_digest_settable_ctx_params_fn md5_sha1_settable_ctx_params;
#include <openssl/core_names.h>
#include <openssl/err.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
static OSSL_OP_digest_set_ctx_params_fn mdc2_set_ctx_params;
#include <openssl/crypto.h>
#include <openssl/ripemd.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* ripemd160_functions */
IMPLEMENT_digest_functions(ripemd160, RIPEMD160_CTX,
#include <openssl/params.h>
#include <openssl/core_names.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "crypto/sha.h"
static OSSL_OP_digest_set_ctx_params_fn sha1_set_ctx_params;
#include <openssl/err.h>
#include "internal/sha3.h"
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/providercommonerr.h"
/*
#include <openssl/crypto.h>
#include "internal/sm3.h"
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* sm3_functions */
IMPLEMENT_digest_functions(sm3, SM3_CTX,
#include <openssl/crypto.h>
#include <openssl/whrlpool.h>
#include "prov/digestcommon.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/* wp_functions */
IMPLEMENT_digest_functions(wp, WHIRLPOOL_CTX,
#include <openssl/core_names.h>
#include <openssl/dh.h>
#include <openssl/params.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_keyexch_newctx_fn dh_newctx;
static OSSL_OP_keyexch_init_fn dh_init;
--- /dev/null
+/*
+ * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/* Digests */
+extern const OSSL_DISPATCH sha1_functions[];
+extern const OSSL_DISPATCH sha224_functions[];
+extern const OSSL_DISPATCH sha256_functions[];
+extern const OSSL_DISPATCH sha384_functions[];
+extern const OSSL_DISPATCH sha512_functions[];
+extern const OSSL_DISPATCH sha512_224_functions[];
+extern const OSSL_DISPATCH sha512_256_functions[];
+extern const OSSL_DISPATCH sha3_224_functions[];
+extern const OSSL_DISPATCH sha3_256_functions[];
+extern const OSSL_DISPATCH sha3_384_functions[];
+extern const OSSL_DISPATCH sha3_512_functions[];
+extern const OSSL_DISPATCH keccak_kmac_128_functions[];
+extern const OSSL_DISPATCH keccak_kmac_256_functions[];
+extern const OSSL_DISPATCH shake_128_functions[];
+extern const OSSL_DISPATCH shake_256_functions[];
+extern const OSSL_DISPATCH blake2s256_functions[];
+extern const OSSL_DISPATCH blake2b512_functions[];
+extern const OSSL_DISPATCH md5_functions[];
+extern const OSSL_DISPATCH md5_sha1_functions[];
+extern const OSSL_DISPATCH sm3_functions[];
+extern const OSSL_DISPATCH md2_functions[];
+extern const OSSL_DISPATCH md4_functions[];
+extern const OSSL_DISPATCH mdc2_functions[];
+extern const OSSL_DISPATCH wp_functions[];
+extern const OSSL_DISPATCH ripemd160_functions[];
+
+/* Ciphers */
+extern const OSSL_DISPATCH aes256ecb_functions[];
+extern const OSSL_DISPATCH aes192ecb_functions[];
+extern const OSSL_DISPATCH aes128ecb_functions[];
+extern const OSSL_DISPATCH aes256cbc_functions[];
+extern const OSSL_DISPATCH aes192cbc_functions[];
+extern const OSSL_DISPATCH aes128cbc_functions[];
+extern const OSSL_DISPATCH aes256ofb_functions[];
+extern const OSSL_DISPATCH aes192ofb_functions[];
+extern const OSSL_DISPATCH aes128ofb_functions[];
+extern const OSSL_DISPATCH aes256cfb_functions[];
+extern const OSSL_DISPATCH aes192cfb_functions[];
+extern const OSSL_DISPATCH aes128cfb_functions[];
+extern const OSSL_DISPATCH aes256cfb1_functions[];
+extern const OSSL_DISPATCH aes192cfb1_functions[];
+extern const OSSL_DISPATCH aes128cfb1_functions[];
+extern const OSSL_DISPATCH aes256cfb8_functions[];
+extern const OSSL_DISPATCH aes192cfb8_functions[];
+extern const OSSL_DISPATCH aes128cfb8_functions[];
+extern const OSSL_DISPATCH aes256ctr_functions[];
+extern const OSSL_DISPATCH aes192ctr_functions[];
+extern const OSSL_DISPATCH aes128ctr_functions[];
+extern const OSSL_DISPATCH aes256xts_functions[];
+extern const OSSL_DISPATCH aes128xts_functions[];
+#ifndef OPENSSL_NO_OCB
+extern const OSSL_DISPATCH aes256ocb_functions[];
+extern const OSSL_DISPATCH aes192ocb_functions[];
+extern const OSSL_DISPATCH aes128ocb_functions[];
+#endif /* OPENSSL_NO_OCB */
+extern const OSSL_DISPATCH aes256gcm_functions[];
+extern const OSSL_DISPATCH aes192gcm_functions[];
+extern const OSSL_DISPATCH aes128gcm_functions[];
+extern const OSSL_DISPATCH aes256ccm_functions[];
+extern const OSSL_DISPATCH aes192ccm_functions[];
+extern const OSSL_DISPATCH aes128ccm_functions[];
+extern const OSSL_DISPATCH aes256wrap_functions[];
+extern const OSSL_DISPATCH aes192wrap_functions[];
+extern const OSSL_DISPATCH aes128wrap_functions[];
+extern const OSSL_DISPATCH aes256wrappad_functions[];
+extern const OSSL_DISPATCH aes192wrappad_functions[];
+extern const OSSL_DISPATCH aes128wrappad_functions[];
+
+#ifndef OPENSSL_NO_ARIA
+extern const OSSL_DISPATCH aria256gcm_functions[];
+extern const OSSL_DISPATCH aria192gcm_functions[];
+extern const OSSL_DISPATCH aria128gcm_functions[];
+extern const OSSL_DISPATCH aria256ccm_functions[];
+extern const OSSL_DISPATCH aria192ccm_functions[];
+extern const OSSL_DISPATCH aria128ccm_functions[];
+extern const OSSL_DISPATCH aria256ecb_functions[];
+extern const OSSL_DISPATCH aria192ecb_functions[];
+extern const OSSL_DISPATCH aria128ecb_functions[];
+extern const OSSL_DISPATCH aria256cbc_functions[];
+extern const OSSL_DISPATCH aria192cbc_functions[];
+extern const OSSL_DISPATCH aria128cbc_functions[];
+extern const OSSL_DISPATCH aria256ofb_functions[];
+extern const OSSL_DISPATCH aria192ofb_functions[];
+extern const OSSL_DISPATCH aria128ofb_functions[];
+extern const OSSL_DISPATCH aria256cfb_functions[];
+extern const OSSL_DISPATCH aria192cfb_functions[];
+extern const OSSL_DISPATCH aria128cfb_functions[];
+extern const OSSL_DISPATCH aria256cfb1_functions[];
+extern const OSSL_DISPATCH aria192cfb1_functions[];
+extern const OSSL_DISPATCH aria128cfb1_functions[];
+extern const OSSL_DISPATCH aria256cfb8_functions[];
+extern const OSSL_DISPATCH aria192cfb8_functions[];
+extern const OSSL_DISPATCH aria128cfb8_functions[];
+extern const OSSL_DISPATCH aria256ctr_functions[];
+extern const OSSL_DISPATCH aria192ctr_functions[];
+extern const OSSL_DISPATCH aria128ctr_functions[];
+#endif /* OPENSSL_NO_ARIA */
+#ifndef OPENSSL_NO_CAMELLIA
+extern const OSSL_DISPATCH camellia256ecb_functions[];
+extern const OSSL_DISPATCH camellia192ecb_functions[];
+extern const OSSL_DISPATCH camellia128ecb_functions[];
+extern const OSSL_DISPATCH camellia256cbc_functions[];
+extern const OSSL_DISPATCH camellia192cbc_functions[];
+extern const OSSL_DISPATCH camellia128cbc_functions[];
+extern const OSSL_DISPATCH camellia256ofb_functions[];
+extern const OSSL_DISPATCH camellia192ofb_functions[];
+extern const OSSL_DISPATCH camellia128ofb_functions[];
+extern const OSSL_DISPATCH camellia256cfb_functions[];
+extern const OSSL_DISPATCH camellia192cfb_functions[];
+extern const OSSL_DISPATCH camellia128cfb_functions[];
+extern const OSSL_DISPATCH camellia256cfb1_functions[];
+extern const OSSL_DISPATCH camellia192cfb1_functions[];
+extern const OSSL_DISPATCH camellia128cfb1_functions[];
+extern const OSSL_DISPATCH camellia256cfb8_functions[];
+extern const OSSL_DISPATCH camellia192cfb8_functions[];
+extern const OSSL_DISPATCH camellia128cfb8_functions[];
+extern const OSSL_DISPATCH camellia256ctr_functions[];
+extern const OSSL_DISPATCH camellia192ctr_functions[];
+extern const OSSL_DISPATCH camellia128ctr_functions[];
+#endif /* OPENSSL_NO_CAMELLIA */
+#ifndef OPENSSL_NO_BF
+extern const OSSL_DISPATCH blowfish128ecb_functions[];
+extern const OSSL_DISPATCH blowfish128cbc_functions[];
+extern const OSSL_DISPATCH blowfish64ofb64_functions[];
+extern const OSSL_DISPATCH blowfish64cfb64_functions[];
+#endif /* OPENSSL_NO_BF */
+#ifndef OPENSSL_NO_IDEA
+extern const OSSL_DISPATCH idea128ecb_functions[];
+extern const OSSL_DISPATCH idea128cbc_functions[];
+extern const OSSL_DISPATCH idea128ofb64_functions[];
+extern const OSSL_DISPATCH idea128cfb64_functions[];
+#endif /* OPENSSL_NO_IDEA */
+#ifndef OPENSSL_NO_CAST
+extern const OSSL_DISPATCH cast5128ecb_functions[];
+extern const OSSL_DISPATCH cast5128cbc_functions[];
+extern const OSSL_DISPATCH cast564ofb64_functions[];
+extern const OSSL_DISPATCH cast564cfb64_functions[];
+#endif /* OPENSSL_NO_CAST */
+#ifndef OPENSSL_NO_SEED
+extern const OSSL_DISPATCH seed128ecb_functions[];
+extern const OSSL_DISPATCH seed128cbc_functions[];
+extern const OSSL_DISPATCH seed128ofb128_functions[];
+extern const OSSL_DISPATCH seed128cfb128_functions[];
+#endif /* OPENSSL_NO_SEED */
+#ifndef OPENSSL_NO_SM4
+extern const OSSL_DISPATCH sm4128ecb_functions[];
+extern const OSSL_DISPATCH sm4128cbc_functions[];
+extern const OSSL_DISPATCH sm4128ctr_functions[];
+extern const OSSL_DISPATCH sm4128ofb128_functions[];
+extern const OSSL_DISPATCH sm4128cfb128_functions[];
+#endif /* OPENSSL_NO_SM4 */
+#ifndef OPENSSL_NO_RC5
+extern const OSSL_DISPATCH rc5128ecb_functions[];
+extern const OSSL_DISPATCH rc5128cbc_functions[];
+extern const OSSL_DISPATCH rc5128ofb64_functions[];
+extern const OSSL_DISPATCH rc5128cfb64_functions[];
+#endif /* OPENSSL_NO_RC5 */
+#ifndef OPENSSL_NO_RC2
+extern const OSSL_DISPATCH rc2128ecb_functions[];
+extern const OSSL_DISPATCH rc2128cbc_functions[];
+extern const OSSL_DISPATCH rc240cbc_functions[];
+extern const OSSL_DISPATCH rc264cbc_functions[];
+extern const OSSL_DISPATCH rc2128cfb128_functions[];
+extern const OSSL_DISPATCH rc2128ofb128_functions[];
+#endif /* OPENSSL_NO_RC2 */
+#ifndef OPENSSL_NO_DES
+extern const OSSL_DISPATCH tdes_ede3_ecb_functions[];
+extern const OSSL_DISPATCH tdes_ede3_cbc_functions[];
+# ifndef FIPS_MODE
+extern const OSSL_DISPATCH tdes_ede3_ofb_functions[];
+extern const OSSL_DISPATCH tdes_ede3_cfb_functions[];
+extern const OSSL_DISPATCH tdes_ede3_cfb8_functions[];
+extern const OSSL_DISPATCH tdes_ede3_cfb1_functions[];
+
+extern const OSSL_DISPATCH tdes_ede2_ecb_functions[];
+extern const OSSL_DISPATCH tdes_ede2_cbc_functions[];
+extern const OSSL_DISPATCH tdes_ede2_ofb_functions[];
+extern const OSSL_DISPATCH tdes_ede2_cfb_functions[];
+
+extern const OSSL_DISPATCH tdes_desx_cbc_functions[];
+extern const OSSL_DISPATCH tdes_wrap_cbc_functions[];
+
+extern const OSSL_DISPATCH des_ecb_functions[];
+extern const OSSL_DISPATCH des_cbc_functions[];
+extern const OSSL_DISPATCH des_ofb64_functions[];
+extern const OSSL_DISPATCH des_cfb64_functions[];
+extern const OSSL_DISPATCH des_cfb1_functions[];
+extern const OSSL_DISPATCH des_cfb8_functions[];
+# endif /* FIPS_MODE */
+#endif /* OPENSSL_NO_DES */
+
+#ifndef OPENSSL_NO_RC4
+extern const OSSL_DISPATCH rc440_functions[];
+extern const OSSL_DISPATCH rc4128_functions[];
+#endif /* OPENSSL_NO_RC4 */
+
+/* MACs */
+extern const OSSL_DISPATCH blake2bmac_functions[];
+extern const OSSL_DISPATCH blake2smac_functions[];
+extern const OSSL_DISPATCH cmac_functions[];
+extern const OSSL_DISPATCH gmac_functions[];
+extern const OSSL_DISPATCH hmac_functions[];
+extern const OSSL_DISPATCH kmac128_functions[];
+extern const OSSL_DISPATCH kmac256_functions[];
+extern const OSSL_DISPATCH siphash_functions[];
+extern const OSSL_DISPATCH poly1305_functions[];
+
+/* KDFs / PRFs */
+extern const OSSL_DISPATCH kdf_pbkdf2_functions[];
+#ifndef OPENSSL_NO_SCRYPT
+extern const OSSL_DISPATCH kdf_scrypt_functions[];
+#endif
+extern const OSSL_DISPATCH kdf_tls1_prf_functions[];
+extern const OSSL_DISPATCH kdf_hkdf_functions[];
+extern const OSSL_DISPATCH kdf_sshkdf_functions[];
+extern const OSSL_DISPATCH kdf_sskdf_functions[];
+extern const OSSL_DISPATCH kdf_x963_kdf_functions[];
+extern const OSSL_DISPATCH kdf_kbkdf_functions[];
+#ifndef OPENSSL_NO_CMS
+extern const OSSL_DISPATCH kdf_x942_kdf_functions[];
+#endif
+
+
+/* Key management */
+extern const OSSL_DISPATCH dh_keymgmt_functions[];
+extern const OSSL_DISPATCH dsa_keymgmt_functions[];
+
+/* Key Exchange */
+extern const OSSL_DISPATCH dh_keyexch_functions[];
+
+/* Signature */
+extern const OSSL_DISPATCH dsa_signature_functions[];
#include "crypto/evp.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_util.h"
#include "e_os.h"
#include "internal/cryptlib.h"
#include "crypto/evp.h"
#include "internal/numbers.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/provider_util.h"
#include "internal/providercommonerr.h"
#include "crypto/evp.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_util.h"
#include "pbkdf2.h"
#include <openssl/core_names.h>
#include "crypto/evp.h"
#include "internal/numbers.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#ifndef OPENSSL_NO_SCRYPT
#include "crypto/evp.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
# include "internal/provider_util.h"
/* See RFC 4253, Section 7.2 */
#include "crypto/evp.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_util.h"
typedef struct {
#include "crypto/evp.h"
#include "internal/provider_ctx.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_util.h"
#include "e_os.h"
# include "crypto/evp.h"
# include "internal/provider_ctx.h"
# include "internal/providercommonerr.h"
-# include "internal/provider_algs.h"
+# include "prov/implementations.h"
# include "internal/provider_util.h"
# define X942KDF_MAX_INLEN (1 << 30)
#include <openssl/bn.h>
#include <openssl/dh.h>
#include <openssl/params.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_keymgmt_importkey_fn dh_importkey;
#include <openssl/bn.h>
#include <openssl/dsa.h>
#include <openssl/params.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
static OSSL_OP_keymgmt_importkey_fn dsa_importkey;
#include "prov/blake2.h"
#include "internal/cryptlib.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/*
* Forward declaration of everything implemented here. This is not strictly
#include <openssl/evp.h>
#include <openssl/cmac.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/provider_util.h"
#include <openssl/err.h>
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/provider_util.h"
#include <openssl/evp.h>
#include <openssl/hmac.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/provider_util.h"
#include <openssl/err.h>
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
#include "internal/provider_util.h"
#include "../../../crypto/poly1305/poly1305_local.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/*
* Forward declaration of everything implemented here. This is not strictly
#include "../../../crypto/siphash/siphash_local.h"
#include "internal/providercommonerr.h"
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
/*
* Forward declaration of everything implemented here. This is not strictly
#include <openssl/dsa.h>
#include <openssl/params.h>
#include <openssl/evp.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#include "internal/provider_ctx.h"
static OSSL_OP_signature_newctx_fn dsa_newctx;
#include <openssl/core_numbers.h>
#include <openssl/core_names.h>
#include <openssl/params.h>
-#include "internal/provider_algs.h"
+#include "prov/implementations.h"
#ifdef STATIC_LEGACY
OSSL_provider_init_fn ossl_legacy_provider_init;