summaryrefslogtreecommitdiff
path: root/src/regress/lib
diff options
context:
space:
mode:
authortb <>2019-12-03 16:05:14 +0000
committertb <>2019-12-03 16:05:14 +0000
commitb878f6731ba54dd0926366273faec4e1fc7330ff (patch)
treed4918753940b07c48b568096a563d9c3e5803300 /src/regress/lib
parent707f682b7a9172496ab9df20ec87bba59d62e3ef (diff)
downloadopenbsd-b878f6731ba54dd0926366273faec4e1fc7330ff.tar.gz
openbsd-b878f6731ba54dd0926366273faec4e1fc7330ff.tar.bz2
openbsd-b878f6731ba54dd0926366273faec4e1fc7330ff.zip
Run Wycheproof ECDSA P1363 test vectors against libcrypto.
Diffstat (limited to 'src/regress/lib')
-rw-r--r--src/regress/lib/libcrypto/wycheproof/wycheproof.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/regress/lib/libcrypto/wycheproof/wycheproof.go b/src/regress/lib/libcrypto/wycheproof/wycheproof.go
index 2e8513dddf..59d9e0766d 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.109 2019/12/03 16:02:49 tb Exp $ */ 1/* $OpenBSD: wycheproof.go,v 1.110 2019/12/03 16:05:14 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>
@@ -1616,7 +1616,7 @@ func runECDHWebCryptoTestGroup(algorithm string, wtg *wycheproofTestGroupECDHWeb
1616 return success 1616 return success
1617} 1617}
1618 1618
1619func runECDSATest(ecKey *C.EC_KEY, nid int, h hash.Hash, webcrypto bool, wt *wycheproofTestECDSA) bool { 1619func runECDSATest(ecKey *C.EC_KEY, nid int, h hash.Hash, variant testVariant, wt *wycheproofTestECDSA) bool {
1620 msg, err := hex.DecodeString(wt.Msg) 1620 msg, err := hex.DecodeString(wt.Msg)
1621 if err != nil { 1621 if err != nil {
1622 log.Fatalf("Failed to decode message %q: %v", wt.Msg, err) 1622 log.Fatalf("Failed to decode message %q: %v", wt.Msg, err)
@@ -1632,7 +1632,7 @@ func runECDSATest(ecKey *C.EC_KEY, nid int, h hash.Hash, webcrypto bool, wt *wyc
1632 } 1632 }
1633 1633
1634 var ret C.int 1634 var ret C.int
1635 if webcrypto { 1635 if variant == Webcrypto || variant == P1363 {
1636 cDer, derLen := encodeECDSAWebCryptoSig(wt.Sig) 1636 cDer, derLen := encodeECDSAWebCryptoSig(wt.Sig)
1637 if cDer == nil { 1637 if cDer == nil {
1638 fmt.Print("FAIL: unable to decode signature") 1638 fmt.Print("FAIL: unable to decode signature")
@@ -1669,7 +1669,7 @@ func runECDSATest(ecKey *C.EC_KEY, nid int, h hash.Hash, webcrypto bool, wt *wyc
1669 return success 1669 return success
1670} 1670}
1671 1671
1672func runECDSATestGroup(algorithm string, wtg *wycheproofTestGroupECDSA) bool { 1672func runECDSATestGroup(algorithm string, variant testVariant, wtg *wycheproofTestGroupECDSA) bool {
1673 fmt.Printf("Running %v test group %v with curve %v, key size %d and %v...\n", 1673 fmt.Printf("Running %v test group %v with curve %v, key size %d and %v...\n",
1674 algorithm, wtg.Type, wtg.Key.Curve, wtg.Key.KeySize, wtg.SHA) 1674 algorithm, wtg.Type, wtg.Key.Curve, wtg.Key.KeySize, wtg.SHA)
1675 1675
@@ -1714,7 +1714,7 @@ func runECDSATestGroup(algorithm string, wtg *wycheproofTestGroupECDSA) bool {
1714 1714
1715 success := true 1715 success := true
1716 for _, wt := range wtg.Tests { 1716 for _, wt := range wtg.Tests {
1717 if !runECDSATest(ecKey, nid, h, false, wt) { 1717 if !runECDSATest(ecKey, nid, h, variant, wt) {
1718 success = false 1718 success = false
1719 } 1719 }
1720 } 1720 }
@@ -1809,7 +1809,7 @@ func runECDSAWebCryptoTestGroup(algorithm string, wtg *wycheproofTestGroupECDSAW
1809 1809
1810 success := true 1810 success := true
1811 for _, wt := range wtg.Tests { 1811 for _, wt := range wtg.Tests {
1812 if !runECDSATest(ecKey, nid, h, true, wt) { 1812 if !runECDSATest(ecKey, nid, h, Webcrypto, wt) {
1813 success = false 1813 success = false
1814 } 1814 }
1815 } 1815 }
@@ -2521,7 +2521,7 @@ func runTestVectors(path string, variant testVariant) bool {
2521 success = false 2521 success = false
2522 } 2522 }
2523 default: 2523 default:
2524 if !runECDSATestGroup(wtv.Algorithm, wtg.(*wycheproofTestGroupECDSA)) { 2524 if !runECDSATestGroup(wtv.Algorithm, variant, wtg.(*wycheproofTestGroupECDSA)) {
2525 success = false 2525 success = false
2526 } 2526 }
2527 } 2527 }
@@ -2592,7 +2592,7 @@ func main() {
2592 {"ECDH webcrypto", "ecdh_webcrypto_test.json", Webcrypto}, 2592 {"ECDH webcrypto", "ecdh_webcrypto_test.json", Webcrypto},
2593 {"ECDSA", "ecdsa_test.json", Normal}, 2593 {"ECDSA", "ecdsa_test.json", Normal},
2594 {"ECDSA", "ecdsa_[^w]*test.json", Normal}, 2594 {"ECDSA", "ecdsa_[^w]*test.json", Normal},
2595 {"ECDSA P1363", "ecdsa_*_p1363_test.json", Skip}, 2595 {"ECDSA P1363", "ecdsa_*_p1363_test.json", P1363},
2596 {"ECDSA webcrypto", "ecdsa_webcrypto_test.json", Webcrypto}, 2596 {"ECDSA webcrypto", "ecdsa_webcrypto_test.json", Webcrypto},
2597 {"HKDF", "hkdf_sha*_test.json", Normal}, 2597 {"HKDF", "hkdf_sha*_test.json", Normal},
2598 {"KW", "kw_test.json", Normal}, 2598 {"KW", "kw_test.json", Normal},