Oboron

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.

Specifications

Document Description
Protocol Specification formats, algorithms, key management, properties, API
CLI Specification ob and obz command-line interface

Features

More details:

Quick Start

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.

Why a CLI Specification?

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.

Applications

Oboron's combination of properties — particularly prefix entropy, compactness, and deterministic injectivity — enables specialized use cases beyond general-purpose encryption:

Comparison with Alternatives

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

Implementations

Getting Help

License

The documentation and standards on this website are licensed under the MIT License.