factory

package
v0.0.0-...-c5686b1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Copyright IBM Corp. 2016 All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright IBM Corp. 2016 All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright IBM Corp. 2017 All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright IBM Corp. 2016 All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright IBM Corp. 2016 All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// PKCS11BasedFactoryName is the name of the factory of the hsm-based BCCSP implementation
	PKCS11BasedFactoryName = "PKCS11"
)
View Source
const (
	// SoftwareBasedFactoryName is the name of the factory of the software-based BCCSP implementation
	SoftwareBasedFactoryName = "SW"
)

Variables

This section is empty.

Functions

func GetBCCSP

func GetBCCSP(name string) (bccsp.BCCSP, error)

GetBCCSP returns a BCCSP created according to the options passed in input.

func GetBCCSPFromOpts

func GetBCCSPFromOpts(config *FactoryOpts) (bccsp.BCCSP, error)

GetBCCSPFromOpts returns a BCCSP created according to the options passed in input.

func GetDefault

func GetDefault() bccsp.BCCSP

GetDefault returns a non-ephemeral (long-term) BCCSP

func InitFactories

func InitFactories(config *FactoryOpts) error

InitFactories must be called before using factory interfaces It is acceptable to call with config = nil, in which case some defaults will get used Error is returned only if defaultBCCSP cannot be found

Types

type BCCSPFactory

type BCCSPFactory interface {

	// Name returns the name of this factory
	Name() string

	// Get returns an instance of BCCSP using opts.
	Get(opts *FactoryOpts) (bccsp.BCCSP, error)
}

BCCSPFactory is used to get instances of the BCCSP interface. A Factory has name used to address it.

type DummyKeystoreOpts

type DummyKeystoreOpts struct{}

type FactoryOpts

type FactoryOpts struct {
	ProviderName string             `mapstructure:"default" json:"default" yaml:"Default"`
	SwOpts       *SwOpts            `mapstructure:"SW,omitempty" json:"SW,omitempty" yaml:"SwOpts"`
	Pkcs11Opts   *pkcs11.PKCS11Opts `mapstructure:"PKCS11,omitempty" json:"PKCS11,omitempty" yaml:"PKCS11"`
}

func GetDefaultOpts

func GetDefaultOpts() *FactoryOpts

GetDefaultOpts offers a default implementation for Opts returns a new instance every time

func (*FactoryOpts) FactoryName

func (o *FactoryOpts) FactoryName() string

FactoryName returns the name of the provider

type FileKeystoreOpts

type FileKeystoreOpts struct {
	KeyStorePath string `mapstructure:"keystore" yaml:"KeyStore"`
}

Pluggable Keystores, could add JKS, P12, etc..

type PKCS11Factory

type PKCS11Factory struct{}

PKCS11Factory is the factory of the HSM-based BCCSP.

func (*PKCS11Factory) Get

func (f *PKCS11Factory) Get(config *FactoryOpts) (bccsp.BCCSP, error)

Get returns an instance of BCCSP using Opts.

func (*PKCS11Factory) Name

func (f *PKCS11Factory) Name() string

Name returns the name of this factory

type SWFactory

type SWFactory struct{}

SWFactory is the factory of the software-based BCCSP.

func (*SWFactory) Get

func (f *SWFactory) Get(config *FactoryOpts) (bccsp.BCCSP, error)

Get returns an instance of BCCSP using Opts.

func (*SWFactory) Name

func (f *SWFactory) Name() string

Name returns the name of this factory

type SwOpts

type SwOpts struct {
	// Default algorithms when not specified (Deprecated?)
	SecLevel   int    `mapstructure:"security" json:"security" yaml:"Security"`
	HashFamily string `mapstructure:"hash" json:"hash" yaml:"Hash"`

	// Keystore Options
	Ephemeral     bool               `mapstructure:"tempkeys,omitempty" json:"tempkeys,omitempty"`
	FileKeystore  *FileKeystoreOpts  `mapstructure:"filekeystore,omitempty" json:"filekeystore,omitempty" yaml:"FileKeyStore"`
	DummyKeystore *DummyKeystoreOpts `mapstructure:"dummykeystore,omitempty" json:"dummykeystore,omitempty"`
}

SwOpts contains options for the SWFactory

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL