String in, string out symmetric encryption
Oboron is a
string in, string out symmetric encryption protocol
— the enc operation takes a plaintext string
and returns an obtext string;
dec reverses it. Encryption and encoding
are combined into one seamless process across all
language implementations.
| Document | Description |
|---|---|
| Protocol Specification | formats, algorithms, key management, properties, API |
| CLI Specification | ob and obz command-line interface |
enc and dec
are the only operations you need;
no manual encoding/decoding steps
aasv = Authenticated + Avalanche + SiV),
making cryptographic choices accessible without deep expertise
More details:
Install:
Rust:
cargo instal oboron
Python:
pip install oboron
Generate your 512-bit key (86 base64 characters):
Rust:
cargo run --bin keygen
or in your code:
let key = oboron::generate_key();
Python:
python -m oboron.keygen
or in your code:
key = oboron.generate_key()
Save the key as an environment variable, then use
e.g., AasvC32 (a secure scheme, 256-bit
encrypted with AES-SIV, encoded using Crockford's
base32 variant) for enc/dec:
Rust:
use oboron::AasvC32;
let key = env::var("OBORON_KEY")?;
let ob = AasvC32::new(&key)?;
let ot = ob.enc("hello, world")?;
let pt2 = ob.dec(&ot)?;
println!("obtext: {}", ot);
// "obtext: cbv74r1m7a7cf8n6gzdy..."
assert_eq!(pt2, "hello, world");
Python:
import os
from oboron import AasvC32
key = os.getenv("OBORON_KEY")
ob = AasvC32(key)
ot = ob.enc("hello, world")
pt2 = ob.dec(ot)
print(f"obtext: {ot}")
# "obtext: cbv74r1m7a7cf8n6gzdy..."
assert pt2 == "hello, world"
All implementations produce identical obtext for the same key and plaintext.
The CLI Specification
presents a standardized CLI interface enabling
cross-language conformance testing:
any implementation (Rust, Python, Go, etc.)
can run the existing standard testing suite
—
ob-cli-tests crate
in the reference implementation repo
(github.com/ob-enc/oboron-rs)
—
through a shared CLI contract,
verifying that each implementation
produces identical outputs.
Thus, by implementing the standard CLI interface, implementers can validate their implementation using the language-agnostic reference testing suite.
Oboron's combination of properties — particularly prefix entropy, compactness, and deterministic injectivity — enables specialized use cases beyond general-purpose encryption:
| Use Case | Traditional Solution | Oboron Approach |
|---|---|---|
| Short unique IDs | UUIDv4 (36 chars) | ob:aasv.c32
(34-47 chars, reversible) |
| URL parameters | JWT (150+ chars) | ob:aasv.b64
(4.5x smaller, 4x faster) |
| Database ID masking | Hashids (not secure) | Proper encryption |
ob-enc/oboron-rs)
oboron crate
oboron-cli crate
(ob and obz binaries)
ob-enc/oboron-rs/oboron-py)
The documentation and standards on this website are licensed under the MIT License.