...

Package keygen

import "github.com/lestrrat-go/jwx/jwe/internal/keygen"
Overview
Index

Overview ▾

type ByteKey

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

type ByteKey []byte

func (ByteKey) Bytes

func (k ByteKey) Bytes() []byte

Bytes returns the byte from this ByteKey

type ByteSource

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 ByteSource interface {
    Bytes() []byte
}

type ByteWithECPublicKey

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

type ByteWithECPublicKey struct {
    ByteKey
    PublicKey interface{}
}

func (ByteWithECPublicKey) Populate

func (k ByteWithECPublicKey) Populate(h Setter) error

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

type ByteWithIVAndTag

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

func (ByteWithIVAndTag) Populate

func (k ByteWithIVAndTag) Populate(h Setter) error

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

type ByteWithSaltAndCount

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

func (ByteWithSaltAndCount) Populate

func (k ByteWithSaltAndCount) Populate(h Setter) error

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

type Ecdhes

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

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

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

RandomKeyGenerate generates random keys

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

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

StaticKeyGenerate uses a static byte buffer to provide keys.

type Static []byte

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

X25519KeyGenerate generates keys using ECDH-ES algorithm / X25519 curve

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

func NewX25519

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

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

Generate generates new keys using ECDH-ES

func (X25519) Size

func (g X25519) Size() int

Size returns the key size associated with this generator