@@ -20,7 +20,7 @@ import (
2020)
2121
2222func TestX509Signer (t * testing.T ) {
23- ctx := pkcs11helpers.MockCtx {}
23+ s , ctx := pkcs11helpers .NewSessionWithMock ()
2424
2525 // test that x509Signer.Sign properly converts the PKCS#11 format signature to
2626 // the RFC 5480 format signature
@@ -51,7 +51,7 @@ func TestX509Signer(t *testing.T) {
5151 return append (rBytes , sBytes ... ), nil
5252 }
5353 digest := sha256 .Sum256 ([]byte ("hello" ))
54- signer := & x509Signer {ctx : ctx , keyType : pkcs11helpers .ECDSAKey , pub : tk .Public ()}
54+ signer := & x509Signer {session : s , keyType : pkcs11helpers .ECDSAKey , pub : tk .Public ()}
5555 signature , err := signer .Sign (nil , digest [:], crypto .SHA256 )
5656 test .AssertNotError (t , err , "x509Signer.Sign failed" )
5757
@@ -78,9 +78,9 @@ func TestParseOID(t *testing.T) {
7878}
7979
8080func TestMakeTemplate (t * testing.T ) {
81- ctx := pkcs11helpers.MockCtx {}
81+ s , ctx := pkcs11helpers .NewSessionWithMock ()
8282 profile := & certProfile {}
83- randReader := newRandReader (& ctx , 0 )
83+ randReader := newRandReader (s )
8484
8585 pubKey , err := hex .DecodeString ("3059301306072a8648ce3d020106082a8648ce3d03010703420004b06745ef0375c9c54057098f077964e18d3bed0aacd54545b16eab8c539b5768cc1cea93ba56af1e22a7a01c33048c8885ed17c9c55ede70649b707072689f5e" )
8686 test .AssertNotError (t , err , "failed to decode test public key" )
@@ -157,14 +157,13 @@ func TestMakeTemplate(t *testing.T) {
157157}
158158
159159func TestMakeTemplateOCSP (t * testing.T ) {
160- ctx := pkcs11helpers.MockCtx {
161- GenerateRandomFunc : func (_ pkcs11.SessionHandle , length int ) ([]byte , error ) {
162- r := make ([]byte , length )
163- _ , err := rand .Read (r )
164- return r , err
165- },
160+ s , ctx := pkcs11helpers .NewSessionWithMock ()
161+ ctx .GenerateRandomFunc = func (_ pkcs11.SessionHandle , length int ) ([]byte , error ) {
162+ r := make ([]byte , length )
163+ _ , err := rand .Read (r )
164+ return r , err
166165 }
167- randReader := newRandReader (& ctx , 0 )
166+ randReader := newRandReader (s )
168167 profile := & certProfile {
169168 SignatureAlgorithm : "SHA256WithRSA" ,
170169 CommonName : "common name" ,
@@ -206,14 +205,13 @@ func TestMakeTemplateOCSP(t *testing.T) {
206205}
207206
208207func TestMakeTemplateCRL (t * testing.T ) {
209- ctx := pkcs11helpers.MockCtx {
210- GenerateRandomFunc : func (_ pkcs11.SessionHandle , length int ) ([]byte , error ) {
211- r := make ([]byte , length )
212- _ , err := rand .Read (r )
213- return r , err
214- },
208+ s , ctx := pkcs11helpers .NewSessionWithMock ()
209+ ctx .GenerateRandomFunc = func (_ pkcs11.SessionHandle , length int ) ([]byte , error ) {
210+ r := make ([]byte , length )
211+ _ , err := rand .Read (r )
212+ return r , err
215213 }
216- randReader := newRandReader (& ctx , 0 )
214+ randReader := newRandReader (s )
217215 profile := & certProfile {
218216 SignatureAlgorithm : "SHA256WithRSA" ,
219217 CommonName : "common name" ,
@@ -462,13 +460,13 @@ func TestVerifyProfile(t *testing.T) {
462460}
463461
464462func TestGetKey (t * testing.T ) {
465- ctx := pkcs11helpers.MockCtx {}
463+ s , ctx := pkcs11helpers .NewSessionWithMock ()
466464
467465 // test newSigner fails when pkcs11helpers.FindObject for private key handle fails
468466 ctx .FindObjectsInitFunc = func (pkcs11.SessionHandle , []* pkcs11.Attribute ) error {
469467 return errors .New ("broken" )
470468 }
471- _ , err := newSigner (ctx , 0 , "label" , []byte {255 , 255 })
469+ _ , err := newSigner (s , "label" , []byte {255 , 255 })
472470 test .AssertError (t , err , "newSigner didn't fail when pkcs11helpers.FindObject for private key handle failed" )
473471
474472 // test newSigner fails when GetAttributeValue fails
@@ -484,14 +482,14 @@ func TestGetKey(t *testing.T) {
484482 ctx .GetAttributeValueFunc = func (pkcs11.SessionHandle , pkcs11.ObjectHandle , []* pkcs11.Attribute ) ([]* pkcs11.Attribute , error ) {
485483 return nil , errors .New ("broken" )
486484 }
487- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
485+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
488486 test .AssertError (t , err , "newSigner didn't fail when GetAttributeValue for private key type failed" )
489487
490488 // test newSigner fails when GetAttributeValue returns no attributes
491489 ctx .GetAttributeValueFunc = func (pkcs11.SessionHandle , pkcs11.ObjectHandle , []* pkcs11.Attribute ) ([]* pkcs11.Attribute , error ) {
492490 return nil , nil
493491 }
494- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
492+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
495493 test .AssertError (t , err , "newSigner didn't fail when GetAttributeValue for private key type returned no attributes" )
496494
497495 // test newSigner fails when pkcs11helpers.FindObject for public key handle fails
@@ -504,7 +502,7 @@ func TestGetKey(t *testing.T) {
504502 }
505503 return nil
506504 }
507- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
505+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
508506 test .AssertError (t , err , "newSigner didn't fail when pkcs11helpers.FindObject for public key handle failed" )
509507
510508 // test newSigner fails when pkcs11helpers.FindObject for private key returns unknown CKA_KEY_TYPE
@@ -514,21 +512,21 @@ func TestGetKey(t *testing.T) {
514512 ctx .GetAttributeValueFunc = func (pkcs11.SessionHandle , pkcs11.ObjectHandle , []* pkcs11.Attribute ) ([]* pkcs11.Attribute , error ) {
515513 return []* pkcs11.Attribute {pkcs11 .NewAttribute (pkcs11 .CKA_KEY_TYPE , []byte {2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 })}, nil
516514 }
517- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
515+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
518516 test .AssertError (t , err , "newSigner didn't fail when GetAttributeValue for private key returned unknown key type" )
519517
520518 // test newSigner fails when GetRSAPublicKey fails
521519 ctx .GetAttributeValueFunc = func (pkcs11.SessionHandle , pkcs11.ObjectHandle , []* pkcs11.Attribute ) ([]* pkcs11.Attribute , error ) {
522520 return []* pkcs11.Attribute {pkcs11 .NewAttribute (pkcs11 .CKA_KEY_TYPE , []byte {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 })}, nil
523521 }
524- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
522+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
525523 test .AssertError (t , err , "newSigner didn't fail when GetRSAPublicKey fails" )
526524
527525 // test newSigner fails when GetECDSAPublicKey fails
528526 ctx .GetAttributeValueFunc = func (pkcs11.SessionHandle , pkcs11.ObjectHandle , []* pkcs11.Attribute ) ([]* pkcs11.Attribute , error ) {
529527 return []* pkcs11.Attribute {pkcs11 .NewAttribute (pkcs11 .CKA_KEY_TYPE , []byte {3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 })}, nil
530528 }
531- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
529+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
532530 test .AssertError (t , err , "newSigner didn't fail when GetECDSAPublicKey fails" )
533531
534532 // test newSigner works when everything... works
@@ -548,6 +546,6 @@ func TestGetKey(t *testing.T) {
548546 }
549547 return returns , nil
550548 }
551- _ , err = newSigner (ctx , 0 , "label" , []byte {255 , 255 })
549+ _ , err = newSigner (s , "label" , []byte {255 , 255 })
552550 test .AssertNotError (t , err , "newSigner failed when everything worked properly" )
553551}
0 commit comments