package encrypted

import (
	balloon "go.cypherpunks.su/keks/cm/enc/balloon/cost"
)

const (
	SNTRUP761X25519Info = "cm/encrypted/sntrup761-x25519-hkdf-blake2b"

	ClassicMcEliece6960119X25519Info      = "cm/encrypted/mceliece6960119-x25519-hkdf-shake256"
	ClassicMcEliece6960119X25519DecapInfo = "cm/encrypted/mceliece6960119-x25519-hkdf-shake256/decap"
)

type KEM struct {
	A   string `keks:"a"`
	CEK []byte `keks:"cek"`
	To  []byte `keks:"to,omitempty"`

	// balloon-blake2b-hkdf related
	BalloonCost *balloon.Cost `keks:"cost,omitempty"`
	Salt        []byte        `keks:"salt,omitempty"`

	Encap []byte `keks:"encap,omitempty"`
}
