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 (k ByteKey) Bytes() []byte
Bytes returns the byte from this ByteKey
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 }
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 (k ByteWithECPublicKey) Populate(h Setter) error
HeaderPopulate populates the header with the required EC-DSA public key information ('epk' key)
type ByteWithIVAndTag struct { ByteKey IV []byte Tag []byte }
func (k ByteWithIVAndTag) Populate(h Setter) error
HeaderPopulate populates the header with the required AES GCM parameters ('iv' and 'tag')
type ByteWithSaltAndCount struct { ByteKey Salt []byte Count int }
func (k ByteWithSaltAndCount) Populate(h Setter) error
HeaderPopulate populates the header with the required PBES2 parameters ('p2s' and 'p2c')
EcdhesKeyGenerate generates keys using ECDH-ES algorithm / EC-DSA curve
type Ecdhes struct {
// contains filtered or unexported fields
}
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 (g Ecdhes) Generate() (ByteSource, error)
Generate generates new keys using ECDH-ES
func (g Ecdhes) Size() int
Size returns the key size associated with this generator
type Generator interface { Size() int Generate() (ByteSource, error) }
RandomKeyGenerate generates random keys
type Random struct {
// contains filtered or unexported fields
}
func NewRandom(n int) Random
NewRandom creates a new Generator that returns random bytes
func (g Random) Generate() (ByteSource, error)
Generate generates a random new key
func (g Random) Size() int
Size returns the key size
type Setter interface { Set(string, interface{}) error }
StaticKeyGenerate uses a static byte buffer to provide keys.
type Static []byte
func (g Static) Generate() (ByteSource, error)
Generate returns the key
func (g Static) Size() int
Size returns the size of the key
X25519KeyGenerate generates keys using ECDH-ES algorithm / X25519 curve
type X25519 struct {
// contains filtered or unexported fields
}
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 (g X25519) Generate() (ByteSource, error)
Generate generates new keys using ECDH-ES
func (g X25519) Size() int
Size returns the key size associated with this generator