DSA method slightly more tested and fixed ;-)
authorDr. Stephen Henson <steve@openssl.org>
Fri, 30 May 2008 17:44:36 +0000 (17:44 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 30 May 2008 17:44:36 +0000 (17:44 +0000)
engines/e_capi.c

index 445ec91af01256a7d79d3b03c39d03cdbb09a310..deea50c723dad06a8030f3573df4bf5c5cdccd1a 100644 (file)
@@ -865,6 +865,10 @@ static DSA_SIG *capi_dsa_do_sign(const unsigned char *digest, int dlen,
                ret = DSA_SIG_new();
                if (!ret)
                        goto err;
+               ret->r = BN_new();
+               ret->s = BN_new();
+               if (!ret->r || !ret->s)
+                       goto err;
                if (!lend_tobn(ret->r, csigbuf, 20)
                        || !lend_tobn(ret->s, csigbuf + 20, 20))
                        {
@@ -879,7 +883,6 @@ static DSA_SIG *capi_dsa_do_sign(const unsigned char *digest, int dlen,
 err:
        OPENSSL_cleanse(csigbuf, 40);
        CryptDestroyHash(hash);
-
        return ret;
        }