crypto.aead.encrypt
Chiffrement authentifié (XChaCha20-Poly1305).
📝Syntaxe
boxed = crypto.aead.encrypt(key, nonce, plaintext)
boxed = crypto.aead.encrypt(key, nonce, plaintext, associatedData)
📥Arguments d'entrée
Paramètre Description
key vecteur uint8 de 32 octets ou 64 caractères hexadécimaux : clé secrète.
nonce vecteur uint8 de 24 octets ou 48 caractères hexadécimaux : unique par message pour une clé donnée (utilisez crypto.random).
plaintext vecteur uint8 (octets bruts) ou vecteur de caractères (octets UTF-8) : contenu à chiffrer.
associatedData vecteur uint8 (octets bruts) ou vecteur de caractères (octets UTF-8) : données optionnelles authentifiées mais non chiffrées ; la même valeur doit être donnée au déchiffrement.
📤Arguments de sortie
Paramètre Description
boxed vecteur ligne uint8 : le tag d'authentification de 16 octets suivi du texte chiffré (de même longueur que le message clair).
📄Description

crypto.aead.encrypt chiffre et authentifie un message avec XChaCha20-Poly1305, un schéma de chiffrement authentifié à clé de 256 bits et nonce de 192 bits.

Le nonce doit être unique pour chaque message chiffré avec la même clé ; un nonce répété casse la sécurité. Générez-le avec crypto.random(24) et stockez-le à côté du message chiffré (il n'est pas secret).

💡Exemples
chiffrer puis déchiffrer
key = crypto.random(32);
nonce = crypto.random(24);
boxed = crypto.aead.encrypt(key, nonce, 'a secret message');
char(crypto.aead.decrypt(key, nonce, boxed))
🔗Voir aussi
crypto.aead.decryptcrypto.randomcrypto.x25519.shared
Used Functions
Monocypher
📚Bibliographie
https://monocypher.org/, https://datatracker.ietf.org/doc/draft-irtf-cfrg-xchacha/
🕔Historique des versions
Version Description
2.0.0 version initiale
Modifier cette page sur GitHub