@@ -4,14 +4,14 @@ package openssl_test
4
4
5
5
import (
6
6
"bytes"
7
- "hash "
7
+ "crypto "
8
8
"testing"
9
9
10
10
"github.com/golang-fips/openssl/v2"
11
11
)
12
12
13
13
type tls1prfTest struct {
14
- hash func () hash .Hash
14
+ hash crypto .Hash
15
15
secret []byte
16
16
label []byte
17
17
seed []byte
@@ -22,7 +22,7 @@ var tls1prfTests = []tls1prfTest{
22
22
// TLS 1.0/1.1 test generated with OpenSSL and cross-validated
23
23
// with Windows CNG.
24
24
{
25
- nil ,
25
+ crypto . MD5SHA1 ,
26
26
[]byte {
27
27
0x9b , 0xbe , 0x43 , 0x6b , 0xa9 , 0x40 , 0xf0 , 0x17 ,
28
28
0xb1 , 0x76 , 0x52 , 0x84 , 0x9a , 0x71 , 0xdb , 0x35 ,
@@ -40,7 +40,7 @@ var tls1prfTests = []tls1prfTest{
40
40
},
41
41
// Tests from https://mailarchive.ietf.org/arch/msg/tls/fzVCzk-z3FShgGJ6DOXqM1ydxms/
42
42
{
43
- openssl . NewSHA256 ,
43
+ crypto . SHA256 ,
44
44
[]byte {
45
45
0x9b , 0xbe , 0x43 , 0x6b , 0xa9 , 0x40 , 0xf0 , 0x17 ,
46
46
0xb1 , 0x76 , 0x52 , 0x84 , 0x9a , 0x71 , 0xdb , 0x35 ,
@@ -69,7 +69,7 @@ var tls1prfTests = []tls1prfTest{
69
69
},
70
70
},
71
71
{
72
- openssl . NewSHA384 ,
72
+ crypto . SHA384 ,
73
73
[]byte {
74
74
0xb8 , 0x0b , 0x73 , 0x3d , 0x6c , 0xee , 0xfc , 0xdc ,
75
75
0x71 , 0x56 , 0x6e , 0xa4 , 0x8e , 0x55 , 0x67 , 0xdf ,
@@ -104,7 +104,7 @@ var tls1prfTests = []tls1prfTest{
104
104
},
105
105
},
106
106
{
107
- openssl . NewSHA512 ,
107
+ crypto . SHA512 ,
108
108
[]byte {
109
109
0xb0 , 0x32 , 0x35 , 0x23 , 0xc1 , 0x85 , 0x35 , 0x99 ,
110
110
0x58 , 0x4d , 0x88 , 0x56 , 0x8b , 0xbb , 0x05 , 0xeb ,
@@ -151,13 +151,19 @@ func TestTLS1PRF(t *testing.T) {
151
151
if ! openssl .SupportsTLS1PRF () {
152
152
t .Skip ("TLS 1.2 PRF is not supported" )
153
153
}
154
- for i , tt := range tls1prfTests {
155
- out , err := openssl .TLS1PRF (tt .secret , tt .label , tt .seed , len (tt .out ), tt .hash )
156
- if err != nil {
157
- t .Errorf ("test %d: error deriving TLS 1.2 PRF: %v." , i , err )
158
- }
159
- if ! bytes .Equal (out , tt .out ) {
160
- t .Errorf ("test %d: incorrect key output: have %v, need %v." , i , out , tt .out )
161
- }
154
+ for _ , tt := range tls1prfTests {
155
+ tt := tt
156
+ t .Run (tt .hash .String (), func (t * testing.T ) {
157
+ if ! openssl .SupportsHash (tt .hash ) {
158
+ t .Skip ("skipping: hash not supported" )
159
+ }
160
+ out , err := openssl .TLS1PRF (tt .secret , tt .label , tt .seed , len (tt .out ), cryptoToHash (tt .hash ))
161
+ if err != nil {
162
+ t .Fatalf ("error deriving TLS 1.2 PRF: %v." , err )
163
+ }
164
+ if ! bytes .Equal (out , tt .out ) {
165
+ t .Errorf ("incorrect key output: have %v, need %v." , out , tt .out )
166
+ }
167
+ })
162
168
}
163
169
}
0 commit comments