Nikolai Konovalov
banner
li0ard.rest
Nikolai Konovalov
@li0ard.rest
Fullstack TS developer • cryptography engineer • OSS maintainer • connoisseur of coffee

Building eMRTD tools and creating OSS for 🇷🇺 GOST, 🇺🇦 DSTU, 🇧🇾 STB standards

Github: @li0ard • li0ard.rest
Какие ещё нужны док-ва, что т.н "госмессенджер макс", это очередное поделие ВК (точнее переделанный ТамТам)

ONEME - внутреннее имя почившего ТамТам'а

P.S Да, я знаю, что вовремя
December 22, 2025 at 6:04 PM
Developed a library for working with ICAO Visible Digital Stamps (VDS). I like this standard; it is much simpler and more standardized than whole eMRTD.

Library: github.com/li0ard/vds
GitHub - li0ard/vds: simple library for ICAO Visible Digital Seals (VDS). supports browsers, node, bun and more!
simple library for ICAO Visible Digital Seals (VDS). supports browsers, node, bun and more! - li0ard/vds
github.com
December 7, 2025 at 6:30 PM
ISO/IEC 39794 is good replacement for ISO/IEC 19794, but i have never seen so many "pyramid" ASN.1 structures. tsemrtd will implement this standard, but only for mandatory fields and only for DG2 now
November 22, 2025 at 10:30 PM
Ask me about my dream and i'll answer "stały pobyt"...
November 12, 2025 at 9:18 PM
"Many thanks" to Roskomnadzor, cuz now I can't open sites that using @cloudflare.social without using VPN.
November 3, 2025 at 5:53 AM
btw GPL (and AGPL, LGPL) sucks, use MIT
I got permanently banned from r/opensource on reddit for saying GPL license is bullshit. wow that's fucking pathetic lol
September 18, 2025 at 7:57 PM
Welcome to the "fascinating" world of cryptographic algorithms in post-USSR countries...
September 9, 2025 at 5:13 PM
It was very painful...
August 3, 2025 at 4:37 PM
Im fucking hate @jsr.io #2

Why do I have to specify an explicit type for constants?
I understand that this should work with variables, but constants just got me...
July 6, 2025 at 11:37 AM
Коммиты на русском языке be like

Никаких вам "Initial commit", только "Начальное закрепление"
July 5, 2025 at 11:41 AM
I fucking hate JSR...

Context: Project has no dependencies at all, but JSR changed format of Bun lock file (.lockb -> .lock), and also throwed error 🫠
July 1, 2025 at 5:51 PM
How do know which Swarm is serving specific Session ID?

- Split Session ID into 4 parts of 8 bytes and XOR each other.
- Next, you need to find closest Swarm ID value in blockchain

Example: d31609a18228b69e -> d300000000000000 (closest value in blockchain)
June 27, 2025 at 8:20 AM
Messenger Session in new Blinded ID algorithm makes same mistake as in old algorithm.

Again failed if-condition is used to check the sign bit (pk[31 & 0x80) to generate hash of the server's public key, as result we again have 2 variants of possible public key when converting key pair
June 25, 2025 at 7:25 AM
It's pretty funny that Session messenger uses 16 bytes, obtained from the seed phrase and not modified in any way, as the Ed25519 private key for your profile 🫠
June 23, 2025 at 9:17 PM