encrypted-diary

command module
v0.0.0-...-2448ec3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2020 License: MIT Imports: 8 Imported by: 0

README

license Build Status Version codecov pulls size

Encrypted diary

A personal diary where every entry is encrypted using the user's password as encryption key.

About Encryption

When a user logs in, an encryption key is created using his password and Password-Based Key Derivation Function 2 (PBKDF2). His data is then encrypted / decrypted using Advanced Encryption Standard (AES).

This means that even if the database were to be compromised, his personal data would be safe as long as his password is. This also mean that if the user forgets his password, his data is lost.

For practical reasons, some data that could be considered personal is not encrypted.

Here's the list of encrypted data:

  • Entries Content
  • Labels Avatar

And here's what isn't - and why:

  • User Email Address - For login
  • Entries Title - For Entry search
  • Labels Names - For Entry / Label search
  • Entries Date - For Entry search

Self Host

You may self host this project.

TODO : --> explain dk compose, .env, ovh / postgresql

Features

  • Short-lived session. Maximum 1h and auto log out on session end.
  • Virtual Keyboard to enter password and prevent key logging.
  • Two Factors Authentication with Time-based One Time Password (TOTP)
  • Entry edition using Markdown format with live preview.
  • Labels to categorize each entry, find entries by theme and act as a preview of an entry content

Road map

Disordered

  • Additional 2FA Methods
  • 2FA Recovery codes
  • Entries Media
  • Entry search
  • Read only user for demo purposes

Contributing

Feedback

If you have a feature request, found a bug, or just want to give your opinion about this project, please open a Github issue ! I'd love to hear your feedback.

Dev

todo Explain steps to set up dev server

Resources

https://core.telegram.org/techfaq#q-how-does-end-to-end-encryption-work-in-mtproto

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
src
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL