You are browsing as a guest. Sign up (or log in) to start making projects!

kingvon

@kingvon

Joined May 31st, 2026

  • 36Devlogs
  • 4Projects
  • 1Ships
  • 15Votes
cybersec dude man, building shit
Open comments for this post

31m 12s logged

Added Subtraction, Multiplication, Division

they were all easy, everything after itoa was easy so far.
also made github repo and the readme has my todo stuff too.

0
0
7
Open comments for this post

1h 24m 4s logged

Addition

yeah it can do addition now, but 1h 24m to make that?
hell NO.

most of the time went on a stupid Integer to ASCII conversion function :cwy: it was so hard to implement but i did it at the end :thumbs-up:


the calculator lacks hella checks tho, you can do “hi + hello” and get 620280 (yes literally idk how)

0
0
11
Open comments for this post

55m 25s logged

made atoi

ASCII to integer conversion
i am an idiot so i accidenttely said “itoa” in git commit T_T (integer to ASCII)

yeah not much to show right now, just took almost an hour debugging and trying to fix the the loop :cwy:


screenshot shows i entered those values which is taken as ASCII and the output from reading the num1 and num2 bytes it prints those as numbers :thumbs-up:

0
0
7
Open comments for this post

30m 4s logged

Art - dirt path

pls dont judge my art, i am really bad at this i am just creating my own cuz i couldnt find any good ones on itch.io :sob-ios:

0
0
3
Ship Pending review

Secure Channel Protocol (SCP) is a TLS-inspired protocol with its own ciphersuite and handshake sequence made in Go. It comes in a go package so anyone can use this protocol to build their projects upon.

i made this project as a challenge to myself because i wanted to make “my own protocol” so i decided to go for a security protcol, this was a really fun experience it taught me applied cryptography more deeply and i learnt about various things in TLS.

this project right now is just a handshake implementation with minimal crypto wrappers i wrote around already made functions, this is just the first version, i will be implementing my own crypto primitives like key exchange and stuff in future versions.

you can try this project in THREE different ways!:

  1. watching a live handshake simulation @ scp.pratiksingh.xyz
  2. trying the small encrypted cli chat app i made on top of the protocol (check out github readme)
  3. creating your own app on top of my protocol! i have made simple wrapper functions to make it easier for curious devs to try it. there are documentation too!

check out the specs page on demo site and readme for details :3

  • 11 devlogs
  • 24h
Try project → See source code →
Open comments for this post

1h 18m 59s logged

Wrote docs

yeah, wrote docs, thats it bye lol
golang docs system is nice at first i was writing everything in another docs readme but it was so damn boring and i started looking around for automated docs like its in fastapi of python, then i found out i can write comments and stuff and people can use go doc command and there are also crawlers by pkg.go.dev which can show my go docs on the website

so yeah that


dont focus on screenshot, i am waiting for it to detect the license so it can show docs :pf:

1
0
16
Open comments for this post

2h 50m 43s logged

Added Spec page

yes, added a page for ALL details you made need about it, PLEASE READ IT :33:
i have put so much efforts into that so you better read

it includes this table of contents:

1.Overview
2.Packet Format
3.Message Types
4.Handshake Protocol
5.Key Derivation
6.Data Phase
7.Cryptographic Primitives
8.Wire Format Reference

0
0
4
Open comments for this post
Reposted by @kingvon

3h 42m 42s logged

Visualizer WebSocket Server


so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small


but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done.


been a bit busy for a while so couldnt code properly :(

4
1
226
Open comments for this post
Reposted by @kingvon

5h 43m 3s logged

Handshake Simulation Visualizer

completed the entire bomboclat visualizer
so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho


after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool.


it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much


yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page.

will be hosted soon on my nest container :33:

0
1
15
Open comments for this post

5h 43m 3s logged

Handshake Simulation Visualizer

completed the entire bomboclat visualizer
so its a website with go backend which is running a totally real handshake sequence, which is a simulation ofc but the crypto stuff is real, no packets are being sent tho


after asking multiple people in #stardance i decided to go with monotone default colors of tailwind, and someone suggested CRT line effect so i added that too which made it hella cool.


it features a 26 step sequence showing everything from keypair generation to data phase, shows from both client and server sides with cool cards, i love this so much


yes i did it all in one devlog, its a just a small dev log server and not the main thing of this project, the main is still the protocol and the package so i will do on that with some documentations and specs page.

will be hosted soon on my nest container :33:

0
1
15
Open comments for this post

3h 42m 42s logged

Visualizer WebSocket Server


so not just that, i also changed the folder structure a bit, and some other very small things which i couldnt dev log cuz they were too small


but yes the main thing i did was making a visualize backend, it uses websockets and simulates an entire handshake and data transfer, all the crypto work is real in the server but no packet is being sent, so its just steps one by one explaining the work that is being done.


been a bit busy for a while so couldnt code properly :(

4
1
226
Open comments for this post

59m 6s logged

First app: Encrypted Chat :yay:

i am so happy, i have wrote the FIRST thingy on top of secure channel protocol!!! my own damn lil TLS.

this is a very basic client server chat, server listens on a port and client connects, they it reads input from stdin

the server connects using command:

./scp listen --port 2008 --psk test

the client connects using command:

./scp connect --host localhost:2008 --psk test

the PSK is pre-shared (well, duh) using the --psk flag

well this is a very basic terminal chat app, i can ship the project as it is rn as its a nice MVP but i want to make a visualizer cuz i know damn well NO one gonna run it like this lol, and i want to make a cool visualizer that shows every step of handshake


the first screenshot shows the chat, top one is the server and bottom is client
the second screenshot shows the wireshark capture of this beautiful exchange, ofc its encrypted hehe i love this

1
0
25
Open comments for this post

36m 51s logged

Session Functions

wow this made it complete on a function definition level, like i just have to make some wrappers around it

so, i made 3 functions for the Session struct

  1. Send() -> takes plaintext, encrypts it with the session key and nonce from session, sends it
  2. Receive() -> decodes MsgData packet, decrypts using session key and nonce received FROM the packet (so nonces dont go out of sync) and returns plaintext
  3. Close() -> what do you think lmao

in the screenshot you can see the plaintext and ciphertext being logged, thats an exchange between client and server!

0
0
14
Open comments for this post

3h 17m 34s logged

Handshake 🤝

so i made the handshake sequence
its the same one from SPEC.md where i decided first, didnt change anything

for some reason cant paste here pls check SPEC.md on github lmao

but in short it goes like this:
client and server exchange hello messages with their PSK Proof, Public Key, Nonce (16 bytes) and then key exchange and some session key derivation happens, then Done messages are exchanged which is encrypted with the session key, so it proves both party derived same session key

at the end the handshake functions returns the session (which i have to work on)

there are some things left to do like cleaning up the code, its a bit messy right now i will make it a bit more modular and easy to read later


for testing i used net.Pipe, it gives nice two mock connections type shit, i thought of using real tcp connection first but found this better thing while going through GoLang net library docs

not much to see in image tbh, it just shows the debug print statements i added, those are exchanges between client and server

0
0
14
Open comments for this post
Reposted by @kingvon

2h 4m 31s logged

Packet Envelop and Payload Encoders/Decoders

hiii :hii:

SPEC.md

so at first i made SPEC.md where i have decided on everything that it will have, all structures, handshake sequence, etc (please read it :3)

Packet structure

then i made a basic packet envelop struct

[1 byte: msg type] [4 bytes: payload length] [N bytes: payload]

that will be the structure, and i wrote WritePacket() and ReadPacket() functions for it, and also some tests

Payload structures

and i decided on payload structures for each message type and wrote encoder and decoder for all those types, except Done message type because its just one thing in payload
you can check in SPEC.md the payload structures


since i dont have anything ready to show, i will show the test output

0
1
22
Open comments for this post
Reposted by @kingvon

2h 53m 38s logged

Crypto Functions

so i wrote all the crypto functions or helpers whatever you want to call it.
i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions


Functions implemented:

  1. GenerateKeypair() -> generates an X25519 public and private key pair
  2. SharedSecret() -> takes private key and peer public key and performs ECDH using those keys
  3. ComputePSKProof() -> outputs the HMAC result of a psk and the given data
  4. DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt
  5. Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext
  6. Decrypt() -> decrypts the ciphertext from given key

and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good.
had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while.


ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol

0
1
11
Open comments for this post

2h 53m 38s logged

Crypto Functions

so i wrote all the crypto functions or helpers whatever you want to call it.
i did that because see for me TLS or even this project is just a group of cipher suites and we are using them to perform a handshake, so the cipher suite is the most important part, and ofc my project will only have one cipher suite, so i first implemented those functions


Functions implemented:

  1. GenerateKeypair() -> generates an X25519 public and private key pair
  2. SharedSecret() -> takes private key and peer public key and performs ECDH using those keys
  3. ComputePSKProof() -> outputs the HMAC result of a psk and the given data
  4. DeriveSessionKey() -> the final function which uses HKDF and outputs a session key, which will be used to encrypt/decrypt
  5. Encrypt() -> encrypts using the given session key, it uses ChaCha20-Poly1305 to encrypt plaintext
  6. Decrypt() -> decrypts the ciphertext from given key

and i also wrote tests for them, writing tests for me is an uncommon thing i wont lie lol but this time i am testing these functions from tests is because this is a protocol library, if another project wants to use my protocol to build on they can easily import and thats why i dont wanna test in random cmd and build things like it is intended for my planned project only, so i am treating it as a proper library and writing function and their tests, and so far things are doing really good.
had some problems in ECDH because i was messing up the output parameters order but i fixed it after a while.


ignore the weird ahhh numbers output, thats the nonce counter helper function i made i forgot to remove the debug prints lol

0
1
11
Loading more…

Followers

Loading…