Un fichier age comporte un en-tête textuel avec un bloc (stanza) par destinataire (X25519, scrypt, ssh-ed25519, ssh-rsa, types de plugins et, depuis age 1.3, mlkem768x25519 pour les destinataires hybrides post-quantiques), chacun enveloppant la même clé de fichier, puis un MAC d’en-tête (HMAC-SHA-256) et la charge utile chiffrée avec ChaCha20-Poly1305 par segments de 64 Kio. Les clés sont des chaînes d’une ligne : destinataires age1… et identités (clés privées) AGE-SECRET-KEY-1… ; les destinataires post-quantiques age1pq1… font 1959 caractères.
age omet délibérément les signatures, les serveurs de clés, la toile de confiance et le choix des algorithmes ; associez-le à ssh-keygen -Y ou à minisign quand l’authenticité compte, car quiconque possède la clé publique d’un destinataire peut chiffrer pour lui. Parmi les implémentations figurent l’outil de référence en Go, rage (Rust) et typage (TypeScript) ; SOPS et plusieurs outils de gestion de secrets l’utilisent. Mesure avec age 1.3.2 : chiffrer cinq octets pour un seul destinataire post-quantique produit un fichier de 1664 octets. L’outil de chiffrement age s’exécute localement dans le navigateur.