Documentation ¶
Overview ¶
Package nike contains generic NIKE interfaces and many implementations.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Key ¶
type Key interface { encoding.BinaryMarshaler encoding.BinaryUnmarshaler encoding.TextMarshaler encoding.TextUnmarshaler // Reset resets the key material to all zeros. Reset() // Bytes serializes key material into a byte slice. Bytes() []byte // FromBytes loads key material from the given byte slice. FromBytes(data []byte) error }
Key is an interface for types encapsulating key material.
type PrivateKey ¶
PrivateKey is an interface for types encapsulating private key material.
type PublicKey ¶
type PublicKey interface { Key // Blind performs a blinding operation and mutates the public // key with the blinded value. Blind(blindingFactor PrivateKey) error }
PublicKey is an interface for types encapsulating public key material.
type Scheme ¶
type Scheme interface { // Name returns the name of the NIKE scheme implementation. Name() string // PublicKeySize returns the size in bytes of the public key. PublicKeySize() int // PrivateKeySize returns the size in bytes of the private key. PrivateKeySize() int // GeneratePrivateKey uses the given RNG to derive a new private key. // This can be used to deterministically generate private keys if the // entropy source is deterministic, for example an HKDF. GeneratePrivateKey(rng io.Reader) PrivateKey // GenerateKeyPair creates a new key pair. GenerateKeyPair() (PublicKey, PrivateKey, error) // GenerateKeyPairFromEntropy creates a new key pair from the given entropy source. GenerateKeyPairFromEntropy(rng io.Reader) (PublicKey, PrivateKey, error) // DeriveSecret derives a shared secret given a private key // from one party and a public key from another. DeriveSecret(PrivateKey, PublicKey) []byte // DerivePublicKey derives a public key given a private key. DerivePublicKey(PrivateKey) PublicKey // Blind performs the blinding operation against the // given group member, returning the blinded key. Blind(groupMember PublicKey, blindingFactor PrivateKey) (blindedGroupMember PublicKey) // NewEmptyPublicKey returns an uninitialized // PublicKey which is suitable to be loaded // via some serialization format via FromBytes // or FromPEMFile methods. NewEmptyPublicKey() PublicKey // NewEmptyPrivateKey returns an uninitialized // PrivateKey which is suitable to be loaded // via some serialization format via FromBytes // or FromPEMFile methods. NewEmptyPrivateKey() PrivateKey // UnmarshalBinaryPublicKey loads a public key from byte slice. UnmarshalBinaryPublicKey([]byte) (PublicKey, error) // Unmarshals a PrivateKey from the provided buffer. UnmarshalBinaryPrivateKey([]byte) (PrivateKey, error) }
Scheme is an interface encapsulating a non-interactive key exchange.
Click to show internal directories.
Click to hide internal directories.