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. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
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
- func GetBCCSP(name string) (bccsp.BCCSP, error)
- func GetBCCSPFromOpts(config *FactoryOpts) (bccsp.BCCSP, error)
- func GetDefault() bccsp.BCCSP
- func InitFactories(config *FactoryOpts) error
- type BCCSPFactory
- type DummyKeystoreOpts
- type FactoryOpts
- type FileKeystoreOpts
- type PKCS11Factory
- type PluginFactory
- type PluginOpts
- type SWFactory
- type SwOpts
Constants ¶
const (
// PKCS11BasedFactoryName is the name of the factory of the hsm-based BCCSP implementation
PKCS11BasedFactoryName = "PKCS11"
)
const (
// PluginFactoryName is the factory name for BCCSP plugins
PluginFactoryName = "PLUGIN"
)
const (
// SoftwareBasedFactoryName is the name of the factory of the software-based BCCSP implementation
SoftwareBasedFactoryName = "SW"
)
Variables ¶
This section is empty.
Functions ¶
func GetBCCSPFromOpts ¶
func GetBCCSPFromOpts(config *FactoryOpts) (bccsp.BCCSP, error)
GetBCCSPFromOpts returns a BCCSP created according to the options passed in input.
func GetDefault ¶
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"` PluginOpts *PluginOpts `mapstructure:"PLUGIN,omitempty" json:"PLUGIN,omitempty" yaml:"PluginOpts"` Pkcs11Opts *pkcs11.PKCS11Opts `mapstructure:"PKCS11,omitempty" json:"PKCS11,omitempty" yaml:"PKCS11"` }
FactoryOpts holds configuration information used to initialize factory implementations
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 PluginFactory ¶
type PluginFactory struct{}
PluginFactory is the factory for BCCSP plugins
func (*PluginFactory) Get ¶
func (f *PluginFactory) Get(config *FactoryOpts) (bccsp.BCCSP, error)
Get returns an instance of BCCSP using Opts.
func (*PluginFactory) Name ¶
func (f *PluginFactory) Name() string
Name returns the name of this factory
type PluginOpts ¶
type PluginOpts struct { // Path to plugin library Library string // Config map for the plugin library Config map[string]interface{} }
PluginOpts contains the options for the PluginFactory
type SWFactory ¶
type SWFactory struct{}
SWFactory is the factory of the software-based BCCSP.
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