Age-like Encrypted File Bundle

Encrypt or decrypt portable password-based file bundles with Argon2id, XChaCha20-Poly1305, and optional signatures

AGEX v1 wraps a file into a self-describing password-based bundle. It stores version metadata, Argon2id settings, and XChaCha20-Poly1305 ciphertext so you can move the bundle elsewhere and decrypt it later. Optional Ed25519 signing helps confirm who produced the bundle.

Example Results

2 examples

Encrypt a portable file handoff bundle

Protect a file with a passphrase and export a versioned AGEX bundle for transfer or backup

{
  "result": {
    "bundleFormat": "AGEX",
    "version": 1,
    "signatureIncluded": false
  }
}
View input parameters
{ "operation": "encrypt", "sourceFile": "/public/samples/mp3/waterfall.mp3", "passphrase": "correct horse battery staple", "strength": "moderate", "includeSignature": false }

Decrypt an AGEX bundle and verify its signature

Restore the original file from an AGEX bundle and report signature verification status when a public key is provided

{
  "result": {
    "bundleFormat": "AGEX",
    "version": 1,
    "signatureVerification": "verified"
  }
}
View input parameters
{ "operation": "decrypt", "bundleFile": "/public/processing/example.agex.json", "passphrase": "correct horse battery staple", "signerPublicKey": "BASE64_PUBLIC_KEY" }

Click to upload file or drag and drop file here

Maximum file size: 50MB Supported formats: */*

Click to upload file or drag and drop file here

Maximum file size: 100MB Supported formats: application/json, */*

Key Facts

Category
Security & Validation
Input Types
select, file, text, checkbox, textarea
Output Type
json
Sample Coverage
4
API Ready
Yes

Overview

The Age-like Encrypted File Bundle tool allows you to secure files using the AGEX v1 format, which packages your data into a self-describing, password-protected bundle. By combining Argon2id key derivation, XChaCha20-Poly1305 encryption, and optional Ed25519 digital signatures, it ensures your files remain confidential, tamper-proof, and verifiable during transit or storage.

When to Use

  • When you need to securely share a sensitive file over untrusted channels using a strong, password-derived key.
  • When archiving local backups that require high-grade encryption parameters like Argon2id and XChaCha20-Poly1305.
  • When you want to verify the origin and integrity of an encrypted file bundle using Ed25519 public key signatures.

How It Works

  • Select the operation (Encrypt or Decrypt) and upload your source file or existing AGEX bundle file.
  • Provide a passphrase and choose the Argon2id strength level to control key derivation hardness.
  • Optionally enable Ed25519 signing by providing or auto-generating a private key to sign the bundle.
  • Run the tool to generate a self-describing JSON bundle containing the ciphertext, metadata, and optional signature, or to decrypt and verify an existing bundle.

Use Cases

Encrypting database backups before uploading them to public cloud storage providers.
Signing and encrypting software update binaries for distribution to remote servers.
Exchanging confidential documents between team members using a pre-shared passphrase.

Examples

1. Encrypting a sensitive audio recording

Journalist
Background
A journalist needs to store an interview recording securely on an external drive.
Problem
The audio file contains sensitive information and must be encrypted with a strong passphrase to prevent unauthorized access if the drive is lost.
How to Use
Select the 'Encrypt' operation, upload the audio file, enter a strong passphrase, set the strength to 'moderate', and run the encryption.
Example Config
{
  "operation": "encrypt",
  "passphrase": "correct horse battery staple",
  "strength": "moderate",
  "includeSignature": false
}
Outcome
An AGEX JSON bundle is generated containing the encrypted audio file and Argon2id metadata.

2. Decrypting and verifying a signed configuration bundle

DevOps Engineer
Background
An engineer receives an encrypted configuration bundle from a teammate and needs to apply it.
Problem
The engineer must decrypt the configuration file and verify that it was actually created by the teammate's private key.
How to Use
Select the 'Decrypt' operation, upload the AGEX bundle file, enter the shared passphrase, and paste the teammate's base64 Ed25519 public key into the public key field.
Example Config
{
  "operation": "decrypt",
  "passphrase": "correct horse battery staple",
  "signerPublicKey": "BASE64_PUBLIC_KEY"
}
Outcome
The original configuration file is decrypted, and the tool confirms the signature status as 'verified'.

Try with Samples

json, file

Related Hubs

FAQ

What encryption algorithms does this tool use?

It uses Argon2id for password hashing and key derivation, and XChaCha20-Poly1305 for symmetric file encryption.

What is the purpose of the optional signature?

The Ed25519 signature allows the recipient to verify the identity of the sender and confirm the bundle has not been tampered with.

What are the differences between the strength levels?

The strength levels (interactive, moderate, sensitive) adjust the Argon2id memory and CPU limits, making password-cracking attempts progressively harder.

Can I decrypt a bundle without the original public key?

Yes, you can decrypt the file using only the passphrase, but you will not be able to verify the sender's signature without the public key.

Is the output bundle format compatible with standard age?

No, this tool uses the AGEX v1 format, which wraps the ciphertext and metadata into a self-describing JSON structure.

API Documentation

Request Endpoint

POST /en/api/tools/age-like-encrypted-file-bundle

Request Parameters

Parameter Name Type Required Description
operation select Yes -
sourceFile file (Upload required) No -
bundleFile file (Upload required) No -
passphrase text Yes -
strength select Yes -
includeSignature checkbox No -
signerId text No -
signerPrivateKey textarea No -
signerPublicKey textarea No -

File type parameters need to be uploaded first via POST /upload/age-like-encrypted-file-bundle to get filePath, then pass filePath to the corresponding file field.

Response Format

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON Data: JSON Data

AI MCP Documentation

Add this tool to your MCP server configuration:

{
  "mcpServers": {
    "elysiatools-age-like-encrypted-file-bundle": {
      "name": "age-like-encrypted-file-bundle",
      "description": "Encrypt or decrypt portable password-based file bundles with Argon2id, XChaCha20-Poly1305, and optional signatures",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=age-like-encrypted-file-bundle",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

You can chain multiple tools, e.g.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 tools.

Supports URL file links or Base64 encoding for file parameters.

If you encounter any issues, please contact us at [email protected]