- Supports short Weierstrass curves used in Ukrainian standard DSTU 4145;
- Provides key deriviation for DSTU block ciphers (see https://github.com/muromec/em-gost);
- Encypted containers can be parsed and decrypted if respective cipher implementation is passed. See gost89, node-gost90 and dstucrypt/agent for reference;
- Encrypted and signed messages in wicked PKCS#7 format used by tax office (sta.gov.ua) are supported for both read and write (see jk.Box, jk.util.transport);
- When running on node, "speedup" module node-gf2m can be used for 2x performance boost (see dstucrypt/agent and node-gf2m packages).
- Jkurwa does not guarranty constant-time calculcation;
- Jkurwa only verifies signature against public key and does not actually check X.509 certificate validity (use openssl for this).
See ./test/ and ./examples/ directories. See dstucrypt/agent repo for example app.
- https://github.com/dstucrypt/ukurwa4145 - DSTU 4145 in Python;
- https://github.com/dstucrypt/gost89 - GOST cipher, hash, mac, key wrapper and container loader in pure js;
- https://github.com/dstucrypt/node-gost89 - same, but with native performance bossters (for node only);
- https://github.com/dstucrypt/em-gost - same as emgost-compiled module (with C source), deprecated;
- https://github.com/dstucrypt/node-gf2m - Native performance booster for jkurwa (gf2m primitives in C);
- https://github.com/dstucrypt/python-gost89 - gost hash for python (2 and 3);
- https://github.com/muromec/zozol - dumb ASN.1 parser and serialisator for python with X509 and wicked CMS schemas;
- https://github.com/dstucrypt/openssl-dstu - patched OpenSSL with DSTU 4145 and GOST family support;
- https://github.com/dstucrypt/dstu-validator - DSTU signature and certificate validator and parser as HTTP API daemon.
Demo site: http://eusign.org/doc
- https://github.com/dstucrypt/agent -- command line utility to sign, encrypt and decrypt tax reports
- https://github.com/dstucrypt/dstukeys -- web interface with examples of authentication
- Certificate format (in Ukrainian), basically kind of X.509v3: http://zakon4.rada.gov.ua/laws/show/z1398-12
- Private key container format, PBES2-like (effective from 01.01.2016): http://zakon3.rada.gov.ua/laws/show/z2227-13
- See https://github.com/dstucrypt/agent repo for tax report format and implementation details
First known use of the word Kurwa was recorded in 1415. Happy 600 birthday Kurwa!