https://travis-ci.org/cenotes/cenotes.svg?branch=master Documentation Status

C(ryptographical) E(xpendable) Notes

What is this?

An effort to support encryption/decryption of expendable notes It consists of multiple projects:

  • Library : To serve as a library for easier use of encryption/decryption functions

  • Backend: To serve as a remote endpoint for handling and storing encrypted notes

  • Frontend: To provide a UI for easier usage

  • CLI: To provide a cli interface and give the ability to encrypt a note locally before

    sending to the server. This serves as an extra paranoia check in case you don’t trust the server.

An example using the backend and the frontend can be found at https://cenot.es


  • Symmetric encryption of notes using the pynacl project

  • On the fly encryption/decryption
    • Notes can be encrypted/decrypted on the fly without storing anything on the server

  • Expiration date notes
    • After that date, the notes are deleted and cannot be retrieved (default is never)

  • Notes that are deleted after N visits
    • After N retrievals of a note, the note is deleted (default is 1)

  • Duress key for immediate note deletion
    • Using the duress key instead of the real decryption key will delete the note and respond as if the note didn’t exist (to avoid indicating the use of the duress key)

  • Persistent visit notes
    • Notes can be marked as “persistent visit” so that that they are not deleted based on visit count. These are not stored on the server and can be used across different backend servers.

How does this work?

See Design decisions

How to run

See How to run

How to deploy

See Deployment how-to

Features to be added sometime

  • Modification of a note’s settings
    • Zero visit count

    • Change max visits option

    • Change expiration date

  • Public key encryption and user database