Documentation
¶
Overview ¶
Package secretstream55 provides streaming AEAD encryption in Pure Go.
Two wire modes:
- Standard (NewEncryptor): maison framing v2 (en-tête versionné + tag authentifié + TagFinal). NewDecryptor relit le v2 et les archives v1 (décodeur hybride).
- Libsodium (NewLibsodiumEncryptor): crypto_secretstream_xchacha20poly1305 wire (wal-g compatible).
AEAD backend for standard mode: monocypher55 (default — bascule 2026-08-15, gate à trois preuves : fil croisé bit-identique, aliasing, rejet de forge). Un autre moteur (par exemple c2simd/aeadengine) s'injecte par NewEncryptorWithEngine / NewDecryptorWithEngine ; ce module n'importe aucun moteur optionnel.
Index ¶
Constants ¶
const ( // HeaderSizeV1 est la taille de l'en-tête maison v1 (nonce seul) et // de l'en-tête libsodium. HeaderSizeV1 = 24 // HeaderSize est la taille de l'en-tête maison v2 émis par NewEncryptor. HeaderSize = 36 // HeaderSizeV2 est un alias de HeaderSize (en-tête v2). HeaderSizeV2 = HeaderSize TagSize = 16 ChunkSize = 65536 TagMessage byte = 0x00 TagPush byte = 0x01 TagRekey byte = 0x02 TagFinal byte = 0x03 VersionV2 uint16 = 2 FlagsV2 uint16 = 0 MinFramePayloadV2 = 17 MaxFramePayloadV2 = 65553 )
Variables ¶
This section is empty.
Functions ¶
func NewLibsodiumDecryptor ¶
NewLibsodiumDecryptor returns a Reader for true libsodium secretstream wire.
func NewLibsodiumEncryptor ¶
NewLibsodiumEncryptor returns a WriteCloser using true libsodium secretstream wire. Caller must Close() to emit TAG_FINAL.
Types ¶
type Decryptor ¶
type Decryptor struct {
// contains filtered or unexported fields
}
Decryptor — standard (maison) framing.
func NewDecryptor ¶
NewDecryptor creates a standard-mode decryptor.
func NewDecryptorWithEngine ¶
NewDecryptorWithEngine est NewDecryptor avec un moteur AEAD fourni par l'appelant ; il doit être le même moteur (ou un moteur bit-identique) que celui qui a produit le flux.
func (*Decryptor) Close ¶
Close verrouille le déchiffreur et efface la sous-clé ainsi que les tampons possédés. La clé fournie par l'appelant n'est pas effacée : elle reste sa responsabilité.
func (*Decryptor) ReadWithAD ¶
ReadWithAD déchiffre un fragment en fournissant la même donnée associée que l'écrivain. La donnée n'est pas lue sur le fil. Un reliquat déjà déchiffré (outBuf) est servi sans réappliquer ad : l'AEAD a déjà été vérifiée pour ce fragment.
type Encryptor ¶
type Encryptor struct {
// contains filtered or unexported fields
}
Encryptor — standard (maison) framing + engine AEAD.
func NewEncryptor ¶
NewEncryptor creates a standard-mode encryptor (maison wire + engine AEAD).
func NewEncryptorWithEngine ¶
NewEncryptorWithEngine est NewEncryptor avec un moteur AEAD fourni par l'appelant à la place du moteur par défaut.
func (*Encryptor) Close ¶
Close écrit une trame TagFinal à chiffré vide, puis verrouille l'écrivain et efface la sous-clé ainsi que les tampons possédés. Un second Close est un no-op : un seul bloc terminal est émis. La clé fournie par l'appelant n'est pas effacée : elle reste sa responsabilité.
func (*Encryptor) WriteWithAD ¶
WriteWithAD chiffre p en liant chaque fragment à ad (format v2).
AD = "SS55-v2\x00" || seq_be64 || tag || len(ad_appelant)_be32 || ad_appelant
Le numéro de séquence et le tag sont authentifiés. La donnée d'appelant n'est pas transmise sur le fil : le lecteur la fournit. Les fragments restent bornés à ChunkSize.
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
cmd/formatgen
command
|
|
|
engine
Package engine abstracts AEAD backends for the maison (non-libsodium-wire) stream.
|
Package engine abstracts AEAD backends for the maison (non-libsodium-wire) stream. |
|
lsstream
Pure-Go libsodium secretstream reader (ported from wal-g fork, Apache-2.0).
|
Pure-Go libsodium secretstream reader (ported from wal-g fork, Apache-2.0). |
|
monocypher55
Code generated by sgoiter emit go127; DO NOT EDIT.
|
Code generated by sgoiter emit go127; DO NOT EDIT. |
|
monocypher_sgoiter
Package monocypher_sgoiter re-exports monocypher55 (compat path for engine tag aead_sgoiter).
|
Package monocypher_sgoiter re-exports monocypher55 (compat path for engine tag aead_sgoiter). |