Miscellaneous Widgets
Incomplete catalog of small-scale projects I’ve developed or participated in.
Websites
- Ed25519 quirks (open-source), a website about quirks of the Ed25519 digital signature cryptosystem.
- Just Web Token (open-source), an education website about JSON Web Tokens (JWTs) that allows parsing and verifying tokens.
- Elasticpoll (open-source), a web application that allows organizing single-choice and multi-choice polls that combine privacy and universal verifiability with the help of some applied cryptography.
- Fractals (⚠ in Russian), a website for rendering Julia set fractals.
- Lectures on software engineering (⚠ in Russian)
Rust Crates
arithmetic-parser,arithmetic-eval,arithmetic-typing. Customizable parser, interpreter and type system for arithmetic expressions.const-decoder. Decoding byte buffers from hex and base64 encodings in compile time.julia-set. Rendering Julia set fractals with the help of OpenCL, Vulkan or CPU compute.hex-buffer-serde. A small crate allowing to customize serialization of byte slices depending on the serializer “compactness”.secret-tree. Deriving secrets from a single secret seed using the Blake2b hash function, in a libsodium-compatible way.pwbox. Passphrase-based encryption with customizable cryptographic backends.jwt-compact. JSON Web Token implementation focused on supporting compact claim serialization with CBOR and support of alternative cryptosystems.ocl-convolution. OpenCL implementation of quantized convolution layers for deep neural networks.elastic-elgamal. ElGamal encryption and related cryptographic protocols (such as various zero-knowledge proofs) with a pluggable crypto backend.externref. Low-cost reference type (akaexternrefandanyref) shims for WASM modules.term-transcript. Snapshot creation and testing for CLI / REPL applications.tracing-captureandtracing-tunnel. Tools for thetracingframework allowing to capture tracing spans / events, and to propagate them across an opaque boundary (e.g., when running WASM modules usingwasmtimeor another WASM engine).
NPM Packages
chai-bytes. Easy assertions on byte arrays based on Chai.julia-set,julia-set-node. Rendering Julia set fractals with the help of WebGL (and Puppeteer in the case of Node).bech32-buffer. Bech32(m) encoding for Bitcoin adderesses and other applications. The demo website is also available.