Adapt e_capi to the DSA_SIG_get0() API
authorRichard Levitte <levitte@openssl.org>
Tue, 8 Mar 2016 22:12:14 +0000 (23:12 +0100)
committerRichard Levitte <levitte@openssl.org>
Tue, 8 Mar 2016 22:24:03 +0000 (23:24 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
engines/e_capi.c

index 8e78354..58283e5 100644 (file)
@@ -1022,15 +1022,13 @@ static DSA_SIG *capi_dsa_do_sign(const unsigned char *digest, int dlen,
         capi_addlasterror();
         goto err;
     } else {
+        BIGNUM *r = NULL, *s = NULL;
         ret = DSA_SIG_new();
         if (ret == NULL)
             goto err;
-        ret->r = BN_new();
-        ret->s = BN_new();
-        if (ret->r == NULL || ret->s == NULL)
-            goto err;
-        if (!lend_tobn(ret->r, csigbuf, 20)
-            || !lend_tobn(ret->s, csigbuf + 20, 20)) {
+        DSA_SIG_get0(&r, &s, ret);
+        if (!lend_tobn(r, csigbuf, 20)
+            || !lend_tobn(s, csigbuf + 20, 20)) {
             DSA_SIG_free(ret);
             ret = NULL;
             goto err;