X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fevp%2Fevp_lib.c;h=2a87570b9e4fdd31b5a9f10a6903056ed614e828;hb=6f77f82bfcdf40c41e095bf292e887d15f2bf69d;hp=40951a04f0c9344c1f45b3780d86b28990aefcd0;hpb=e92f9f45e87fb1ceae7cefa5d3d7fbb40dadf1f1;p=oweals%2Fopenssl.git diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c index 40951a04f0..2a87570b9e 100644 --- a/crypto/evp/evp_lib.c +++ b/crypto/evp/evp_lib.c @@ -67,6 +67,16 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type) if (c->cipher->set_asn1_parameters != NULL) ret=c->cipher->set_asn1_parameters(c,type); + else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) + { + if (EVP_CIPHER_CTX_mode(c) == EVP_CIPH_WRAP_MODE) + { + ASN1_TYPE_set(type, V_ASN1_NULL, NULL); + ret = 1; + } + else + ret=EVP_CIPHER_set_asn1_iv(c, type); + } else ret=-1; return(ret); @@ -78,6 +88,12 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type) if (c->cipher->get_asn1_parameters != NULL) ret=c->cipher->get_asn1_parameters(c,type); + else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) + { + if (EVP_CIPHER_CTX_mode(c) == EVP_CIPH_WRAP_MODE) + return 1; + ret=EVP_CIPHER_get_asn1_iv(c, type); + } else ret=-1; return(ret);