You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-5Lines changed: 7 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Table of Contents
20
20
About
21
21
=====
22
22
23
-
`Varuh` is a command line password manager that allows you to keep your passwords and other sensitive data using the power of the shell and Unix. It uses `sqlite` databases to store the information and encrypts it with symmetric block encryption ciphers like [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) and [XChaCha20-Poly1305](https://www.cryptopp.com/wiki/XChaCha20) .
23
+
`Varuh` is a command line password manager that allows you to keep your passwords and other sensitive data using the power of the shell and Unix. It uses `sqlite` databases to store the information and encrypts it with symmetric encryption ciphers like [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) and [XChaCha20-Poly1305](https://www.cryptopp.com/wiki/XChaCha20) .
24
24
25
25
The name [Varuh](https://www.wordsense.eu/varuh/#Slovene) means *guardian* or *protector* in the Slovene language.
26
26
@@ -34,7 +34,7 @@ If you ask - `"Why a rewrite, why not contribute to the original repo ?"`, it is
34
34
2.`ylva` does not have a proper configuration file that keeps with the freedesktop specifications.
35
35
3. The fact that ylva keeps decrypted databases on disk when in regular use without an automatic {decrypt-encrypt}-on-use option was a problem. If I encrypt the database, I have to keep decrypting it to use the program which is a problem. Hence the `encrypt_on` flag was added to `varuh` (see below).
36
36
4. C is a venerable language but this is 2021 and I would rather program (and contribute) in a modern system programming language like `Go` or `Rust` which takes care of the memory handling tasks and leaves me to focus on the application code. Also I felt it is easier to get contributors to a project if it is in one of these languages as a lot of the Gen Z programmers don't know C. You will appreciate this more if you look at an open source repo written in C/C++ and find that 30% of all code are operations allocating/de-allocating memory.
37
-
5. Support for more ciphers and crypto systems - `Varuh` already supports the `XChacha20-Poly1305` cipher and uses `Argon2` (Argon2i variant) instead of the older `pbkdf2` as the key derivation function. OpenPGP encryption is in the pipeline.
37
+
5. Support for more ciphers and crypto systems - `Varuh` already supports the `XChacha20-Poly1305`stream cipher and uses `Argon2` (Argon2i variant) instead of the older `pbkdf2` as the key derivation function. OpenPGP encryption is in the pipeline.
38
38
39
39
Building the code
40
40
=================
@@ -110,11 +110,13 @@ The command line flags are grouped into `Edit/Create`, `Find/List` and `Help` ac
110
110
Encryption and Security
111
111
=======================
112
112
113
-
Varuh gives the option of two block ciphers - AES (default) and XChacha20-Poly1305.
113
+
Varuh gives the option of two symmetric ciphers - AES (default) and XChacha20-Poly1305.
114
114
115
-
AES is supported with 256-bit key size for encryption. It uses [Argon2](https://en.wikipedia.org/wiki/Argon2) with 32MB memory and 4 threads as the key derivation function with a random cryptographic salt of 128 bit size.
115
+
AES is a block cipher supported with 256-bit key size for encryptionand is the current standard for symmetric encryption ciphers.
116
116
117
-
XChacha20-Poly1305 is a block cipher with a longer nonce (192 bits) which makes the cipher more resistant to timing attacks than AES-GCM. It also supports 256-bit key size.
117
+
XChacha20-Poly1305 is a stream cipher with a longer nonce (192 bits) which makes the cipher more resistant to timing attacks than AES-GCM. It also supports 256-bit key size.
118
+
119
+
The key derivation uses [Argon2](https://en.wikipedia.org/wiki/Argon2) with 32MB memory and 4 threads with a random cryptographic salt of 128 bit size for both ciphers.
118
120
119
121
Databases are created and decrypted with owner `rw` mode (0600). This makes sure the databases are read/write - able only by the owner.
0 commit comments