Offline SDKs for importing RSA keys into a local vault and decrypting CENC-encrypted MP4 files.
This repository hosts multiple language ports of the same SDK. The wire format,
vault layout, and error codes live in spec/ and are the source of
truth for every implementation.
| Language | Location | Status |
|---|---|---|
| Python | python/ |
Stable — see python/README.md |
| Ruby | ruby/ |
Ready — see ruby/README.md |
spec/ Format spec & error taxonomy — language-agnostic source of truth
test-vectors/ Shared fixtures: sample RSA keys, encrypted samples, expected outputs
python/ Python SDK (pyproject.toml, src/, tests/, scripts/)
ruby/ Ruby SDK (gemspec, lib/, test/)
robocap-vault/ Sample on-disk vault (language-agnostic runtime artifact)
Every SDK is expected to pass against the same fixtures under
test-vectors/. A change to the binary format requires
updating spec/ and both SDKs in the same PR.
# Python
cd python && pip install -e ".[dev,web]" && pytest
# Ruby
cd ruby && bundle install && bundle exec rake testThe keys under test-vectors/ and robocap-vault/ are test fixtures only.
Never use them in production.