One-call encryption formats on top of crypto: sealed boxes, encrypt-then-MAC, Fernet
cryptoencryptionaes-gcmhmacfernet
[decks]
"@deckyard/sealbox" = "^0.1.0"| Version | Status | Kind | Pin | Requires | Engines | Capabilities |
|---|---|---|---|---|---|---|
| 0.1.0 | live | git | 1513fd02cefe | - | jennifer >=0.26.0 jennifer-tiny >=0.26.0 | - |
LGPL-3.0-only
0.1.0Times a client asked this registry where to find this deck. Not downloads: the registry only stores metadata, and the code is fetched from its repository directly, so we never see an install and cannot count one. Repeated builds inflate these numbers; installs from an existing lockfile do not appear at all. Counted in UTC.
One-call encryption formats for Jennifer, on top of its crypto library: sealed boxes (AES-256-GCM with the nonce stored in front), encrypt-then-MAC (AES-CBC + HMAC-SHA256), and Fernet tokens compatible with Python's cryptography.fernet. The caller never handles a nonce, an IV or a MAC, and every failure to open is one error that does not say which check failed.
jvc add @deckyard/sealboxThis vendors the deck to vendor/<scope>/sealbox/. Without jvc, unpack the src/ subtree of a release archive (<scope>-sealbox-<version>.tar.gz) there.
use convert;
import "@deckyard/sealbox/" as sealbox;
def key as bytes init sealbox.newKey();
def box as bytes init sealbox.seal(convert.bytesFromString("utf-8", "secret"), $key);
def back as bytes init sealbox.open($box, $key);Jennifer 0.26.0 or newer. Pure computation: no network, programs or databases, so it runs on jennifer-tiny too.
tools/check-all.sh # the full gate, as CI runs it
jennifer test src/sealbox_test.j # the test overlay
tools/check-docs.sh # docs against the code
tools/pack.sh dist # build the release archiveLGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <[email protected]>.
tools/check-headers.sh checks every source file's SPDX header against deck.toml.