Documentation
¶
Overview ¶
Package inmemcrypto is a software cryptoprov.Provider that keeps RSA, ECDSA and ML-DSA keys in memory and can export them as PEM (PKCS#1, SEC1 and PKCS#8 respectively). It registers itself as manufacturer "inmem" and is selected by cryptoprov.Load when the config location is "" or "inmem". Intended for development, tests and delegated OCSP responder keys; it is not a KeyManager.
Key generation, lookup, and PEM export may run concurrently. Registry locking does not cover key generation, signing, or PEM serialization. Each export returns a caller-owned byte slice. Token configuration passed to Loader must remain unchanged while the provider is in use.
Index ¶
- Constants
- func Loader(tc cryptoprov.TokenConfig) (cryptoprov.Provider, error)
- type Provider
- func (p *Provider) ExportKey(keyID string) (string, []byte, error)
- func (p *Provider) GenerateECDSAKey(label string, curve elliptic.Curve) (crypto.PrivateKey, error)
- func (p *Provider) GenerateMLDSAKey(label string, params mldsa.Parameters) (crypto.PrivateKey, error)
- func (p *Provider) GenerateRSAKey(label string, bits int, purpose int) (crypto.PrivateKey, error)
- func (p *Provider) GetKey(keyID string) (crypto.PrivateKey, error)
- func (p *Provider) IdentifyKey(priv crypto.PrivateKey) (keyID, label string, err error)
- func (p *Provider) Manufacturer() string
- func (p *Provider) Model() string
- func (p *Provider) Serial() string
Constants ¶
const ProviderName = "inmem"
ProviderName specifies a provider name
Variables ¶
This section is empty.
Functions ¶
func Loader ¶ added in v0.2.0
func Loader(tc cryptoprov.TokenConfig) (cryptoprov.Provider, error)
Loader provides loader for Provider
Types ¶
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider stores exportable RSA, ECDSA and ML-DSA keys and supports concurrent key generation, lookup, and PEM export. Token configuration must remain unchanged while the provider is in use.
func NewProvider ¶
func NewProvider() *Provider
NewProvider creates new provider for exportable RSA, ECDSA and ML-DSA keys. This provider should be used only when HSM use is not applicable.
func (*Provider) ExportKey ¶
ExportKey returns the PEM encoded plain text key: PKCS#1 for RSA, SEC1 for ECDSA and PKCS#8 (seed form) for ML-DSA.
func (*Provider) GenerateECDSAKey ¶
GenerateECDSAKey creates signer using randomly generated ECDSA key
func (*Provider) GenerateMLDSAKey ¶ added in v1.1.320
func (p *Provider) GenerateMLDSAKey(label string, params mldsa.Parameters) (crypto.PrivateKey, error)
GenerateMLDSAKey creates a signer using a randomly generated ML-DSA key of params (mldsa.MLDSA44(), MLDSA65() or MLDSA87()). The signer signs messages, not digests; see cryptoprov.MLDSASignerOptions.
func (*Provider) GenerateRSAKey ¶
GenerateRSAKey creates signer using randomly generated RSA key
func (*Provider) GetKey ¶
func (p *Provider) GetKey(keyID string) (crypto.PrivateKey, error)
GetKey returns key for the given id
func (*Provider) IdentifyKey ¶
func (p *Provider) IdentifyKey(priv crypto.PrivateKey) (keyID, label string, err error)
IdentifyKey returns key id and label for the given private key
func (*Provider) Manufacturer ¶
Manufacturer return manufacturer for the provider