keygen

package
v1.2.12 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2021 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ByteKey

type ByteKey []byte

ByteKey is a generated key that only has the key's byte buffer as its instance data. If a key needs to do more, such as providing values to be set in a JWE header, that key type wraps a ByteKey

func (ByteKey) Bytes

func (k ByteKey) Bytes() []byte

Bytes returns the byte from this ByteKey

type ByteSource

type ByteSource interface {
	Bytes() []byte
}

ByteSource is an interface for things that return a byte sequence. This is used for KeyGenerator so that the result of computations can carry more than just the generate byte sequence.

type ByteWithECPublicKey added in v1.0.7

type ByteWithECPublicKey struct {
	ByteKey
	PublicKey interface{}
}

ByteWithECPublicKey holds the EC private key that generated the key along with the key itself. This is required to set the proper values in the JWE headers

func (ByteWithECPublicKey) Populate added in v1.0.7

func (k ByteWithECPublicKey) Populate(h Setter) error

HeaderPopulate populates the header with the required EC-DSA public key information ('epk' key)

type ByteWithIVAndTag added in v1.0.6

type ByteWithIVAndTag struct {
	ByteKey
	IV  []byte
	Tag []byte
}

func (ByteWithIVAndTag) Populate added in v1.0.6

func (k ByteWithIVAndTag) Populate(h Setter) error

HeaderPopulate populates the header with the required AES GCM parameters ('iv' and 'tag')

type ByteWithSaltAndCount added in v1.0.6

type ByteWithSaltAndCount struct {
	ByteKey
	Salt  []byte
	Count int
}

func (ByteWithSaltAndCount) Populate added in v1.0.6

func (k ByteWithSaltAndCount) Populate(h Setter) error

HeaderPopulate populates the header with the required PBES2 parameters ('p2s' and 'p2c')

type Ecdhes

type Ecdhes struct {
	// contains filtered or unexported fields
}

EcdhesKeyGenerate generates keys using ECDH-ES algorithm / EC-DSA curve

func NewEcdhes

func NewEcdhes(alg jwa.KeyEncryptionAlgorithm, enc jwa.ContentEncryptionAlgorithm, keysize int, pubkey *ecdsa.PublicKey) (*Ecdhes, error)

NewEcdhes creates a new key generator using ECDH-ES

func (Ecdhes) Generate

func (g Ecdhes) Generate() (ByteSource, error)

Generate generates new keys using ECDH-ES

func (Ecdhes) Size

func (g Ecdhes) Size() int

Size returns the key size associated with this generator

type Generator

type Generator interface {
	Size() int
	Generate() (ByteSource, error)
}

type Random

type Random struct {
	// contains filtered or unexported fields
}

RandomKeyGenerate generates random keys

func NewRandom

func NewRandom(n int) Random

NewRandom creates a new Generator that returns random bytes

func (Random) Generate

func (g Random) Generate() (ByteSource, error)

Generate generates a random new key

func (Random) Size

func (g Random) Size() int

Size returns the key size

type Setter

type Setter interface {
	Set(string, interface{}) error
}

type Static

type Static []byte

StaticKeyGenerate uses a static byte buffer to provide keys.

func (Static) Generate

func (g Static) Generate() (ByteSource, error)

Generate returns the key

func (Static) Size

func (g Static) Size() int

Size returns the size of the key

type X25519 added in v1.0.7

type X25519 struct {
	// contains filtered or unexported fields
}

X25519KeyGenerate generates keys using ECDH-ES algorithm / X25519 curve

func NewX25519 added in v1.0.7

func NewX25519(alg jwa.KeyEncryptionAlgorithm, enc jwa.ContentEncryptionAlgorithm, keysize int, pubkey x25519.PublicKey) (*X25519, error)

NewX25519 creates a new key generator using ECDH-ES

func (X25519) Generate added in v1.0.7

func (g X25519) Generate() (ByteSource, error)

Generate generates new keys using ECDH-ES

func (X25519) Size added in v1.0.7

func (g X25519) Size() int

Size returns the key size associated with this generator

Jump to

Keyboard shortcuts

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