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

kingvon

@kingvon

Joined May 31st, 2026

  • 32Devlogs
  • 3Projects
  • 1Ships
  • 15Votes
cybersec dude man, building shit
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
2
Ship Changes requested

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
13
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
3
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
21
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
Open comments for this post

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
21
Open comments for this post

1h 0m 55s logged

Status Update in Detection

so i have added other statuses in detections, which are: resolved, investigating, fase positive

and i made a dropdown button component to update the status, making it was lowk creative lmao i didnt think i would be pull that off

0
0
99
Open comments for this post

1h 10m 5s logged

Noise Filtering in Process Collector

so i already had this but it was a bit stupid so i improved it, its still stupid but less stupid lol
__
so right now it has bigger and more lists of stuff to ignore and it also checks for parent-child relation like kitty -> zsh and other terminals opening a shell cuz thats common, and it also ignores the processes fired by kernel for small things, and many other stuff, you check a list of stuff it ignores in lilbro/internal/collectors/processes/filter.go

__
umm i dont have anyting to show as its a filtering a function i implement and wtf i am supposed to show, so have a look at this snapperd process lol

0
0
55
Open comments for this post

1h 3m 5s logged

Containerization

buzz word lmao
basically i updated the docker compose files and made everything easily spin up with docker compose

and that was like 20m of work, the rest was a fight between me vs pnpm security features and pyscopg2 building lmao

0
0
41
Loading more…

Followers

Loading…