@@ -46,6 +46,7 @@ const (
46
46
defaultPrecertIssuerHashString string = "iamapublickeyshatwofivesixdigest"
47
47
defaultPrecertTBSString string = "tbs"
48
48
49
+ // TODO(phboneff): add extension and regenerate data
49
50
defaultCertificateSCTSignatureInputHexString string =
50
51
// version, 1 byte
51
52
"00" +
@@ -80,6 +81,7 @@ const (
80
81
// tbs certificate, 3 bytes
81
82
"746273" +
82
83
// extensions length, 2 bytes
84
+ // TODO(phboneff)
83
85
"0000" +
84
86
// extensions, 0 bytes
85
87
""
@@ -251,11 +253,19 @@ func TestBuildV1MerkleTreeLeafForCert(t *testing.T) {
251
253
t .Fatalf ("could not create signer: %v" , err )
252
254
}
253
255
254
- leaf , err := MerkleTreeLeafFromChain ([]* x509.Certificate {cert }, types .X509LogEntryType , fixedTimeMillis )
256
+ // Use the same cert as the issuer for convenience.
257
+ entry , err := entryFromChain ([]* x509.Certificate {cert , cert }, false , fixedTimeMillis )
255
258
if err != nil {
256
259
t .Fatalf ("buildV1MerkleTreeLeafForCert()=nil,%v; want _,nil" , err )
257
260
}
258
- got , err := buildV1SCT (signer , leaf )
261
+ var leaf types.MerkleTreeLeaf
262
+ leafValue := entry .MerkleTreeLeaf (0 )
263
+ if rest , err := tls .Unmarshal (leafValue , & leaf ); err != nil {
264
+ t .Fatalf ("failed to reconstruct MerkleTreeLeaf: %s" , err )
265
+ } else if len (rest ) > 0 {
266
+ t .Fatalf ("extra data (%d bytes) on reconstructing MerkleTreeLeaf" , len (rest ))
267
+ }
268
+ got , err := buildV1SCT (signer , & leaf )
259
269
if err != nil {
260
270
t .Fatalf ("buildV1SCT()=nil,%v; want _,nil" , err )
261
271
}
@@ -264,6 +274,7 @@ func TestBuildV1MerkleTreeLeafForCert(t *testing.T) {
264
274
SCTVersion : 0 ,
265
275
LogID : types.LogID {KeyID : demoLogID },
266
276
Timestamp : fixedTimeMillis ,
277
+ // TODO(phboneff): add extension
267
278
Extensions : types.CTExtensions {},
268
279
Signature : types.DigitallySigned {
269
280
Algorithm : tls.SignatureAndHashAlgorithm {
@@ -307,11 +318,19 @@ func TestSignV1SCTForPrecertificate(t *testing.T) {
307
318
}
308
319
309
320
// Use the same cert as the issuer for convenience.
310
- leaf , err := MerkleTreeLeafFromChain ([]* x509.Certificate {cert , cert }, types . PrecertLogEntryType , fixedTimeMillis )
321
+ entry , err := entryFromChain ([]* x509.Certificate {cert , cert }, true , fixedTimeMillis )
311
322
if err != nil {
312
323
t .Fatalf ("buildV1MerkleTreeLeafForCert()=nil,%v; want _,nil" , err )
313
324
}
314
- got , err := buildV1SCT (signer , leaf )
325
+ var leaf types.MerkleTreeLeaf
326
+ leafValue := entry .MerkleTreeLeaf (0 )
327
+ if rest , err := tls .Unmarshal (leafValue , & leaf ); err != nil {
328
+ t .Fatalf ("failed to reconstruct MerkleTreeLeaf: %s" , err )
329
+ } else if len (rest ) > 0 {
330
+ t .Fatalf ("extra data (%d bytes) on reconstructing MerkleTreeLeaf" , len (rest ))
331
+ }
332
+
333
+ got , err := buildV1SCT (signer , & leaf )
315
334
if err != nil {
316
335
t .Fatalf ("buildV1SCT()=nil,%v; want _,nil" , err )
317
336
}
@@ -320,6 +339,7 @@ func TestSignV1SCTForPrecertificate(t *testing.T) {
320
339
SCTVersion : 0 ,
321
340
LogID : types.LogID {KeyID : demoLogID },
322
341
Timestamp : fixedTimeMillis ,
342
+ // TODO(phboneff): add extension
323
343
Extensions : types.CTExtensions {},
324
344
Signature : types.DigitallySigned {
325
345
Algorithm : tls.SignatureAndHashAlgorithm {
0 commit comments