An open API service indexing awesome lists of open source software.

https://github.com/bennyboer/diary

Digital diary with state-of-the-art encryption
https://github.com/bennyboer/diary

desktop diary encryption flutter flutter-app rust

Last synced: 9 months ago
JSON representation

Digital diary with state-of-the-art encryption

Awesome Lists containing this project

README

          

# Diary

> A digital diary with state-of-the-art encryption.

![Calendar](assets/calendar.png)

![Editor](assets/editor.png)

## Background

I feel like the days of traditional diaries are over.
Not only are they inconvenient to carry around, but they are also not very secure.
Thus, I decided to create a digital diary that is secure and easy to use.

## Technology

The project is a local Desktop application that stores all data on the local file system.
All files in the repository are encrypted using the ChaCha20-Poly1305 cipher which uses a 256-Bit key.
That is plenty to protect your diary for the next years.
The key is derived from a password using the **Argon2** algorithm, which is currently the recommended algorithm.
You can only decrypt the diary again using the same password.
In the future we might add support for a second factor like a FIDO2 key that offers a higher level of security.

If you want to save your data in the cloud you can bind a directory to a cloud storage service like Dropbox or Google
Drive.
Since your data is encrypted and the cloud service private your diary should be safe from prying eyes.

## Installation

### Build it yourself

```bash
cd client
flutter build windows
```

You'll find the executable in `client/build/windows/runner/Release/`.

### Build Installer

```bash
flutter pub run msix:create
```

## Usage

The app currently consists of a simple calendar that just shows whether a day has an entry or not.
When clicking on the day in the calendar you'll be able to either create a new entry or edit an existing one (if you
know the password for decryption at least).

The encrypted diary entries are stored under your home directory in a folder named `.diary`.

## Getting started

### Prerequisites

- Install Rust
- Install Flutter
- Install LLVM (https://pub.dev/packages/ffigen#installing-llvm)

### Rebuilding Flutter <> Rust bridge

Run `./tools/build_bridge.sh` or `./tools/build_bridge.bat` depending on your OS