// Package kem provides a unified interface for Streamlined NTRU Prime KEM schemes.
//
// # A register of Streamlined NTRU Prime schemes is available in the package
//
// go.cypherpunks.su/keks/cm/enc/sntrup761-x25519/sntrup761/pke/ntruprime/kem/schemes/sntrup
package kem

import (
	"io"

	"go.cypherpunks.su/keks/cm/enc/sntrup761-x25519/sntrup761/kem"
)

// A Scheme represents a specific instance of a NTRU PRIME KEM.
type Scheme interface {
	kem.Scheme

	// DeriveKeyPairFromGen deterministicallly derives a pair of keys from a nist DRBG.
	// Only used for deterministic testing
	DeriveKeyPairFromGen(gen *io.Reader) (kem.PublicKey, kem.PrivateKey)
}
