canaad-cli 0.1.0

CLI tool for AAD canonicalization per RFC 8785
canaad-cli-0.1.0 is not a library.

canaad-cli

Command-line tool for AAD (Additional Authenticated Data) canonicalization according to RFC 8785 (JSON Canonicalization Scheme).

Installation

cargo install canaad-cli

Usage

Canonicalize

Convert AAD JSON to canonical form:

# From argument
canaad canonicalize '{"v":1,"tenant":"org_abc","resource":"db","purpose":"encrypt"}'

# From file
canaad canonicalize -f input.json

# From stdin
echo '{"v":1,"tenant":"org_abc","resource":"db","purpose":"encrypt"}' | canaad canonicalize

# Output formats
canaad canonicalize '...' -o utf8    # UTF-8 string (default)
canaad canonicalize '...' -o hex     # Hexadecimal
canaad canonicalize '...' -o base64  # Base64
canaad canonicalize '...' -o raw     # Raw binary (for piping)

# Save to file
canaad canonicalize '...' --to-file output.bin

Validate

Check if AAD JSON is valid:

# Basic validation
canaad validate '{"v":1,"tenant":"org_abc","resource":"db","purpose":"encrypt"}'

# Quiet mode (exit code only)
canaad validate '...' --quiet

Hash

Compute SHA-256 hash of canonical AAD:

# Hex output (default)
canaad hash '{"v":1,"tenant":"org_abc","resource":"db","purpose":"encrypt"}'

# Base64 output
canaad hash '...' -o base64

Exit Codes

Code Meaning
0 Success
1 Validation error (invalid AAD)
2 I/O error (file not found, etc.)

License

MIT OR Apache-2.0