Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(191)

Side by Side Diff: src/pkg/crypto/x509/x509_test.go

Issue 1773041: code review 1773041: crypto/rand for Windows
Patch Set: code review 1773041: crypto/rand for Windows Created 15 years, 3 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2009 The Go Authors. All rights reserved. 1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 package x509 5 package x509
6 6
7 import ( 7 import (
8 "big" 8 "big"
9 "crypto/rand"
9 "crypto/rsa" 10 "crypto/rsa"
10 "encoding/hex" 11 "encoding/hex"
11 "encoding/pem" 12 "encoding/pem"
12 "os"
13 "reflect" 13 "reflect"
14 "testing" 14 "testing"
15 "time" 15 "time"
16 ) 16 )
17 17
18 func TestParsePKCS1PrivateKey(t *testing.T) { 18 func TestParsePKCS1PrivateKey(t *testing.T) {
19 block, _ := pem.Decode([]byte(pemPrivateKey)) 19 block, _ := pem.Decode([]byte(pemPrivateKey))
20 priv, err := ParsePKCS1PrivateKey(block.Bytes) 20 priv, err := ParsePKCS1PrivateKey(block.Bytes)
21 if err != nil { 21 if err != nil {
22 t.Errorf("Failed to parse private key: %s", err) 22 t.Errorf("Failed to parse private key: %s", err)
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 "8620687474703a2f2f63726c2e766572697369676e2e636f6d2f706361332e63726c303 206082b" + 138 "8620687474703a2f2f63726c2e766572697369676e2e636f6d2f706361332e63726c303 206082b" +
139 "0601050507010104263024302206082b060105050730018616687474703a2f2f6f63737 02e7468" + 139 "0601050507010104263024302206082b060105050730018616687474703a2f2f6f63737 02e7468" +
140 "617774652e636f6d30340603551d25042d302b06082b0601050507030106082b0601050 5070302" + 140 "617774652e636f6d30340603551d25042d302b06082b0601050507030106082b0601050 5070302" +
141 "06096086480186f8420401060a6086480186f845010801300d06092a864886f70d01010 5050003" + 141 "06096086480186f8420401060a6086480186f845010801300d06092a864886f70d01010 5050003" +
142 "81810055ac63eadea1ddd2905f9f0bce76be13518f93d9052bc81b774bad6950a1eeded cfddb07" + 142 "81810055ac63eadea1ddd2905f9f0bce76be13518f93d9052bc81b774bad6950a1eeded cfddb07" +
143 "e9e83994dcab72792f06bfab8170c4a8edea5334edef1e53d906c7562bd15cf4d18a8eb 42bb137" + 143 "e9e83994dcab72792f06bfab8170c4a8edea5334edef1e53d906c7562bd15cf4d18a8eb 42bb137" +
144 "9048084225c53e8acb7feb6f04d16dc574a2f7a27c7b603c77cd0ece48027f012fb69b3 7e02a2a" + 144 "9048084225c53e8acb7feb6f04d16dc574a2f7a27c7b603c77cd0ece48027f012fb69b3 7e02a2a" +
145 "36dcd585d6ace53f546f961e05af" 145 "36dcd585d6ace53f546f961e05af"
146 146
147 func TestCreateSelfSignedCertificate(t *testing.T) { 147 func TestCreateSelfSignedCertificate(t *testing.T) {
148 » urandom, err := os.Open("/dev/urandom", os.O_RDONLY, 0) 148 » random := rand.Reader
149 » if err != nil { 149 » if random == nil {
rsc1 2010/07/12 20:15:30 delete
peterGo 2010/07/12 21:06:33 Done.
150 » » t.Errorf("failed to open /dev/urandom") 150 » » t.Errorf("Failed to find a random reader")
151 } 151 }
152 152
153 block, _ := pem.Decode([]byte(pemPrivateKey)) 153 block, _ := pem.Decode([]byte(pemPrivateKey))
154 priv, err := ParsePKCS1PrivateKey(block.Bytes) 154 priv, err := ParsePKCS1PrivateKey(block.Bytes)
155 if err != nil { 155 if err != nil {
156 t.Errorf("Failed to parse private key: %s", err) 156 t.Errorf("Failed to parse private key: %s", err)
157 return 157 return
158 } 158 }
159 159
160 template := Certificate{ 160 template := Certificate{
161 SerialNumber: []byte{1}, 161 SerialNumber: []byte{1},
162 Subject: Name{ 162 Subject: Name{
163 CommonName: "test.example.com", 163 CommonName: "test.example.com",
164 Organization: "Acme Co", 164 Organization: "Acme Co",
165 }, 165 },
166 NotBefore: time.SecondsToUTC(1000), 166 NotBefore: time.SecondsToUTC(1000),
167 NotAfter: time.SecondsToUTC(100000), 167 NotAfter: time.SecondsToUTC(100000),
168 168
169 SubjectKeyId: []byte{1, 2, 3, 4}, 169 SubjectKeyId: []byte{1, 2, 3, 4},
170 KeyUsage: KeyUsageCertSign, 170 KeyUsage: KeyUsageCertSign,
171 171
172 BasicConstraintsValid: true, 172 BasicConstraintsValid: true,
173 IsCA: true, 173 IsCA: true,
174 DNSNames: []string{"test.example.com"}, 174 DNSNames: []string{"test.example.com"},
175 } 175 }
176 176
177 » derBytes, err := CreateCertificate(urandom, &template, &template, &priv. PublicKey, priv) 177 » derBytes, err := CreateCertificate(random, &template, &template, &priv.P ublicKey, priv)
178 if err != nil { 178 if err != nil {
179 t.Errorf("Failed to create certificate: %s", err) 179 t.Errorf("Failed to create certificate: %s", err)
180 return 180 return
181 } 181 }
182 182
183 cert, err := ParseCertificate(derBytes) 183 cert, err := ParseCertificate(derBytes)
184 if err != nil { 184 if err != nil {
185 t.Errorf("Failed to parse certificate: %s", err) 185 t.Errorf("Failed to parse certificate: %s", err)
186 return 186 return
187 } 187 }
188 err = cert.CheckSignatureFrom(cert) 188 err = cert.CheckSignatureFrom(cert)
189 if err != nil { 189 if err != nil {
190 t.Errorf("Signature verification failed: %s", err) 190 t.Errorf("Signature verification failed: %s", err)
191 return 191 return
192 } 192 }
193 } 193 }
OLDNEW

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b