Files
zemion 82bb01b13f
Verify / verify (push) Canceled after 0s
Release Crypto Tools 0.2.0
2026-09-02 10:40:23 +02:00

40 lines
2.4 KiB
Markdown

# Crypto Tools
Inspect keys, certificates and signatures locally in the browser.
Crypto Tools is a standalone local-first application in the [add·ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal). Inputs are processed in the browser and are not uploaded.
## Current scope
- Bounded PEM and DER inspection for X.509 certificates, CSRs and CRLs
- PBES2/PBKDF2 encrypted PKCS #8 parameter inspection and password-gated in-memory decryption for WebCrypto-supported AES-CBC/AES-GCM profiles
- Bounded PKCS #12/PFX AuthenticatedSafe, SafeContents and nested bag inventory, including friendly names, local key IDs, X.509 certificates and private-key container metadata
- Password-gated PKCS #12 MacData verification for SHA-1/SHA-2 plus modern PBES2/PBKDF2 AES-CBC/AES-GCM decryption for encrypted SafeContents and shrouded PKCS #8 keys
- Identification and fingerprinting of public/private PEM key material
- JWK/JWKS inspection, private-member warnings and RFC 7638 SHA-256 thumbprints
- Explicit certificate-path analysis across supplied certificates: issuer DN, AKI/SKI, signature, CA/keyCertSign, path-length and time checks, without claiming trust
- DNS SAN hostname checks
- Concrete, fixed-profile WebCrypto sign/verify operations (RSA-PSS, RSASSA-PKCS1-v1_5, ECDSA P-256 and browser-supported Ed25519)
- Concrete RSA-OAEP SHA-256 and AES-256-GCM text encryption/decryption, with authenticated AES envelopes and explicit size/encoding limits
- A local JSON inspection report with an explicit non-trust model
This is not complete RFC 5280 validation, certificate trust, revocation checking, issuance, CMS/JWS tooling, legacy PKCS #1/SEC1 conversion or general-purpose file cryptography. PKCS #12 support intentionally rejects legacy PKCS #12 PBE/RC2/3DES, unknown CMS content, unsupported certificate types and excessive/malformed nesting; it does not implicitly export bag values. Inputs are bounded to 8 MiB and 256 PEM blocks, and password-gated inspection has a shared PBKDF2 work budget. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [docs/PRIVACY-SECURITY.md](docs/PRIVACY-SECURITY.md).
## Development
Requires Node.js 22 and npm 11.
```sh
npm ci
npm run check
npm run test:browser
```
## Release
`npm run release:artifact` creates a deterministic `release/crypto-tools-0.2.0.zip` and checksum sidecar.
## Licence
GPL-3.0-or-later. Runtime dependencies retain their own licences; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).