ROOSTby Axowl

Docs

Data encryption

Roost encrypts data the envelope way: your application encrypts data with a data key, and Roost wraps that data key with a key-encryption key that never leaves the box. Large data stays fast on your servers; the key that matters stays in hardware.

Encrypt and decrypt

// .NET
var box = await roost.Envelope.EncryptAsync("data-key-eu", plaintext, context: new { orgId, recordId });
var data = await roost.Envelope.DecryptAsync(box);

# Python
box = roost.envelope.encrypt("data-key-eu", plaintext, context={"orgId": org_id})
data = roost.envelope.decrypt(box)

One call does the whole flow: a fresh data key, authenticated encryption, a wrap request to Roost, and one envelope back. Decrypt reverses it. The unwrap passes the key's policy, limits, quorum and audit.

Envelope format

FieldContent
versionEnvelope format version
algAES-256-GCM or ARIA-256-GCM
keyKey name and version that wrapped the data key
wrappedThe wrapped data key (AES-KWP)
nonceGenerated by the appliance, never by the application
contextBound into the authentication tag; an envelope cannot be replayed for another record or organization
ciphertext · tagThe data and its authentication tag

Because the key version is in the envelope, rotation never breaks old data: an envelope wrapped with v1 still opens after v2 becomes active.

Modes

Only authenticated modes exist: GCM for data, KWP for wrapping. ECB and CBC are refused with a reason. Nonces are generated by the appliance, so a repeated nonce cannot happen in application code.

Small secrets inside the box

Short values, such as card numbers or identifiers, can be encrypted and decrypted inside Roost directly, without a data key leaving the box, under a key policy that forbids unwrap.

Crypto-shredding

One key-encryption key per organization or partition means deleting that key makes all its data unreadable at once, backups included. The deletion is approved, recorded and reported.

axowl.com/dashboard/acme/roost/keys
AxowlacmeRoostM

Keys

27keys
3rotating
0exportable
NamePurposeVersionQuorumLast used
release-signingcode-signingv3 active2 of 32 min ago
StatusArmed
PolicyApproval required
Born inROOST-26-0001
ExportNever
data-key-eudata-keyv2 active · v1 decrypt-only2 of 310 s ago
tls-wwwtlsv1 active2 of 31 s ago
ca-intermediatecav1 active2 of 33 days ago
Keys: purpose templates, versions and a status card for each key.