summaryrefslogtreecommitdiff
path: root/src/regress/lib
diff options
context:
space:
mode:
authortb <>2021-11-21 11:41:18 +0000
committertb <>2021-11-21 11:41:18 +0000
commita5c73ac97b067daed19c07515f4e72156bfa21d4 (patch)
tree3079c34686c58f39486b02241e16c6c04d348abb /src/regress/lib
parent8758903dc9ababe69fdd7437fc87ef4c0a87e4b2 (diff)
downloadopenbsd-a5c73ac97b067daed19c07515f4e72156bfa21d4.tar.gz
openbsd-a5c73ac97b067daed19c07515f4e72156bfa21d4.tar.bz2
openbsd-a5c73ac97b067daed19c07515f4e72156bfa21d4.zip
wycheproof.go: modify some DSA and ECDSA code to work with opaque structs
Diffstat (limited to 'src/regress/lib')
-rw-r--r--src/regress/lib/libcrypto/wycheproof/wycheproof.go28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/regress/lib/libcrypto/wycheproof/wycheproof.go b/src/regress/lib/libcrypto/wycheproof/wycheproof.go
index 9b22f1411e..b10792ab6f 100644
--- a/src/regress/lib/libcrypto/wycheproof/wycheproof.go
+++ b/src/regress/lib/libcrypto/wycheproof/wycheproof.go
@@ -1,4 +1,4 @@
1/* $OpenBSD: wycheproof.go,v 1.122 2021/09/24 20:48:23 tb Exp $ */ 1/* $OpenBSD: wycheproof.go,v 1.123 2021/11/21 11:41:18 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2018 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2018, 2019 Theo Buehler <tb@openbsd.org> 4 * Copyright (c) 2018, 2019 Theo Buehler <tb@openbsd.org>
@@ -1270,12 +1270,21 @@ func encodeDSAP1363Sig(wtSig string) (*C.uchar, C.int) {
1270 s := C.CString(wtSig[sigLen/2:]) 1270 s := C.CString(wtSig[sigLen/2:])
1271 defer C.free(unsafe.Pointer(r)) 1271 defer C.free(unsafe.Pointer(r))
1272 defer C.free(unsafe.Pointer(s)) 1272 defer C.free(unsafe.Pointer(s))
1273 if C.BN_hex2bn(&cSig.r, r) == 0 { 1273 var sigR *C.BIGNUM
1274 var sigS *C.BIGNUM
1275 defer C.BN_free(sigR)
1276 defer C.BN_free(sigS)
1277 if C.BN_hex2bn(&sigR, r) == 0 {
1274 return nil, 0 1278 return nil, 0
1275 } 1279 }
1276 if C.BN_hex2bn(&cSig.s, s) == 0 { 1280 if C.BN_hex2bn(&sigS, s) == 0 {
1277 return nil, 0 1281 return nil, 0
1278 } 1282 }
1283 if C.DSA_SIG_set0(cSig, sigR, sigS) == 0 {
1284 return nil, 0
1285 }
1286 sigR = nil
1287 sigS = nil
1279 1288
1280 derLen := C.i2d_DSA_SIG(cSig, nil) 1289 derLen := C.i2d_DSA_SIG(cSig, nil)
1281 if derLen == 0 { 1290 if derLen == 0 {
@@ -1805,12 +1814,21 @@ func encodeECDSAWebCryptoSig(wtSig string) (*C.uchar, C.int) {
1805 s := C.CString(wtSig[sigLen/2:]) 1814 s := C.CString(wtSig[sigLen/2:])
1806 defer C.free(unsafe.Pointer(r)) 1815 defer C.free(unsafe.Pointer(r))
1807 defer C.free(unsafe.Pointer(s)) 1816 defer C.free(unsafe.Pointer(s))
1808 if C.BN_hex2bn(&cSig.r, r) == 0 { 1817 var sigR *C.BIGNUM
1818 var sigS *C.BIGNUM
1819 defer C.BN_free(sigR)
1820 defer C.BN_free(sigS)
1821 if C.BN_hex2bn(&sigR, r) == 0 {
1822 return nil, 0
1823 }
1824 if C.BN_hex2bn(&sigS, s) == 0 {
1809 return nil, 0 1825 return nil, 0
1810 } 1826 }
1811 if C.BN_hex2bn(&cSig.s, s) == 0 { 1827 if C.ECDSA_SIG_set0(cSig, sigR, sigS) == 0 {
1812 return nil, 0 1828 return nil, 0
1813 } 1829 }
1830 sigR = nil
1831 sigS = nil
1814 1832
1815 derLen := C.i2d_ECDSA_SIG(cSig, nil) 1833 derLen := C.i2d_ECDSA_SIG(cSig, nil)
1816 if derLen == 0 { 1834 if derLen == 0 {