hpke

package standard library
go1.24.1 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2025 License: BSD-3-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AEAD_AES_128_GCM      = 0x0001
	AEAD_AES_256_GCM      = 0x0002
	AEAD_ChaCha20Poly1305 = 0x0003
)
View Source
const DHKEM_X25519_HKDF_SHA256 = 0x0020
View Source
const KDF_HKDF_SHA256 = 0x0001

Variables

View Source
var SupportedAEADs = map[uint16]struct {
	keySize   int
	nonceSize int
	aead      func([]byte) (cipher.AEAD, error)
}{

	AEAD_AES_128_GCM:      {/* contains filtered or unexported fields */},
	AEAD_AES_256_GCM:      {/* contains filtered or unexported fields */},
	AEAD_ChaCha20Poly1305: {/* contains filtered or unexported fields */},
}
View Source
var SupportedKDFs = map[uint16]func() *hkdfKDF{

	KDF_HKDF_SHA256: func() *hkdfKDF { return &hkdfKDF{crypto.SHA256} },
}
View Source
var SupportedKEMs = map[uint16]struct {
	curve   ecdh.Curve
	hash    crypto.Hash
	nSecret uint16
}{

	DHKEM_X25519_HKDF_SHA256: {ecdh.X25519(), crypto.SHA256, 32},
}

Functions

func ParseHPKEPrivateKey added in go1.24.0

func ParseHPKEPrivateKey(kemID uint16, bytes []byte) (*ecdh.PrivateKey, error)

func ParseHPKEPublicKey

func ParseHPKEPublicKey(kemID uint16, bytes []byte) (*ecdh.PublicKey, error)

Types

type AEADID added in go1.24.0

type AEADID uint16

type KDFID added in go1.24.0

type KDFID uint16

type KemID added in go1.24.0

type KemID uint16

type Receipient added in go1.24.0

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

func SetupReceipient added in go1.24.0

func SetupReceipient(kemID, kdfID, aeadID uint16, priv *ecdh.PrivateKey, info, encPubEph []byte) (*Receipient, error)

func (*Receipient) Open added in go1.24.0

func (r *Receipient) Open(aad, ciphertext []byte) ([]byte, error)

type Sender

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

func SetupSender

func SetupSender(kemID, kdfID, aeadID uint16, pub *ecdh.PublicKey, info []byte) ([]byte, *Sender, error)

func (*Sender) Seal

func (s *Sender) Seal(aad, plaintext []byte) ([]byte, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳