提交 2acdef5e 编写于 作者: D Dr. Stephen Henson

Return error for unsupported modes.

PR#3974
PR#3975
Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 891eac46
...@@ -68,11 +68,22 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type) ...@@ -68,11 +68,22 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
if (c->cipher->set_asn1_parameters != NULL) if (c->cipher->set_asn1_parameters != NULL)
ret = c->cipher->set_asn1_parameters(c, type); ret = c->cipher->set_asn1_parameters(c, type);
else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) { else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) {
if (EVP_CIPHER_CTX_mode(c) == EVP_CIPH_WRAP_MODE) { switch (EVP_CIPHER_CTX_mode(c)) {
case EVP_CIPH_WRAP_MODE:
ASN1_TYPE_set(type, V_ASN1_NULL, NULL); ASN1_TYPE_set(type, V_ASN1_NULL, NULL);
ret = 1; ret = 1;
} else break;
case EVP_CIPH_GCM_MODE:
case EVP_CIPH_CCM_MODE:
case EVP_CIPH_XTS_MODE:
case EVP_CIPH_OCB_MODE:
ret = -1;
break;
default:
ret = EVP_CIPHER_set_asn1_iv(c, type); ret = EVP_CIPHER_set_asn1_iv(c, type);
}
} else } else
ret = -1; ret = -1;
return (ret); return (ret);
...@@ -85,9 +96,23 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type) ...@@ -85,9 +96,23 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
if (c->cipher->get_asn1_parameters != NULL) if (c->cipher->get_asn1_parameters != NULL)
ret = c->cipher->get_asn1_parameters(c, type); ret = c->cipher->get_asn1_parameters(c, type);
else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) { else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) {
if (EVP_CIPHER_CTX_mode(c) == EVP_CIPH_WRAP_MODE) switch (EVP_CIPHER_CTX_mode(c)) {
return 1;
ret = EVP_CIPHER_get_asn1_iv(c, type); case EVP_CIPH_WRAP_MODE:
ret = 1;
break;
case EVP_CIPH_GCM_MODE:
case EVP_CIPH_CCM_MODE:
case EVP_CIPH_XTS_MODE:
case EVP_CIPH_OCB_MODE:
ret = -1;
break;
default:
ret = EVP_CIPHER_get_asn1_iv(c, type);
break;
}
} else } else
ret = -1; ret = -1;
return (ret); return (ret);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册