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  }