mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
Version bump & docs
This commit is contained in:
parent
d38937e672
commit
8b7a37a196
3 changed files with 5 additions and 2 deletions
|
@ -4,6 +4,7 @@ Changelog
|
||||||
|
|
||||||
### 1.7 (December 22, 2013)
|
### 1.7 (December 22, 2013)
|
||||||
|
|
||||||
|
* __1.7.21__ jrnl now uses PKCS#7 padding.
|
||||||
* __1.7.20__ Minor fixes when parsing DayOne journals
|
* __1.7.20__ Minor fixes when parsing DayOne journals
|
||||||
* __1.7.19__ Creates full path to journal during installation if it doesn't exist yet
|
* __1.7.19__ Creates full path to journal during installation if it doesn't exist yet
|
||||||
* __1.7.18__ Small update to parsing regex
|
* __1.7.18__ Small update to parsing regex
|
||||||
|
|
|
@ -29,7 +29,7 @@ If you don't initially store the password in the keychain but decide to do so at
|
||||||
Manual decryption
|
Manual decryption
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run::
|
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm in CBC. The key used for encryption is the SHA-256-hash of your password, the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. The plain text is encoded in UTF-8 and padded according to PKCS#7 before being encrypted. So, to decrypt a journal file in python, run::
|
||||||
|
|
||||||
import hashlib, Crypto.Cipher
|
import hashlib, Crypto.Cipher
|
||||||
key = hashlib.sha256(my_password).digest()
|
key = hashlib.sha256(my_password).digest()
|
||||||
|
@ -37,3 +37,5 @@ Should you ever want to decrypt your journal manually, you can do so with any pr
|
||||||
cipher = f.read()
|
cipher = f.read()
|
||||||
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
|
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
|
||||||
plain = crypto.decrypt(cipher[16:])
|
plain = crypto.decrypt(cipher[16:])
|
||||||
|
plain = plain.strip(plain[-1])
|
||||||
|
plain = plain.decode("utf-8")
|
||||||
|
|
|
@ -8,7 +8,7 @@ jrnl is a simple journal application for your command line.
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
__title__ = 'jrnl'
|
__title__ = 'jrnl'
|
||||||
__version__ = '1.7.20'
|
__version__ = '1.7.21'
|
||||||
__author__ = 'Manuel Ebert'
|
__author__ = 'Manuel Ebert'
|
||||||
__license__ = 'MIT License'
|
__license__ = 'MIT License'
|
||||||
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'
|
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'
|
||||||
|
|
Loading…
Add table
Reference in a new issue