/* EVP_MD_CTX related stuff */
#include <openssl/core_numbers.h>
+#include "internal/refcount.h"
#define EVP_CTRL_RET_UNSUPPORTED -1
void *data; /* Algorithm-specific data */
} /* EVP_KDF_CTX */ ;
+struct evp_rand_ctx_st {
+ EVP_RAND *meth; /* Method structure */
+ void *data; /* Algorithm-specific data */
+ EVP_RAND_CTX *parent; /* Parent seed source */
+ size_t max_request; /* Cached: maximum number of bytes generated */
+ unsigned int strength; /* Cache: bit strenght of generator */
+} /* EVP_RAND_CTX */ ;
+
+struct evp_rand_st {
+ OSSL_PROVIDER *prov;
+ int name_id;
+ CRYPTO_REF_COUNT refcnt;
+ CRYPTO_RWLOCK *lock;
+
+ const OSSL_DISPATCH *dispatch;
+ OSSL_OP_rand_newctx_fn *newctx;
+ OSSL_OP_rand_freectx_fn *freectx;
+ OSSL_OP_rand_instantiate_fn *instantiate;
+ OSSL_OP_rand_uninstantiate_fn *uninstantiate;
+ OSSL_OP_rand_generate_fn *generate;
+ OSSL_OP_rand_reseed_fn *reseed;
+ OSSL_OP_rand_nonce_fn *nonce;
+ OSSL_OP_rand_set_callbacks_fn *set_callbacks;
+ OSSL_OP_rand_enable_locking_fn *enable_prov_locking;
+ OSSL_OP_rand_lock_fn *prov_lock;
+ OSSL_OP_rand_unlock_fn *prov_unlock;
+ OSSL_OP_rand_gettable_params_fn *gettable_params;
+ OSSL_OP_rand_gettable_ctx_params_fn *gettable_ctx_params;
+ OSSL_OP_rand_settable_ctx_params_fn *settable_ctx_params;
+ OSSL_OP_rand_get_params_fn *get_params;
+ OSSL_OP_rand_get_ctx_params_fn *get_ctx_params;
+ OSSL_OP_rand_set_ctx_params_fn *set_ctx_params;
+ OSSL_OP_rand_verify_zeroization_fn *verify_zeroization;
+} /* EVP_RAND */ ;
+
struct evp_keymgmt_st {
int id; /* libcrypto internal */