kem

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package kem implements the Key Encapsulation Mechanism for kMOSAIC.

Index

Constants

View Source
const (
	DomainSLSS           = "kmosaic-kem-slss-v1"
	DomainTDD            = "kmosaic-kem-tdd-v1"
	DomainEGRW           = "kmosaic-kem-egrw-v1"
	DomainSharedSecret   = "kmosaic-kem-ss-v1"
	DomainEncKey         = "kmosaic-enc-key-v1"
	DomainNonce          = "kmosaic-nonce-v1"
	DomainImplicitReject = "kmosaic-kem-reject-v1"
)

Variables

This section is empty.

Functions

func Decapsulate

Decapsulate recovers the shared secret from a ciphertext.

func Decrypt

Decrypt decrypts an encrypted message.

func DeserializeCiphertext added in v1.0.1

func DeserializeCiphertext(data []byte) (*kmosaic.MOSAICCiphertext, error)

DeserializeCiphertext deserializes bytes to a ciphertext. Format: [c1_len:4][c1_data][c2_len:4][c2_data][c3_len:4][c3_data][proof_data] Note: proof has no length prefix - it's everything remaining in buffer

func DeserializeEncryptedMessage added in v1.0.1

func DeserializeEncryptedMessage(data []byte) (*kmosaic.EncryptedMessage, error)

DeserializeEncryptedMessage deserializes bytes to an encrypted message. Format: [kemCt_len:4][kemCt_data][aes_encrypted_data] Note: nonce is not stored - it will be derived from shared secret during decryption

func DeserializePublicKey added in v1.0.1

func DeserializePublicKey(data []byte) (*kmosaic.MOSAICPublicKey, error)

DeserializePublicKey deserializes bytes to a public key. Format: [level_len:4][level_string][slss_len:4][slss_data][tdd_len:4][tdd_data][egrw_len:4][egrw_data][binding:32]

func DeserializeSecretKey added in v1.0.1

func DeserializeSecretKey(data []byte) (*kmosaic.MOSAICSecretKey, error)

DeserializeSecretKey deserializes bytes to a secret key.

func Encapsulate

Encapsulate generates a shared secret and ciphertext.

func EncapsulateDeterministic

func EncapsulateDeterministic(pk *kmosaic.MOSAICPublicKey, ephemeralSecret []byte) (*kmosaic.EncapsulationResult, error)

EncapsulateDeterministic performs deterministic encapsulation.

func Encrypt

func Encrypt(pk *kmosaic.MOSAICPublicKey, plaintext []byte) (*kmosaic.EncryptedMessage, error)

Encrypt encrypts a message using KEM+DEM.

func GenerateKeyPair

func GenerateKeyPair(level kmosaic.SecurityLevel) (*kmosaic.MOSAICKeyPair, error)

GenerateKeyPair generates a kMOSAIC key pair.

func GenerateKeyPairFromSeed

func GenerateKeyPairFromSeed(params kmosaic.MOSAICParams, seed []byte) (*kmosaic.MOSAICKeyPair, error)

GenerateKeyPairFromSeed generates a deterministic key pair from seed.

func SerializeCiphertext

func SerializeCiphertext(ct *kmosaic.MOSAICCiphertext) []byte

SerializeCiphertext serializes a ciphertext. Format: [c1_len:4][c1_data][c2_len:4][c2_data][c3_len:4][c3_data][proof_data] Note: proof has no length prefix - it extends to end of buffer

func SerializeEncryptedMessage added in v1.0.1

func SerializeEncryptedMessage(em *kmosaic.EncryptedMessage) []byte

SerializeEncryptedMessage serializes an encrypted message. Format: [kemCt_len:4][kemCt_data][aes_encrypted_data] Note: nonce is not stored - it's derived from shared secret during decryption

func SerializePublicKey

func SerializePublicKey(pk *kmosaic.MOSAICPublicKey) []byte

SerializePublicKey serializes a public key. Format: [level_len:4][level_string][slss_len:4][slss_data][tdd_len:4][tdd_data][egrw_len:4][egrw_data][binding:32]

func SerializeSecretKey added in v1.0.1

func SerializeSecretKey(sk *kmosaic.MOSAICSecretKey) []byte

SerializeSecretKey serializes a secret key.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL