Documentation ¶
Overview ¶
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
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
- type AES128KeyGenOpts
- type AES192KeyGenOpts
- type AES256ImportKeyOpts
- type AES256KeyGenOpts
- type AESCBCPKCS7ModeOpts
- type AESKeyGenOpts
- type BCCSP
- type DecrypterOpts
- type ECDSAGoPublicKeyImportOpts
- type ECDSAKeyGenOpts
- type ECDSAP256KeyGenOpts
- type ECDSAP384KeyGenOpts
- type ECDSAPKIXPublicKeyImportOpts
- type ECDSAPrivateKeyImportOpts
- type ECDSAReRandKeyOpts
- type EncrypterOpts
- type HMACDeriveKeyOpts
- type HMACImportKeyOpts
- type HMACTruncated256AESDeriveKeyOpts
- type HashOpts
- type IdemixAttribute
- type IdemixAttributeType
- type IdemixCRISignerOpts
- type IdemixCredentialRequestSignerOpts
- type IdemixCredentialSignerOpts
- type IdemixIIssuerPublicKeyImporterErrorType
- type IdemixIssuerKeyGenOpts
- type IdemixIssuerPublicKeyImportOpts
- type IdemixIssuerPublicKeyImporterError
- type IdemixNymKeyDerivationOpts
- type IdemixNymPublicKeyImportOpts
- type IdemixNymSignerOpts
- type IdemixRevocationKeyGenOpts
- type IdemixRevocationPublicKeyImportOpts
- type IdemixSignerOpts
- type IdemixUserSecretKeyGenOpts
- type IdemixUserSecretKeyImportOpts
- type Key
- type KeyDerivOpts
- type KeyGenOpts
- type KeyImportOpts
- type KeyStore
- type OQSGoPublicKeyImportOpts
- type OQSKeyGenOpts
- type OQSPublicKeyImportOpts
- type RSA1024KeyGenOpts
- type RSA2048KeyGenOpts
- type RSA3072KeyGenOpts
- type RSA4096KeyGenOpts
- type RSAGoPublicKeyImportOpts
- type RSAKeyGenOpts
- type RevocationAlgorithm
- type SHA256Opts
- type SHA384Opts
- type SHA3_256Opts
- type SHA3_384Opts
- type SHAOpts
- type SignerOpts
- type X509AltPublicKeyImportOpts
- type X509PublicKeyImportOpts
Constants ¶
const ( // ECDSA Elliptic Curve Digital Signature Algorithm (key gen, import, sign, verify), // at default security level. // Each BCCSP may or may not support default security level. If not supported than // an error will be returned. ECDSA = "ECDSA" // ECDSA Elliptic Curve Digital Signature Algorithm over P-256 curve ECDSAP256 = "ECDSAP256" // ECDSA Elliptic Curve Digital Signature Algorithm over P-384 curve ECDSAP384 = "ECDSAP384" // ECDSAReRand ECDSA key re-randomization ECDSAReRand = "ECDSA_RERAND" // RSA at the default security level. // Each BCCSP may or may not support default security level. If not supported than // an error will be returned. RSA = "RSA" // RSA at 1024 bit security level. RSA1024 = "RSA1024" // RSA at 2048 bit security level. RSA2048 = "RSA2048" // RSA at 3072 bit security level. RSA3072 = "RSA3072" // RSA at 4096 bit security level. RSA4096 = "RSA4096" // AES Advanced Encryption Standard at the default security level. // Each BCCSP may or may not support default security level. If not supported than // an error will be returned. AES = "AES" // AES Advanced Encryption Standard at 128 bit security level AES128 = "AES128" // AES Advanced Encryption Standard at 192 bit security level AES192 = "AES192" // AES Advanced Encryption Standard at 256 bit security level AES256 = "AES256" // Quantum-safe encryption algorithm // The key object itself encodes the algorithm, in order to make the code interoperable // while different quantum-safe algorithms are still under consideration. QS = "QS" // HMAC keyed-hash message authentication code HMAC = "HMAC" // HMACTruncated256 HMAC truncated at 256 bits. HMACTruncated256 = "HMAC_TRUNCATED_256" // SHA Secure Hash Algorithm using default family. // Each BCCSP may or may not support default security level. If not supported than // an error will be returned. SHA = "SHA" // SHA2 is an identifier for SHA2 hash family SHA2 = "SHA2" // SHA3 is an identifier for SHA3 hash family SHA3 = "SHA3" // SHA256 SHA256 = "SHA256" // SHA384 SHA384 = "SHA384" // SHA3_256 SHA3_256 = "SHA3_256" // SHA3_384 SHA3_384 = "SHA3_384" // X509Certificate Label for X509 certificate related operation X509Certificate = "X509Certificate" )
const (
// IDEMIX constant to identify Idemix related algorithms
IDEMIX = "IDEMIX"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AES128KeyGenOpts ¶
type AES128KeyGenOpts struct {
Temporary bool
}
AES128KeyGenOpts contains options for AES key generation at 128 security level
func (*AES128KeyGenOpts) Algorithm ¶
func (opts *AES128KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*AES128KeyGenOpts) Ephemeral ¶
func (opts *AES128KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type AES192KeyGenOpts ¶
type AES192KeyGenOpts struct {
Temporary bool
}
AES192KeyGenOpts contains options for AES key generation at 192 security level
func (*AES192KeyGenOpts) Algorithm ¶
func (opts *AES192KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*AES192KeyGenOpts) Ephemeral ¶
func (opts *AES192KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type AES256ImportKeyOpts ¶
type AES256ImportKeyOpts struct {
Temporary bool
}
AES256ImportKeyOpts contains options for importing AES 256 keys.
func (*AES256ImportKeyOpts) Algorithm ¶
func (opts *AES256ImportKeyOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*AES256ImportKeyOpts) Ephemeral ¶
func (opts *AES256ImportKeyOpts) Ephemeral() bool
Ephemeral returns true if the key generated has to be ephemeral, false otherwise.
type AES256KeyGenOpts ¶
type AES256KeyGenOpts struct {
Temporary bool
}
AES256KeyGenOpts contains options for AES key generation at 256 security level
func (*AES256KeyGenOpts) Algorithm ¶
func (opts *AES256KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*AES256KeyGenOpts) Ephemeral ¶
func (opts *AES256KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type AESCBCPKCS7ModeOpts ¶
type AESCBCPKCS7ModeOpts struct { // IV is the initialization vector to be used by the underlying cipher. // The length of IV must be the same as the Block's block size. // It is used only if different from nil. IV []byte // PRNG is an instance of a PRNG to be used by the underlying cipher. // It is used only if different from nil. PRNG io.Reader }
AESCBCPKCS7ModeOpts contains options for AES encryption in CBC mode with PKCS7 padding. Notice that both IV and PRNG can be nil. In that case, the BCCSP implementation is supposed to sample the IV using a cryptographic secure PRNG. Notice also that either IV or PRNG can be different from nil.
type AESKeyGenOpts ¶
type AESKeyGenOpts struct {
Temporary bool
}
AESKeyGenOpts contains options for AES key generation at default security level
func (*AESKeyGenOpts) Algorithm ¶
func (opts *AESKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*AESKeyGenOpts) Ephemeral ¶
func (opts *AESKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type BCCSP ¶
type BCCSP interface { // KeyGen generates a key using opts. KeyGen(opts KeyGenOpts) (k Key, err error) // KeyDeriv derives a key from k using opts. // The opts argument should be appropriate for the primitive used. KeyDeriv(k Key, opts KeyDerivOpts) (dk Key, err error) // KeyImport imports a key from its raw representation using opts. // The opts argument should be appropriate for the primitive used. KeyImport(raw interface{}, opts KeyImportOpts) (k Key, err error) // GetKey returns the key this CSP associates to // the Subject Key Identifier ski. GetKey(ski []byte) (k Key, err error) // Hash hashes messages msg using options opts. // If opts is nil, the default hash function will be used. Hash(msg []byte, opts HashOpts) (hash []byte, err error) // GetHash returns and instance of hash.Hash using options opts. // If opts is nil, the default hash function will be returned. GetHash(opts HashOpts) (h hash.Hash, err error) // Sign signs digest using key k. // The opts argument should be appropriate for the algorithm used. // // Note that when a signature of a hash of a larger message is needed, // the caller is responsible for hashing the larger message and passing // the hash (as digest). Sign(k Key, digest []byte, opts SignerOpts) (signature []byte, err error) // Verify verifies signature against key k and digest // The opts argument should be appropriate for the algorithm used. Verify(k Key, signature, digest []byte, opts SignerOpts) (valid bool, err error) // Encrypt encrypts plaintext using key k. // The opts argument should be appropriate for the algorithm used. Encrypt(k Key, plaintext []byte, opts EncrypterOpts) (ciphertext []byte, err error) // Decrypt decrypts ciphertext using key k. // The opts argument should be appropriate for the algorithm used. Decrypt(k Key, ciphertext []byte, opts DecrypterOpts) (plaintext []byte, err error) }
BCCSP is the blockchain cryptographic service provider that offers the implementation of cryptographic standards and algorithms.
type DecrypterOpts ¶
type DecrypterOpts interface{}
DecrypterOpts contains options for decrypting with a CSP.
type ECDSAGoPublicKeyImportOpts ¶
type ECDSAGoPublicKeyImportOpts struct {
Temporary bool
}
ECDSAGoPublicKeyImportOpts contains options for ECDSA key importation from ecdsa.PublicKey
func (*ECDSAGoPublicKeyImportOpts) Algorithm ¶
func (opts *ECDSAGoPublicKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*ECDSAGoPublicKeyImportOpts) Ephemeral ¶
func (opts *ECDSAGoPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAKeyGenOpts ¶
type ECDSAKeyGenOpts struct {
Temporary bool
}
ECDSAKeyGenOpts contains options for ECDSA key generation.
func (*ECDSAKeyGenOpts) Algorithm ¶
func (opts *ECDSAKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*ECDSAKeyGenOpts) Ephemeral ¶
func (opts *ECDSAKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAP256KeyGenOpts ¶
type ECDSAP256KeyGenOpts struct {
Temporary bool
}
ECDSAP256KeyGenOpts contains options for ECDSA key generation with curve P-256.
func (*ECDSAP256KeyGenOpts) Algorithm ¶
func (opts *ECDSAP256KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*ECDSAP256KeyGenOpts) Ephemeral ¶
func (opts *ECDSAP256KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAP384KeyGenOpts ¶
type ECDSAP384KeyGenOpts struct {
Temporary bool
}
ECDSAP384KeyGenOpts contains options for ECDSA key generation with curve P-384.
func (*ECDSAP384KeyGenOpts) Algorithm ¶
func (opts *ECDSAP384KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*ECDSAP384KeyGenOpts) Ephemeral ¶
func (opts *ECDSAP384KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAPKIXPublicKeyImportOpts ¶
type ECDSAPKIXPublicKeyImportOpts struct {
Temporary bool
}
ECDSAPKIXPublicKeyImportOpts contains options for ECDSA public key importation in PKIX format
func (*ECDSAPKIXPublicKeyImportOpts) Algorithm ¶
func (opts *ECDSAPKIXPublicKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*ECDSAPKIXPublicKeyImportOpts) Ephemeral ¶
func (opts *ECDSAPKIXPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAPrivateKeyImportOpts ¶
type ECDSAPrivateKeyImportOpts struct {
Temporary bool
}
ECDSAPrivateKeyImportOpts contains options for ECDSA secret key importation in DER format or PKCS#8 format.
func (*ECDSAPrivateKeyImportOpts) Algorithm ¶
func (opts *ECDSAPrivateKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*ECDSAPrivateKeyImportOpts) Ephemeral ¶
func (opts *ECDSAPrivateKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type ECDSAReRandKeyOpts ¶
ECDSAReRandKeyOpts contains options for ECDSA key re-randomization.
func (*ECDSAReRandKeyOpts) Algorithm ¶
func (opts *ECDSAReRandKeyOpts) Algorithm() string
Algorithm returns the key derivation algorithm identifier (to be used).
func (*ECDSAReRandKeyOpts) Ephemeral ¶
func (opts *ECDSAReRandKeyOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
func (*ECDSAReRandKeyOpts) ExpansionValue ¶
func (opts *ECDSAReRandKeyOpts) ExpansionValue() []byte
ExpansionValue returns the re-randomization factor
type EncrypterOpts ¶
type EncrypterOpts interface{}
EncrypterOpts contains options for encrypting with a CSP.
type HMACDeriveKeyOpts ¶
HMACDeriveKeyOpts contains options for HMAC key derivation.
func (*HMACDeriveKeyOpts) Algorithm ¶
func (opts *HMACDeriveKeyOpts) Algorithm() string
Algorithm returns the key derivation algorithm identifier (to be used).
func (*HMACDeriveKeyOpts) Argument ¶
func (opts *HMACDeriveKeyOpts) Argument() []byte
Argument returns the argument to be passed to the HMAC
func (*HMACDeriveKeyOpts) Ephemeral ¶
func (opts *HMACDeriveKeyOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type HMACImportKeyOpts ¶
type HMACImportKeyOpts struct {
Temporary bool
}
HMACImportKeyOpts contains options for importing HMAC keys.
func (*HMACImportKeyOpts) Algorithm ¶
func (opts *HMACImportKeyOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*HMACImportKeyOpts) Ephemeral ¶
func (opts *HMACImportKeyOpts) Ephemeral() bool
Ephemeral returns true if the key generated has to be ephemeral, false otherwise.
type HMACTruncated256AESDeriveKeyOpts ¶
HMACTruncated256AESDeriveKeyOpts contains options for HMAC truncated at 256 bits key derivation.
func (*HMACTruncated256AESDeriveKeyOpts) Algorithm ¶
func (opts *HMACTruncated256AESDeriveKeyOpts) Algorithm() string
Algorithm returns the key derivation algorithm identifier (to be used).
func (*HMACTruncated256AESDeriveKeyOpts) Argument ¶
func (opts *HMACTruncated256AESDeriveKeyOpts) Argument() []byte
Argument returns the argument to be passed to the HMAC
func (*HMACTruncated256AESDeriveKeyOpts) Ephemeral ¶
func (opts *HMACTruncated256AESDeriveKeyOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type HashOpts ¶
type HashOpts interface { // Algorithm returns the hash algorithm identifier (to be used). Algorithm() string }
HashOpts contains options for hashing with a CSP.
func GetHashOpt ¶
GetHashOpt returns the HashOpts corresponding to the passed hash function
type IdemixAttribute ¶
type IdemixAttribute struct { // Type is the attribute's type Type IdemixAttributeType // Value is the attribute's value Value interface{} }
type IdemixAttributeType ¶
type IdemixAttributeType int
IdemixAttributeType represents the type of an idemix attribute
const ( // IdemixHiddenAttribute represents an hidden attribute IdemixHiddenAttribute IdemixAttributeType = iota // IdemixStringAttribute represents a sequence of bytes IdemixBytesAttribute // IdemixIntAttribute represents an int IdemixIntAttribute )
type IdemixCRISignerOpts ¶
type IdemixCRISignerOpts struct { Epoch int RevocationAlgorithm RevocationAlgorithm UnrevokedHandles [][]byte // H is the hash function to be used H crypto.Hash }
IdemixCRISignerOpts contains the options to generate an Idemix CRI. The CRI is supposed to be generated by the Issuing authority and can be verified publicly by using the revocation public key.
func (*IdemixCRISignerOpts) HashFunc ¶
func (o *IdemixCRISignerOpts) HashFunc() crypto.Hash
type IdemixCredentialRequestSignerOpts ¶
type IdemixCredentialRequestSignerOpts struct { // Attributes contains a list of indices of the attributes to be included in the // credential. The indices are with the respect to IdemixIssuerKeyGenOpts#AttributeNames. Attributes []int // IssuerPK is the public-key of the issuer IssuerPK Key // IssuerNonce is generated by the issuer and used by the client to generate the credential request. // Once the issuer gets the credential requests, it checks that the nonce is the same. IssuerNonce []byte // HashFun is the hash function to be used H crypto.Hash }
IdemixCredentialRequestSignerOpts contains the option to create a Idemix credential request.
func (*IdemixCredentialRequestSignerOpts) HashFunc ¶
func (o *IdemixCredentialRequestSignerOpts) HashFunc() crypto.Hash
func (*IdemixCredentialRequestSignerOpts) IssuerPublicKey ¶
func (o *IdemixCredentialRequestSignerOpts) IssuerPublicKey() Key
IssuerPublicKey returns the issuer public key used to derive a new unlinkable pseudonym from a credential secret key
type IdemixCredentialSignerOpts ¶
type IdemixCredentialSignerOpts struct { // Attributes to include in the credentials. IdemixHiddenAttribute is not allowed here Attributes []IdemixAttribute // IssuerPK is the public-key of the issuer IssuerPK Key // HashFun is the hash function to be used H crypto.Hash }
IdemixCredentialSignerOpts contains the options to produce a credential starting from a credential request
func (*IdemixCredentialSignerOpts) HashFunc ¶
func (o *IdemixCredentialSignerOpts) HashFunc() crypto.Hash
HashFunc returns an identifier for the hash function used to produce the message passed to Signer.Sign, or else zero to indicate that no hashing was done.
func (*IdemixCredentialSignerOpts) IssuerPublicKey ¶
func (o *IdemixCredentialSignerOpts) IssuerPublicKey() Key
type IdemixIIssuerPublicKeyImporterErrorType ¶
type IdemixIIssuerPublicKeyImporterErrorType int
const ( IdemixIssuerPublicKeyImporterUnmarshallingError IdemixIIssuerPublicKeyImporterErrorType = iota IdemixIssuerPublicKeyImporterHashError IdemixIssuerPublicKeyImporterValidationError IdemixIssuerPublicKeyImporterNumAttributesError IdemixIssuerPublicKeyImporterAttributeNameError )
type IdemixIssuerKeyGenOpts ¶
type IdemixIssuerKeyGenOpts struct { // Temporary tells if the key is ephemeral Temporary bool // AttributeNames is a list of attributes AttributeNames []string }
IdemixIssuerKeyGenOpts contains the options for the Idemix Issuer key-generation. A list of attribytes may be optionally passed
func (*IdemixIssuerKeyGenOpts) Algorithm ¶
func (*IdemixIssuerKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixIssuerKeyGenOpts) Ephemeral ¶
func (o *IdemixIssuerKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type IdemixIssuerPublicKeyImportOpts ¶
type IdemixIssuerPublicKeyImportOpts struct { Temporary bool // AttributeNames is a list of attributes to ensure the import public key has AttributeNames []string }
IdemixIssuerPublicKeyImportOpts contains the options for importing of an Idemix issuer public key.
func (*IdemixIssuerPublicKeyImportOpts) Algorithm ¶
func (*IdemixIssuerPublicKeyImportOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixIssuerPublicKeyImportOpts) Ephemeral ¶
func (o *IdemixIssuerPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type IdemixIssuerPublicKeyImporterError ¶
type IdemixIssuerPublicKeyImporterError struct { Type IdemixIIssuerPublicKeyImporterErrorType ErrorMsg string Cause error }
func (*IdemixIssuerPublicKeyImporterError) Error ¶
func (r *IdemixIssuerPublicKeyImporterError) Error() string
type IdemixNymKeyDerivationOpts ¶
type IdemixNymKeyDerivationOpts struct { // Temporary tells if the key is ephemeral Temporary bool // IssuerPK is the public-key of the issuer IssuerPK Key }
IdemixNymKeyDerivationOpts contains the options to create a new unlinkable pseudonym from a credential secret key with the respect to the specified issuer public key
func (*IdemixNymKeyDerivationOpts) Algorithm ¶
func (*IdemixNymKeyDerivationOpts) Algorithm() string
Algorithm returns the key derivation algorithm identifier (to be used).
func (*IdemixNymKeyDerivationOpts) Ephemeral ¶
func (o *IdemixNymKeyDerivationOpts) Ephemeral() bool
Ephemeral returns true if the key to derive has to be ephemeral, false otherwise.
func (*IdemixNymKeyDerivationOpts) IssuerPublicKey ¶
func (o *IdemixNymKeyDerivationOpts) IssuerPublicKey() Key
IssuerPublicKey returns the issuer public key used to derive a new unlinkable pseudonym from a credential secret key
type IdemixNymPublicKeyImportOpts ¶
type IdemixNymPublicKeyImportOpts struct { // Temporary tells if the key is ephemeral Temporary bool }
IdemixNymPublicKeyImportOpts contains the options to import the public part of a pseudonym
func (*IdemixNymPublicKeyImportOpts) Algorithm ¶
func (*IdemixNymPublicKeyImportOpts) Algorithm() string
Algorithm returns the key derivation algorithm identifier (to be used).
func (*IdemixNymPublicKeyImportOpts) Ephemeral ¶
func (o *IdemixNymPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to derive has to be ephemeral, false otherwise.
type IdemixNymSignerOpts ¶
type IdemixNymSignerOpts struct { // Nym is the pseudonym to be used Nym Key // IssuerPK is the public-key of the issuer IssuerPK Key // H is the hash function to be used H crypto.Hash }
IdemixNymSignerOpts contains the options to generate an idemix pseudonym signature.
func (*IdemixNymSignerOpts) HashFunc ¶
func (o *IdemixNymSignerOpts) HashFunc() crypto.Hash
HashFunc returns an identifier for the hash function used to produce the message passed to Signer.Sign, or else zero to indicate that no hashing was done.
type IdemixRevocationKeyGenOpts ¶
type IdemixRevocationKeyGenOpts struct { // Temporary tells if the key is ephemeral Temporary bool }
IdemixRevocationKeyGenOpts contains the options for the Idemix revocation key-generation.
func (*IdemixRevocationKeyGenOpts) Algorithm ¶
func (*IdemixRevocationKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixRevocationKeyGenOpts) Ephemeral ¶
func (o *IdemixRevocationKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type IdemixRevocationPublicKeyImportOpts ¶
type IdemixRevocationPublicKeyImportOpts struct {
Temporary bool
}
IdemixRevocationPublicKeyImportOpts contains the options for importing of an Idemix revocation public key.
func (*IdemixRevocationPublicKeyImportOpts) Algorithm ¶
func (*IdemixRevocationPublicKeyImportOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixRevocationPublicKeyImportOpts) Ephemeral ¶
func (o *IdemixRevocationPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type IdemixSignerOpts ¶
type IdemixSignerOpts struct { // Nym is the pseudonym to be used Nym Key // IssuerPK is the public-key of the issuer IssuerPK Key // Credential is the byte representation of the credential signed by the issuer Credential []byte // Attributes specifies which attribute should be disclosed and which not. // If Attributes[i].Type = IdemixHiddenAttribute // then the i-th credential attribute should not be disclosed, otherwise the i-th // credential attribute will be disclosed. // At verification time, if the i-th attribute is disclosed (Attributes[i].Type != IdemixHiddenAttribute), // then Attributes[i].Value must be set accordingly. Attributes []IdemixAttribute // RhIndex is the index of attribute containing the revocation handler. // Notice that this attributed cannot be discloused RhIndex int // CRI contains the credential revocation information CRI []byte // Epoch is the revocation epoch the signature should be produced against Epoch int // RevocationPublicKey is the revocation public key RevocationPublicKey Key // H is the hash function to be used H crypto.Hash }
IdemixSignerOpts contains the options to generate an Idemix signature
func (*IdemixSignerOpts) HashFunc ¶
func (o *IdemixSignerOpts) HashFunc() crypto.Hash
type IdemixUserSecretKeyGenOpts ¶
type IdemixUserSecretKeyGenOpts struct {
Temporary bool
}
IdemixUserSecretKeyGenOpts contains the options for the generation of an Idemix credential secret key.
func (*IdemixUserSecretKeyGenOpts) Algorithm ¶
func (*IdemixUserSecretKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixUserSecretKeyGenOpts) Ephemeral ¶
func (o *IdemixUserSecretKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type IdemixUserSecretKeyImportOpts ¶
type IdemixUserSecretKeyImportOpts struct {
Temporary bool
}
IdemixUserSecretKeyImportOpts contains the options for importing of an Idemix credential secret key.
func (*IdemixUserSecretKeyImportOpts) Algorithm ¶
func (*IdemixUserSecretKeyImportOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*IdemixUserSecretKeyImportOpts) Ephemeral ¶
func (o *IdemixUserSecretKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type Key ¶
type Key interface { // Bytes converts this key to its byte representation, // if this operation is allowed. Bytes() ([]byte, error) // SKI returns the subject key identifier of this key. SKI() []byte // Symmetric returns true if this key is a symmetric key, // false is this key is asymmetric Symmetric() bool // Private returns true if this key is a private key, // false otherwise. Private() bool // PublicKey returns the corresponding public key part of an asymmetric public/private key pair. // This method returns an error in symmetric key schemes. PublicKey() (Key, error) }
Key represents a cryptographic key
type KeyDerivOpts ¶
type KeyDerivOpts interface { // Algorithm returns the key derivation algorithm identifier (to be used). Algorithm() string // Ephemeral returns true if the key to derived has to be ephemeral, // false otherwise. Ephemeral() bool }
KeyDerivOpts contains options for key-derivation with a CSP.
type KeyGenOpts ¶
type KeyGenOpts interface { // Algorithm returns the key generation algorithm identifier (to be used). Algorithm() string // Ephemeral returns true if the key to generate has to be ephemeral, // false otherwise. Ephemeral() bool }
KeyGenOpts contains options for key-generation with a CSP.
type KeyImportOpts ¶
type KeyImportOpts interface { // Algorithm returns the key importation algorithm identifier (to be used). Algorithm() string // Ephemeral returns true if the key generated has to be ephemeral, // false otherwise. Ephemeral() bool }
KeyImportOpts contains options for importing the raw material of a key with a CSP.
type KeyStore ¶
type KeyStore interface { // ReadOnly returns true if this KeyStore is read only, false otherwise. // If ReadOnly is true then StoreKey will fail. ReadOnly() bool // GetKey returns a key object whose SKI is the one passed. GetKey(ski []byte) (k Key, err error) // StoreKey stores the key k in this KeyStore. // If this KeyStore is read only then the method will fail. StoreKey(k Key) (err error) }
KeyStore represents a storage system for cryptographic keys. It allows to store and retrieve bccsp.Key objects. The KeyStore can be read only, in that case StoreKey will return an error.
type OQSGoPublicKeyImportOpts ¶
type OQSGoPublicKeyImportOpts struct {
Temporary bool
}
OQSGoPublicKeyImportOpts contains options for OQS public key importation in go oqs struct format.
func (*OQSGoPublicKeyImportOpts) Algorithm ¶
func (opts *OQSGoPublicKeyImportOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*OQSGoPublicKeyImportOpts) Ephemeral ¶
func (opts *OQSGoPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type OQSKeyGenOpts ¶
OQSKeyGenOpts contains options for OQS key generation
func (*OQSKeyGenOpts) Algorithm ¶
func (opts *OQSKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier.
func (*OQSKeyGenOpts) Ephemeral ¶
func (opts *OQSKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type OQSPublicKeyImportOpts ¶
type OQSPublicKeyImportOpts struct {
Temporary bool
}
OQSPublicKeyImportOpts contains options for OQS public key importation in DER format
func (*OQSPublicKeyImportOpts) Algorithm ¶
func (opts *OQSPublicKeyImportOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*OQSPublicKeyImportOpts) Ephemeral ¶
func (opts *OQSPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSA1024KeyGenOpts ¶
type RSA1024KeyGenOpts struct {
Temporary bool
}
RSA1024KeyGenOpts contains options for RSA key generation at 1024 security.
func (*RSA1024KeyGenOpts) Algorithm ¶
func (opts *RSA1024KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*RSA1024KeyGenOpts) Ephemeral ¶
func (opts *RSA1024KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSA2048KeyGenOpts ¶
type RSA2048KeyGenOpts struct {
Temporary bool
}
RSA2048KeyGenOpts contains options for RSA key generation at 2048 security.
func (*RSA2048KeyGenOpts) Algorithm ¶
func (opts *RSA2048KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*RSA2048KeyGenOpts) Ephemeral ¶
func (opts *RSA2048KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSA3072KeyGenOpts ¶
type RSA3072KeyGenOpts struct {
Temporary bool
}
RSA3072KeyGenOpts contains options for RSA key generation at 3072 security.
func (*RSA3072KeyGenOpts) Algorithm ¶
func (opts *RSA3072KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*RSA3072KeyGenOpts) Ephemeral ¶
func (opts *RSA3072KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSA4096KeyGenOpts ¶
type RSA4096KeyGenOpts struct {
Temporary bool
}
RSA4096KeyGenOpts contains options for RSA key generation at 4096 security.
func (*RSA4096KeyGenOpts) Algorithm ¶
func (opts *RSA4096KeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*RSA4096KeyGenOpts) Ephemeral ¶
func (opts *RSA4096KeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSAGoPublicKeyImportOpts ¶
type RSAGoPublicKeyImportOpts struct {
Temporary bool
}
ECDSAGoPublicKeyImportOpts contains options for RSA key importation from rsa.PublicKey
func (*RSAGoPublicKeyImportOpts) Algorithm ¶
func (opts *RSAGoPublicKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*RSAGoPublicKeyImportOpts) Ephemeral ¶
func (opts *RSAGoPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RSAKeyGenOpts ¶
type RSAKeyGenOpts struct {
Temporary bool
}
RSAKeyGenOpts contains options for RSA key generation.
func (*RSAKeyGenOpts) Algorithm ¶
func (opts *RSAKeyGenOpts) Algorithm() string
Algorithm returns the key generation algorithm identifier (to be used).
func (*RSAKeyGenOpts) Ephemeral ¶
func (opts *RSAKeyGenOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type RevocationAlgorithm ¶
type RevocationAlgorithm int32
RevocationAlgorithm identifies the revocation algorithm
const ( // AlgNoRevocation means no revocation support AlgNoRevocation RevocationAlgorithm = iota )
type SHA256Opts ¶
type SHA256Opts struct { }
SHA256Opts contains options relating to SHA-256.
func (*SHA256Opts) Algorithm ¶
func (opts *SHA256Opts) Algorithm() string
Algorithm returns the hash algorithm identifier (to be used).
type SHA384Opts ¶
type SHA384Opts struct { }
SHA384Opts contains options relating to SHA-384.
func (*SHA384Opts) Algorithm ¶
func (opts *SHA384Opts) Algorithm() string
Algorithm returns the hash algorithm identifier (to be used).
type SHA3_256Opts ¶
type SHA3_256Opts struct { }
SHA3_256Opts contains options relating to SHA3-256.
func (*SHA3_256Opts) Algorithm ¶
func (opts *SHA3_256Opts) Algorithm() string
Algorithm returns the hash algorithm identifier (to be used).
type SHA3_384Opts ¶
type SHA3_384Opts struct { }
SHA3_384Opts contains options relating to SHA3-384.
func (*SHA3_384Opts) Algorithm ¶
func (opts *SHA3_384Opts) Algorithm() string
Algorithm returns the hash algorithm identifier (to be used).
type SignerOpts ¶
type SignerOpts interface { crypto.SignerOpts }
SignerOpts contains options for signing with a CSP.
type X509AltPublicKeyImportOpts ¶
type X509AltPublicKeyImportOpts struct {
Temporary bool
}
X509AltPublicKeyImportOpts contains options for importing alternate public keys (eg, quantum-safe public keys, as in https://tools.ietf.org/id/draft-truskovsky-lamps-pq-hybrid-x509-00.html) from an X509 certificate
func (*X509AltPublicKeyImportOpts) Algorithm ¶
func (opts *X509AltPublicKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*X509AltPublicKeyImportOpts) Ephemeral ¶
func (opts *X509AltPublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.
type X509PublicKeyImportOpts ¶
type X509PublicKeyImportOpts struct {
Temporary bool
}
X509PublicKeyImportOpts contains options for importing public keys from an x509 certificate
func (*X509PublicKeyImportOpts) Algorithm ¶
func (opts *X509PublicKeyImportOpts) Algorithm() string
Algorithm returns the key importation algorithm identifier (to be used).
func (*X509PublicKeyImportOpts) Ephemeral ¶
func (opts *X509PublicKeyImportOpts) Ephemeral() bool
Ephemeral returns true if the key to generate has to be ephemeral, false otherwise.