github.com/osdi23p228/fabric@v0.0.0-20221218062954-77808885f5db/bccsp/factory/pkcs11_test.go (about) 1 // +build pkcs11 2 3 /* 4 Copyright IBM Corp. All Rights Reserved. 5 6 SPDX-License-Identifier: Apache-2.0 7 */ 8 9 package factory 10 11 import ( 12 "os" 13 "testing" 14 15 "github.com/osdi23p228/fabric/bccsp/pkcs11" 16 "github.com/stretchr/testify/assert" 17 ) 18 19 func TestExportedInitFactories(t *testing.T) { 20 // Reset errors from previous negative test runs 21 factoriesInitError = initFactories(nil) 22 23 err := InitFactories(nil) 24 assert.NoError(t, err) 25 } 26 27 func TestInitFactories(t *testing.T) { 28 err := initFactories(nil) 29 assert.NoError(t, err) 30 31 err = initFactories(&FactoryOpts{}) 32 assert.NoError(t, err) 33 } 34 35 func TestInitFactoriesInvalidArgs(t *testing.T) { 36 err := initFactories(&FactoryOpts{ 37 ProviderName: "SW", 38 SwOpts: &SwOpts{}, 39 }) 40 assert.EqualError(t, err, "Failed initializing SW.BCCSP: Could not initialize BCCSP SW [Failed initializing configuration at [0,]: Hash Family not supported []]") 41 42 err = initFactories(&FactoryOpts{ 43 ProviderName: "PKCS11", 44 Pkcs11Opts: &pkcs11.PKCS11Opts{}, 45 }) 46 assert.EqualError(t, err, "Failed initializing PKCS11.BCCSP: Could not initialize BCCSP PKCS11 [Failed initializing configuration: Hash Family not supported []]") 47 } 48 49 func TestGetBCCSPFromOpts(t *testing.T) { 50 opts := GetDefaultOpts() 51 opts.SwOpts.FileKeystore = &FileKeystoreOpts{KeyStorePath: os.TempDir()} 52 csp, err := GetBCCSPFromOpts(opts) 53 assert.NoError(t, err) 54 assert.NotNil(t, csp) 55 56 lib, pin, label := pkcs11.FindPKCS11Lib() 57 csp, err = GetBCCSPFromOpts(&FactoryOpts{ 58 ProviderName: "PKCS11", 59 Pkcs11Opts: &pkcs11.PKCS11Opts{ 60 SecLevel: 256, 61 HashFamily: "SHA2", 62 Ephemeral: true, 63 Library: lib, 64 Pin: pin, 65 Label: label, 66 }, 67 }) 68 assert.NoError(t, err) 69 assert.NotNil(t, csp) 70 71 csp, err = GetBCCSPFromOpts(&FactoryOpts{ 72 ProviderName: "BadName", 73 }) 74 assert.EqualError(t, err, "Could not find BCCSP, no 'BadName' provider") 75 assert.Nil(t, csp) 76 }