Only call redirected rsa_sign or rsa_verify if the pointer is set.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 10 Apr 2003 01:13:37 +0000 (01:13 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 10 Apr 2003 01:13:37 +0000 (01:13 +0000)
This allows, for example, a smart card to redirect rsa_sign and keep
the default rsa_verify.

crypto/rsa/rsa_sign.c

index 02eb8136b05a1f70ebbf7552369c4589b60a89f1..8a1e642183c43e82d3a11d27aa05413eddcbb7ea 100644 (file)
@@ -76,7 +76,7 @@ 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)
+       if((rsa->flags & RSA_FLAG_SIGN_VER) && rsa->meth->rsa_sign)
                {
                return rsa->meth->rsa_sign(type, m, m_len,
                        sigret, siglen, rsa);
@@ -155,7 +155,7 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
                return(0);
                }
 
-       if(rsa->flags & RSA_FLAG_SIGN_VER)
+       if((rsa->flags & RSA_FLAG_SIGN_VER) && rsa->meth->rsa_verify)
                {
                return rsa->meth->rsa_verify(dtype, m, m_len,
                        sigbuf, siglen, rsa);