go_study/fabric-main/internal/peer/common/commonpkcs11_test.go

65 lines
2.1 KiB
Go

//go:build pkcs11
// +build pkcs11
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package common_test
import (
"fmt"
"os"
"strings"
"testing"
"github.com/hyperledger/fabric/bccsp/factory"
"github.com/hyperledger/fabric/core/config/configtest"
"github.com/hyperledger/fabric/internal/peer/common"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
)
func TestBCCSPPKCS11EnvVars(t *testing.T) {
t.Setenv("CORE_PEER_BCCSP_DEFAULT", "PKCS11")
t.Setenv("CORE_PEER_BCCSP_PKCS11_HASH", "SHA2")
t.Setenv("CORE_PEER_BCCSP_PKCS11_SECURITY", "384")
t.Setenv("CORE_PEER_BCCSP_PKCS11_LIBRARY", "lib.so")
t.Setenv("CORE_PEER_BCCSP_PKCS11_LABEL", "token")
t.Setenv("CORE_PEER_BCCSP_PKCS11_PIN", "password")
t.Setenv("CORE_PEER_BCCSP_PKCS11_SOFTWAREVERIFY", "1")
t.Setenv("CORE_PEER_BCCSP_PKCS11_IMMUTABLE", "true")
t.Setenv("CORE_PEER_BCCSP_PKCS11_ALTID", "01234567890abcdef")
t.Setenv("CORE_PEER_BCCSP_PKCS11_KEYIDS", "1 2,3 4")
viper.SetConfigName(common.CmdRoot)
viper.SetEnvPrefix(common.CmdRoot)
configtest.AddDevConfigPath(nil)
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
viper.AutomaticEnv()
if err := viper.ReadInConfig(); err != nil {
fmt.Printf("could not read config %s\n", err)
os.Exit(-1)
}
bccspConfig := factory.GetDefaultOpts()
err := common.InitBCCSPConfig(bccspConfig)
require.NoError(t, err)
require.Equal(t, "PKCS11", bccspConfig.Default)
require.Equal(t, "SHA2", bccspConfig.PKCS11.Hash)
require.Equal(t, 384, bccspConfig.PKCS11.Security)
require.Equal(t, "lib.so", bccspConfig.PKCS11.Library)
require.Equal(t, "token", bccspConfig.PKCS11.Label)
require.Equal(t, "password", bccspConfig.PKCS11.Pin)
require.Equal(t, true, bccspConfig.PKCS11.SoftwareVerify)
require.Equal(t, true, bccspConfig.PKCS11.Immutable)
require.Equal(t, "01234567890abcdef", bccspConfig.PKCS11.AltID)
require.Equal(t, 2, len(bccspConfig.PKCS11.KeyIDs))
require.Equal(t, "1", bccspConfig.PKCS11.KeyIDs[0].SKI)
require.Equal(t, "2", bccspConfig.PKCS11.KeyIDs[0].ID)
require.Equal(t, "3", bccspConfig.PKCS11.KeyIDs[1].SKI)
require.Equal(t, "4", bccspConfig.PKCS11.KeyIDs[1].ID)
}