@@ -36,13 +36,36 @@ asimov-signal-reader
3636
3737## ⚙ Configuration
3838
39+ Signal Desktop stores data in an encrypted [ SQLCipher] database. The encryption
40+ key for this database is stored in a ` config.json ` file in Signal's application
41+ data directory, and that key is itself encrypted using an encryption password
42+ stored in the (platform-specific) system keychain.
43+
44+ This module can be configured to decrypt the Signal database using either the
45+ encryption password or the encryption key. (You don't need both, just one.)
46+
47+ ### Encryption Password
48+
49+ The simplest way to configure the module is to set the ` ASIMOV_SIGNAL_PASSWORD `
50+ environment variable to the encryption password stored in the system keychain:
51+
52+ ``` bash
53+ # macOS
54+ export ASIMOV_SIGNAL_PASSWORD=$( security find-generic-password -a " Signal Key" -s " Signal Safe Storage" -w)
55+ ```
56+
3957### Encryption Key
4058
59+ Alternatively, for advanced users, you could set the ` ASIMOV_SIGNAL_KEY `
60+ environment variable to the actual decrypted value of ` encryptedKey ` found in
61+ the ` config.json ` file:
62+
4163``` bash
4264export ASIMOV_SIGNAL_KEY=feedc0dedecafbadcafebabecafed00dfeedc0dedecafbadcafebabecafed00d
4365```
4466
45- The key must be 64 hexadecimal characters, meaning 32 bytes (256 bits).
67+ This key must be 64 hexadecimal characters, meaning 32 bytes (256 bits).
68+ Deriving this key manually is well beyond the scope of these instructions.
4669
4770## 📚 Reference
4871
@@ -90,3 +113,5 @@ git clone https://github.com/asimov-modules/asimov-signal-module.git
90113[ RDF ] : https://www.w3.org/TR/rdf12-primer/
91114[ Rust ] : https://rust-lang.org
92115[ Signal ] : https://signal.org
116+ [ Signal Desktop ] : https://github.com/signalapp/Signal-Desktop
117+ [ SQLCipher ] : https://www.zetetic.net/sqlcipher/
0 commit comments