OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [crypto/] [tls/] [prf_test.go] - Blame information for rev 747

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 747 jeremybenn
// Copyright 2009 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4
 
5
package tls
6
 
7
import (
8
        "encoding/hex"
9
        "testing"
10
)
11
 
12
type testSplitPreMasterSecretTest struct {
13
        in, out1, out2 string
14
}
15
 
16
var testSplitPreMasterSecretTests = []testSplitPreMasterSecretTest{
17
        {"", "", ""},
18
        {"00", "00", "00"},
19
        {"0011", "00", "11"},
20
        {"001122", "0011", "1122"},
21
        {"00112233", "0011", "2233"},
22
}
23
 
24
func TestSplitPreMasterSecret(t *testing.T) {
25
        for i, test := range testSplitPreMasterSecretTests {
26
                in, _ := hex.DecodeString(test.in)
27
                out1, out2 := splitPreMasterSecret(in)
28
                s1 := hex.EncodeToString(out1)
29
                s2 := hex.EncodeToString(out2)
30
                if s1 != test.out1 || s2 != test.out2 {
31
                        t.Errorf("#%d: got: (%s, %s) want: (%s, %s)", i, s1, s2, test.out1, test.out2)
32
                }
33
        }
34
}
35
 
36
type testKeysFromTest struct {
37
        version                    uint16
38
        preMasterSecret            string
39
        clientRandom, serverRandom string
40
        masterSecret               string
41
        clientMAC, serverMAC       string
42
        clientKey, serverKey       string
43
        macLen, keyLen             int
44
}
45
 
46
func TestKeysFromPreMasterSecret(t *testing.T) {
47
        for i, test := range testKeysFromTests {
48
                in, _ := hex.DecodeString(test.preMasterSecret)
49
                clientRandom, _ := hex.DecodeString(test.clientRandom)
50
                serverRandom, _ := hex.DecodeString(test.serverRandom)
51
                master, clientMAC, serverMAC, clientKey, serverKey, _, _ := keysFromPreMasterSecret(test.version, in, clientRandom, serverRandom, test.macLen, test.keyLen, 0)
52
                masterString := hex.EncodeToString(master)
53
                clientMACString := hex.EncodeToString(clientMAC)
54
                serverMACString := hex.EncodeToString(serverMAC)
55
                clientKeyString := hex.EncodeToString(clientKey)
56
                serverKeyString := hex.EncodeToString(serverKey)
57
                if masterString != test.masterSecret ||
58
                        clientMACString != test.clientMAC ||
59
                        serverMACString != test.serverMAC ||
60
                        clientKeyString != test.clientKey ||
61
                        serverKeyString != test.serverKey {
62
                        t.Errorf("#%d: got: (%s, %s, %s, %s, %s) want: (%s, %s, %s, %s, %s)", i, masterString, clientMACString, serverMACString, clientKeyString, serverKeyString, test.masterSecret, test.clientMAC, test.serverMAC, test.clientKey, test.serverKey)
63
                }
64
        }
65
}
66
 
67
// These test vectors were generated from GnuTLS using `gnutls-cli --insecure -d 9 `
68
var testKeysFromTests = []testKeysFromTest{
69
        {
70
                versionTLS10,
71
                "0302cac83ad4b1db3b9ab49ad05957de2a504a634a386fc600889321e1a971f57479466830ac3e6f468e87f5385fa0c5",
72
                "4ae66303755184a3917fcb44880605fcc53baa01912b22ed94473fc69cebd558",
73
                "4ae663020ec16e6bb5130be918cfcafd4d765979a3136a5d50c593446e4e44db",
74
                "3d851bab6e5556e959a16bc36d66cfae32f672bfa9ecdef6096cbb1b23472df1da63dbbd9827606413221d149ed08ceb",
75
                "805aaa19b3d2c0a0759a4b6c9959890e08480119",
76
                "2d22f9fe519c075c16448305ceee209fc24ad109",
77
                "d50b5771244f850cd8117a9ccafe2cf1",
78
                "e076e33206b30507a85c32855acd0919",
79
                20,
80
                16,
81
        },
82
        {
83
                versionTLS10,
84
                "03023f7527316bc12cbcd69e4b9e8275d62c028f27e65c745cfcddc7ce01bd3570a111378b63848127f1c36e5f9e4890",
85
                "4ae66364b5ea56b20ce4e25555aed2d7e67f42788dd03f3fee4adae0459ab106",
86
                "4ae66363ab815cbf6a248b87d6b556184e945e9b97fbdf247858b0bdafacfa1c",
87
                "7d64be7c80c59b740200b4b9c26d0baaa1c5ae56705acbcf2307fe62beb4728c19392c83f20483801cce022c77645460",
88
                "97742ed60a0554ca13f04f97ee193177b971e3b0",
89
                "37068751700400e03a8477a5c7eec0813ab9e0dc",
90
                "207cddbc600d2a200abac6502053ee5c",
91
                "df3f94f6e1eacc753b815fe16055cd43",
92
                20,
93
                16,
94
        },
95
        {
96
                versionTLS10,
97
                "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1",
98
                "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e",
99
                "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e",
100
                "1aff2e7a2c4279d0126f57a65a77a8d9d0087cf2733366699bec27eb53d5740705a8574bb1acc2abbe90e44f0dd28d6c",
101
                "3c7647c93c1379a31a609542aa44e7f117a70085",
102
                "0d73102994be74a575a3ead8532590ca32a526d4",
103
                "ac7581b0b6c10d85bbd905ffbf36c65e",
104
                "ff07edde49682b45466bd2e39464b306",
105
                20,
106
                16,
107
        },
108
        {
109
                versionSSL30,
110
                "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1",
111
                "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e",
112
                "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e",
113
                "a614863e56299dcffeea2938f22c2ba023768dbe4b3f6877bc9c346c6ae529b51d9cb87ff9695ea4d01f2205584405b2",
114
                "2c450d5b6f6e2013ac6bea6a0b32200d4e1ffb94",
115
                "7a7a7438769536f2fb1ae49a61f0703b79b2dc53",
116
                "f8f6b26c10f12855c9aafb1e0e839ccf",
117
                "2b9d4b4a60cb7f396780ebff50650419",
118
                20,
119
                16,
120
        },
121
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.