Skip to content

Adds crypt.fyi to Encrypted Messaging#307

Merged
lissy93 merged 3 commits into
lissy93:mainfrom
dillonstreator:add-crypt.fyi
Mar 25, 2026
Merged

Adds crypt.fyi to Encrypted Messaging#307
lissy93 merged 3 commits into
lissy93:mainfrom
dillonstreator:add-crypt.fyi

Conversation

@dillonstreator
Copy link
Copy Markdown
Contributor

@dillonstreator dillonstreator commented Jan 26, 2025

Type

Addition


Changes

Adds crypt.fyi to Encrypted Messaging. It is an ephemeral sensitive data sharing platform that offers a range of client interfaces for interacting with the service (web, cli, chrome-extension). It offers a suite of configurations beyond the standard for comparable private pastebins, including max read count, IP/CIDR allow-listing, and webhooks. The project aims to provide the highest standard of privacy, security, and useability/accessibility.


Supporting Material

https://github.com/osbytes/crypt.fyi
https://www.crypt.fyi/about
https://www.crypt.fyi/privacy
https://github.com/osbytes/crypt.fyi/blob/main/SPECIFICATION.md


Affiliation

I'm the developer of crypt.fyi


Checklist

  • I have read the Contributing guide, and confirmed my PR aligns with the requirements
  • I have performed a self-review (valid Markdown formatting, spelling, and grammar)
  • I have indicated whether I have any affiliation with any software / services added
  • I agree to follow the repositories Contributor Covenant Code of Conduct

crypt.fyi is an ephemeral zero-knowledge sensitive data sharing platform with web, cli, and chrome-extension clients. It offers a suite of configurations beyond the standard for comparable private pastebins, including max read count, IP/CIDR allow-listing, and webhooks.
@ltguillaume
Copy link
Copy Markdown
Contributor

I've been using hemmelig.app for this for a while now, but your option for a webhook is absolutely great.

@dillonstreator
Copy link
Copy Markdown
Contributor Author

dillonstreator commented Jan 27, 2025

hemmelig.app looks nice and has good configuration options! I did find a couple of things that give me cause for concern that I've addressed in crypt.fyi

  1. Race condition in read & delete operations Race condition in read and delete HemmeligOrg/Hemmelig.app#348. This issue is quite common in lots of existing comparable tools.
  2. The plaintext password is sent to the server for comparison. crypt.fyi differs here in that neither the decryption key or password are sent. There is a form of zero-knowledge proof happening wherein the client sends a sha512 hash of the key + password on the create side and the read side also requires a hash to confirm it can properly decrypt the contents. Only when the hash matches does the system release the encrypted secret for client-side decryption.

@ltguillaume
Copy link
Copy Markdown
Contributor

ltguillaume commented Jan 27, 2025

hemmelig.app looks nice and has good configuration options! I did find a couple of things that give me cause for concern that I've addressed in crypt.fyi

1. Race condition in read & delete operations [Race condition in read and delete HemmeligOrg/Hemmelig.app#348](https://github.com/HemmeligOrg/Hemmelig.app/issues/348). This issue is quite common in lots of existing comparable tools.

Good catch, and it's great you've already opened an issue for that 😃👍

2. The plaintext password is sent to the server for comparison. crypt.fyi differs here in that neither the decryption key or password are sent. There is a form of zero-knowledge proof happening wherein the client sends a sha512 hash of the key + password on the create side and the read side also requires a hash to confirm it can properly decrypt the contents. Only when the hash matches does the system release the secret.

(Disclaimer: I haven't checked your code, so I'm going on how I interpret your explanation above.)
So, when reading a secret, instead of sending the password in plaintext (+TLS) to the server, crypt.fyu lets the client send the same key+password hash that was sent to the server when creatin the secret in order to check whether the secret should be released to the client, right?

I'm just wondering how this hash is then saved in the database, because if that hash is saved in plaintext, you might say you effectively save the second factor in the database as plaintext next to the secret, which - one could argue - would be worse than saving a hash of a password next to the secret, even if that password is actually sent to the server with only TLS.

That said, if my interpretation is correct, it is pretty much only a matter of best practices, because effectively the server-side password/hash check would already be circumvented if the database is compromised, unless the password would be part of the client-side decryption process.

@dillonstreator
Copy link
Copy Markdown
Contributor Author

dillonstreator commented Jan 27, 2025

unless the password would be part of the client-side decryption process

The password is also part of the decryption process. The client runs two encryption cycles if a password is provided. First with the randomly generated key and second with the password.

This hash proof is protecting against brute force secret release when a low-entropy password is used. It also prevents the server from ever receiving a password. I see that bcrypt is used by hemmelig.app, so correction is that it's not stored in plain text.

crypt.fyi does store the hash in plain text and I can actually improve on that and apply server side encryption to add an extra layer of security from database compromise. osbytes/crypt.fyi#69

Appreciate you taking an interest!

@ltguillaume
Copy link
Copy Markdown
Contributor

Great, thanks for the explanation and willingness to take a look at the possible improvement!

While I have some hours into improving Hemmelig.app a bit and will therefore likely keep using it myself when I need to send a secret to others, I do like the fact that your UI is significantly easier for new users, so I'll likely start recommending it to people who need to send me secret info.

@lissy93
Copy link
Copy Markdown
Owner

lissy93 commented Mar 25, 2026

I'm sorry this took me so long to get to.
I'm just checking out crypt.fyi now, it looks awesome!

I've created a new section for this in #456, for Secret Sharing / Paste Bins, as I think that'd be a more appropriate place for this (and hemmelig).

And I've edited your PR to 1) Rebase from main, and 2) move it to the new section (hope that's ok), everything else remains unchanged.

@liss-bot
Copy link
Copy Markdown
Collaborator

Hello @dillonstreator

Thank you for contributing to Awesome Privacy! We will review your submission shortly. In the meantime, please ensure all changes are correct and inline with our Contributing Requirements.

✅ All our automated checks have passed.

Summary of Changes:
  • Added crypt.fyi in Productivity → Secret Sharing
Submission Info

Repo Stats

  • 🟢 License: Apache License 2.0
  • 🟠 Repo Age: 1 year, 3 months
  • 🟠 Last Updated: 1 month ago
  • 🟠 Releases: 9
  • 🟠 Stars: 134
  • 🟠 Contributors: 4
  • 🟢 Is Fork: No
  • 🟢 Is Archived: No
  • Security Alerts: Unknown
  • 🟢 Vibe Coded: 0 AI commits
  • 🔵 Commits: 100+
  • 🔵 Open Issues: 12
  • 🔵 Website: https://www.crypt.fyi
  • 🔵 Author: osbytes
  • 🔵 Languages: TypeScript, JavaScript, HTML, Shell, CSS, Dockerfile

Website Checks

  • 🟢 Status: 200
  • 🟢 HTTPS: Yes
  • 🟢 Blacklist: Not listed
  • 🟠 Redirect: Internal redirect
  • 🟢 Risk Score: 0
  • 🔴 HSTS: Missing
  • 🔴 CSP: Missing
  • 🔴 X-Frame-Options: Missing
  • 🔴 Security.txt: Missing
  • 🔵 Server: 66.33.22.177, AS400940
  • 🔵 Server Location: Singapore, Singapore, Singapore
  • 🔵 Title: crypt.fyi - Open-Source Zero-Knowledge Post-Quantum End-to-End Encrypted One-Time Secret Sharing

The above data does not determine a submissions eligibility. Human review is still needed.
Key: 🟢 = good. 🟠 = warning. 🔴 = attention required. 🔵 = info. ⚪ = unknown.

For full details, please see workflow run 23541454547

Copy link
Copy Markdown
Owner

@lissy93 lissy93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid submission, LGTM

Nice app, works well, neat crypto and code. I see no issues
Thanks @dillonstreator for the awesome project :)

@lissy93 lissy93 merged commit 0565145 into lissy93:main Mar 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants