github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/initializer/common/enroller/client_pkcs11.go (about) 1 //go:build pkcs11 2 // +build pkcs11 3 4 /* 5 * Copyright contributors to the Hyperledger Fabric Operator project 6 * 7 * SPDX-License-Identifier: Apache-2.0 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at: 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package enroller 23 24 import ( 25 commonapi "github.com/IBM-Blockchain/fabric-operator/pkg/apis/common" 26 "github.com/hyperledger/fabric-ca/lib" 27 "github.com/hyperledger/fabric/bccsp/factory" 28 "github.com/hyperledger/fabric/bccsp/pkcs11" 29 ) 30 31 func GetClient(client *lib.Client, bccsp *commonapi.BCCSP) *lib.Client { 32 if bccsp != nil { 33 if bccsp.PKCS11 != nil { 34 client.Config.CSP = &factory.FactoryOpts{ 35 ProviderName: bccsp.ProviderName, 36 Pkcs11Opts: &pkcs11.PKCS11Opts{ 37 SecLevel: bccsp.PKCS11.SecLevel, 38 HashFamily: bccsp.PKCS11.HashFamily, 39 Ephemeral: bccsp.PKCS11.Ephemeral, 40 Library: bccsp.PKCS11.Library, 41 Label: bccsp.PKCS11.Label, 42 Pin: bccsp.PKCS11.Pin, 43 SoftVerify: bccsp.PKCS11.SoftVerify, 44 Immutable: bccsp.PKCS11.Immutable, 45 }, 46 } 47 48 if bccsp.PKCS11.FileKeyStore != nil { 49 client.Config.CSP.Pkcs11Opts.FileKeystore = &pkcs11.FileKeystoreOpts{ 50 KeyStorePath: bccsp.PKCS11.FileKeyStore.KeyStorePath, 51 } 52 } 53 } 54 } 55 56 return client 57 }