github.com/IBM-Blockchain/fabric-operator@v1.0.4/pkg/initializer/ca/bccsp/configpkcs11.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 bccsp 23 24 import ( 25 "github.com/IBM-Blockchain/fabric-operator/pkg/initializer/ca/config" 26 "github.com/hyperledger/fabric/bccsp/factory" 27 "github.com/hyperledger/fabric/bccsp/pkcs11" 28 ) 29 30 func GetBCCSPOpts(from config.BCCSP) *factory.FactoryOpts { 31 factoryOpts := &factory.FactoryOpts{ 32 ProviderName: from.ProviderName, 33 } 34 35 if from.SW != nil { 36 factoryOpts.SwOpts = &factory.SwOpts{ 37 SecLevel: from.SW.SecLevel, 38 HashFamily: from.SW.HashFamily, 39 FileKeystore: &factory.FileKeystoreOpts{ 40 KeyStorePath: from.SW.FileKeyStore.KeyStorePath, 41 }, 42 } 43 } 44 45 if from.PKCS11 != nil { 46 factoryOpts.Pkcs11Opts = &pkcs11.PKCS11Opts{ 47 SecLevel: from.PKCS11.SecLevel, 48 HashFamily: from.PKCS11.HashFamily, 49 Library: from.PKCS11.Library, 50 Label: from.PKCS11.Label, 51 Pin: from.PKCS11.Pin, 52 SoftVerify: from.PKCS11.SoftVerify, 53 } 54 55 if from.PKCS11.FileKeystore != nil { 56 factoryOpts.Pkcs11Opts.FileKeystore = &pkcs11.FileKeystoreOpts{ 57 KeyStorePath: from.PKCS11.FileKeyStore.KeyStorePath, 58 } 59 } 60 } 61 62 return factoryOpts 63 }