RFC 9180 Hybrid Public Key Encryption (HPKE) and RFC 7515-7519 JOSE security suite in pure MoonBit
moon --versionmoon fmt --check
moon check --deny-warn
moon test --target native --deny-warn --no-parallelize
moon run cmd/hpke-clipwsh -File scripts/acceptance_check.ps1
pwsh -File scripts/source_stats.ps1moonbit-hpke/
├── moon.mod
├── cmd/hpke-cli/ # runnable end-to-end demonstration
├── src/core/ # encoding, byte safety, BigNat
├── src/crypto/ # cryptographic primitives
├── src/hpke/ # RFC 9180 protocol and contexts
├── src/jwk/ # RFC 7517 / RFC 7638
├── src/jws/ # RFC 7515
├── src/jwe/ # RFC 7516
├── src/jwt/ # RFC 7519 and replay cache
├── scripts/ # repeatable local acceptance checks
└── .github/workflows/ # multi-platform CImoon bench --package src/crypto --target native --release --deny-warn --no-parallelize
moon bench --package src/hpke --target native --release --deny-warn --no-parallelize| Benchmark | Mean |
|---|---|
| SHA-256, 32 B | 551.62 ns |
| SHA-256, 1 KiB | 4.92 µs |
| SHA-256, 16 KiB | 73.06 µs |
| HMAC-SHA256, 1 KiB | 7.33 µs |
| Base64URL encode, 1 KiB | 4.56 µs |
| AES-128 block | 521.84 ns |
| AES-GCM seal, 1 KiB | 54.16 µs |
| ChaCha20-Poly1305 seal, 1 KiB | 13.69 µs |
| X25519 base multiplication | 561.24 ms |
| HPKE Base seal, 1 KiB | 1.12 s |
| HPKE Base open, 1 KiB | 1.07 s |
Install
Download zipRFC 9180 Hybrid Public Key Encryption (HPKE) and RFC 7515-7519 JOSE security suite in pure MoonBit