It is quite the question! I'll try to give a sensible answer without boring all possible readers
Actually, when I started working on KolibriOS project, I just wanted to write some network programs.
Soon I got frustrated with the capabilities of the then current network stack and started rewrite of the network stack. (#1
One thing led to another, and many hours and lines of code later, it got merged into trunk and development is still ongoing.
(The scope of this 'side project' is hard to explain, it involved rewrite of everything network related: applications, drivers, protocol handlers and all glue in between.)
For SSH client specific, of course some encryption related components are needed.
We are building on the work of giants here, so no need to invent anything, I just wanted a clean implementation in FASM of the needed components.
I did not have to write any block ciphers (thanks to Dunkaist for AES, Echo for BlowFish, and possibly others)
but did write some code for the block chaining (CBC/CTR/..) (#2
During Google Summer of Code 2016 I mentored a student by the name of Denis Karpenko who worked on TLS for KolibriOS. (#3
One of the lasting outcomes of this is the implementation of HMAC written mostly by Denis. (With SHA256, SHA1 and MD5 from libcrash, developed by you guessed it: Dunkaist)
But then, the real pain for me.. Modular Exponentiation of large integers needed for Diffie-Hellman handshake. (#4
This code has been written from scratch and pushed me out of my comfort zone.
Only some days ago, I admitted to myself that testing mathematical code like this is impossible 'in-place'.
You need test vectors, and preferably a lot of them. So I found some we could use, applied them and fixed the code. (#5
To be honest, the writing of test program felt like a boring side project, but it is absolutely necessary and was very satisfying to see it PASS!
I must have forgotten at least half the story, but this might give an impression.
I really should fix some issues with PRNG now before someone actually decides to use this