Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openssl/openssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crypto/evp/evp_enc.c40
-rw-r--r--include/openssl/evp.h2
2 files changed, 36 insertions, 6 deletions
diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c
index ebb876a8dc..851c6d5d9a 100644
--- a/crypto/evp/evp_enc.c
+++ b/crypto/evp/evp_enc.c
@@ -1220,17 +1220,45 @@ const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher)
const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher)
{
- if (cipher != NULL && cipher->settable_ctx_params != NULL)
- return cipher->settable_ctx_params(
- ossl_provider_ctx(EVP_CIPHER_provider(cipher)));
+ void *alg;
+
+ if (cipher != NULL && cipher->settable_ctx_params != NULL) {
+ alg = ossl_provider_ctx(EVP_CIPHER_provider(cipher));
+ return cipher->settable_ctx_params(NULL, alg);
+ }
return NULL;
}
const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher)
{
- if (cipher != NULL && cipher->gettable_ctx_params != NULL)
- return cipher->gettable_ctx_params(
- ossl_provider_ctx(EVP_CIPHER_provider(cipher)));
+ void *alg;
+
+ if (cipher != NULL && cipher->gettable_ctx_params != NULL) {
+ alg = ossl_provider_ctx(EVP_CIPHER_provider(cipher));
+ return cipher->gettable_ctx_params(NULL, alg);
+ }
+ return NULL;
+}
+
+const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *cctx)
+{
+ void *alg;
+
+ if (cctx != NULL && cctx->cipher->settable_ctx_params != NULL) {
+ alg = ossl_provider_ctx(EVP_CIPHER_provider(cctx->cipher));
+ return cctx->cipher->settable_ctx_params(cctx->provctx, alg);
+ }
+ return NULL;
+}
+
+const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *cctx)
+{
+ void *alg;
+
+ if (cctx != NULL && cctx->cipher->gettable_ctx_params != NULL) {
+ alg = ossl_provider_ctx(EVP_CIPHER_provider(cctx->cipher));
+ return cctx->cipher->gettable_ctx_params(cctx->provctx, alg);
+ }
return NULL;
}
diff --git a/include/openssl/evp.h b/include/openssl/evp.h
index 17250be90e..6a2202d954 100644
--- a/include/openssl/evp.h
+++ b/include/openssl/evp.h
@@ -816,6 +816,8 @@ int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]);
const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher);
const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher);
const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher);
+const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx);
+const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx);
const BIO_METHOD *BIO_f_md(void);
const BIO_METHOD *BIO_f_base64(void);