Relevation Password Printer
a command-line searcher for Revelation Password Manager
Details
- Current version: 1.3.1, released on Feb 11th 2020.
- Archives: relevation-1.3.1.tar.gz, relevation-1.3.1.zip (zip includes PDF and html man page)
- Packages: deb (all arches), RPMs.
- Debian apt repository: See packages.outlyer.net for information.
- Status: Stable
- Tested only on Linux and Windows, but should work on other UNIX-like systems.
- Released under a BSD 2-clause license.
To track new releases, take a look at its freecode (formerly freshmeat) page.Freecode is no longer updating, you may track future releases on this page or here.- Any contribution, suggestion or bug report is welcome.
Release notices
New releases will be announced at my main site (see http://outlyer.net/etiq/projects/relevation/), this page and the freshmeat page.
RPMs
I'm not providing RPM packages, however you can find relevation packaged downstream in Fedora's repository up to Fedora 30:
https://archive.fedoraproject.org/pub/fedora/linux/releases/30/Everything/x86_64/os/Packages/r/
Starting with 1.2.1, you can also build the RPM yourself. Download the tarball and run the command:
$ rpmbuild -tb relevation-1.2.1.tar.gz
If the buld is successful, the output should look something like:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.XXXXXX + umask 022 [...] Wrote: /path/to/RPMS/noarch/relevation-1.2.1-1.pon.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.XXXXXX [...]Where the line in bold includes the location of the resulting RPM.
Description
Relevation is a tool to retrieve passwords stored in a password file in the format used by Revelation, from the command-line instead of through a GUI.
Only retrieval is implemented, Revelation must be used to actually edit the file.
Notes
- WARNING When storing your password in the configuration file, remember to modify file permissions so that only you can read it.
Configuration file
An optional configuration file ~/.relevation.conf
can be used to save the typing of filename and/or password on each run.
It follows an INI-style format:
[relevation] file=~/mypasses password=my pass mode=and
All fields are optional. The [revelation]
header is required.
Comment lines can be added by preceding them with a semicolon (';') or hash ('#').
Inline comments can be added by preceding the comment with whitespace and a semicolon (' ;').
Documentation
There's currently no actual documentation but the manual page is available online and a list of usage examples is provided below.
Examples
Here's a few examples of each of the modes of operation.
These examples assume the existence of a configuration file, otherwise the command-line will require filename and password, e.g. $ relevation -f ~/mypasswords.revelation -p mypassword
.
All passwords here were generated randomly, no need to try them anywhere :P.
- No arguments: All entries
- Search of keywords
- Search of keywords, entries of a certain type
- All entries of a certain type
- Full decrypted XML
· With no arguments, the whole list of entries is dumped:
Relevation v1.0, (c) 2011 Toni Corvera ------------------------------------------------------------------------------- -> Search all: 201 matches Type: website Name: Example 1 Description: Url: http://www.example.com/ Username: ex1 Password: zoh3haeH . . [entries abridged in this example] . Type: website Name: Example 2 Description: Example site 2, secured Url: https://2.example.com Username: ex2 Password: Bootie9p ------------------------------------------------------------------------------- <- (end of 201 results for {all})
· Search by keyword by adding a string to the command (folders themselves will be skipped but their contents will not):
$ relevation twitter Relevation v1.0, (c) 2011 Toni Corvera -> Search "twitter" ('not folder' entries): 1 matches ------------------------------------------------------------------------------- Type: website Name: Twitter Description: Url: http://twitter.com/ Username: meeeeee@example.com Password: ag9thaeP ------------------------------------------------------------------------------- <- (end of 1 result for {"twitter" ('not folder' entries)})
· Restrict searches to a certain type with the –type option:
$ relevation -t email google.com Relevation v1.0, (c) 2011 Toni Corvera -> Search "google.com" ('email' entries): 1 matches ------------------------------------------------------------------------------- Type: email Name: Main email address Description: Email: outlyer@gmail.com Hostname: mail.google.com Username: guesswhat Password: edeeKo7m ------------------------------------------------------------------------------- <- (end of 1 result for {"google.com" ('email' entries)})
· All entries of a certain type will be printed if a type is provided with no string to search for:
$ relevation -t email Relevation v0.3, (c) 2011 Toni Corvera -> Search email entries: 2 matches ------------------------------------------------------------------------------- Type: email Name: Main email address Description: Email: outlyer@gmail.com Hostname: mail.google.com Username: guesswhat Password: edeeKo7m ------------------------------------------------------------------------------- Type: email Name: Example backup email Description: Just in case Email: backup@example.com Hostname: Username: backup$example Password: quoo3Yez ------------------------------------------------------------------------------- <- (end of 2 results for {email entries})
· The full, decrypted xml can be printed with the –xml option:
$ relevation -x Relevation v1.0, (c) 2011 Toni Corvera <?xml version="1.0" encoding="utf-8" ?> <revelationdata version="0.4.11" dataversion="1"> . . . <entry type="website"> <name>some site</name> <description>this is some site</description> <updated>1255603263</updated> <field id="generic-url">http://www.example.com</field> <field id="generic-username">myuser</field> <field id="generic-password">JaTei7ye</field> </entry> . . [entries abridged in this example] . <entry type="email"> <name>my address</name> <description>main address</description> <updated>1247495779</updated> <field id="generic-email">me@example.com</field> <field id="generic-hostname">example.com</field> <field id="generic-username">meee</field> <field id="generic-password">Zuuth3Ai</field> </entry> . . . </revelationdata>
Known issues
None at this point.
There's a bug tracker located at b.outlyer.net. To report a bug use the bug tracker or drop me an e-mail.
Other projects
-
- pass' Revelation import module is heavily based on relevation
-
- The password manager whose files relevation reads
ChangeLog
1.3.1 (Published Feb 11th 2020)
- Switched to Python 3
- Internal refactoring
- Minimalistic GUI included by default
1.3 (Published May 24th 2014)
- Support for the newer data file format (as found in Revelation 0.4.14)
- Fail gracefully on files in unknown formats
- Better handling of fields with characters outside of the standard ASCII set
1.2.1 (Published November 5th 2013)
- Fixes for the minimal GUI (broken in 1.2)
- Integrated RPM specfile from Fedora Rawhide
1.2 (Published October 21st 2013)
- BUGFIX: Make case-insensitive search work on uppercase search strings
- Print notes from entries
- Allow combining multiple search terms with AND
- Use getpass when asking for a password to avoid echoing it (suggested by Jorge Gallegos)
- Explicitly exclude folders when negating types (avoids printing all of their children entries)
1.1 (Published July 13th 2011)
- Support cryptopy if PyCrypto is not available. Enhances cross-platform support.
- Print an error message if the decryption produced wrong data (normally caused by a bad password)
- Add PyCrypto/cryptopy to version info (–version)
- Windows support enhancements:
- Minimalistic GUI
- Py2exe support
- Packaging scripts
- Fix $ make uninstall procedure
1.0 (Published June 30th 2011)
- First public release.