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  }