mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
RSA_FLAG_SIGN_VER indicates the special rsa_sign and rsa_verify function
pointers should be used. It doesn't necessarely mean it should go through the ENGINE framework.
This commit is contained in:
parent
7b36590b17
commit
0a861ab7f3
@ -79,12 +79,16 @@ int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
|
||||
const unsigned char *s = NULL;
|
||||
X509_ALGOR algor;
|
||||
ASN1_OCTET_STRING digest;
|
||||
if(rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
&& ENGINE_get_RSA(rsa->engine)->rsa_sign)
|
||||
if(ENGINE_get_RSA(rsa->engine)->rsa_sign)
|
||||
return ENGINE_get_RSA(rsa->engine)->rsa_sign(type,
|
||||
m, m_len, sigret, siglen, rsa);
|
||||
#endif
|
||||
return rsa->meth->rsa_sign(type, m, m_len,
|
||||
sigret, siglen, rsa);
|
||||
}
|
||||
/* Special case: SSL signature, just check the length */
|
||||
if(type == NID_md5_sha1) {
|
||||
if(m_len != SSL_SIG_LENGTH) {
|
||||
@ -159,12 +163,16 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
|
||||
return(0);
|
||||
}
|
||||
|
||||
if(rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
&& ENGINE_get_RSA(rsa->engine)->rsa_verify)
|
||||
if(ENGINE_get_RSA(rsa->engine)->rsa_verify)
|
||||
return ENGINE_get_RSA(rsa->engine)->rsa_verify(dtype,
|
||||
m, m_len, sigbuf, siglen, rsa);
|
||||
#endif
|
||||
return rsa->meth->rsa_verify(dtype, m, m_len,
|
||||
sigbuf, siglen, rsa);
|
||||
}
|
||||
|
||||
s=(unsigned char *)OPENSSL_malloc((unsigned int)siglen);
|
||||
if (s == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user