OPM(1)

NAME
opm - whatever password manager

SYNOPSIS
opm [-bcdhkmo] [-C -clipboard] [-S -file] [-P -file] [-p -file] [-S -file] [-s -file] [command]

DESCRIPTION
opm is a simple password manager utilizing openssl(1) and signify(1).

The options are as follows:

-b  Enable batch mode for listing the entries, avoiding the tree output.

-c  Use xclip(1) to copy the password to the clipboard for one time paste only.

-d  Turn on debug messages.

-h  Highlight the output on the console.

-k  Use secret-tool(1) to query the gnome-keyring for the store password.

-m  The content is multi-line. This option forces the use of the $EDITOR for adding entries.

-o  The content is a base32 encoded key to be passed to oathtool(1) to generate OATH one-time passwords.

-C clipboard
    Specifies which clipboard to use. Defaults to primary. This options also sets the -c option automatically.

-S file
    Path to the signify private key.

-P file
    Path to the signify public key.

-s file
    Path to the user's private key.

-p file
    Path to the user's public certificate.

The following commands are available:

add | insert group/entry
    Add a new entry to the specified path.

del | rm group/entry
    Remove the specified entry.

list | ls
    Show the list of existing entries.

encrypt group/entry
    Re-encrypt the specified path. If no path is specified, all entries will be re-encrypted.

show | get group/entry
    Show the contents of an entry after decryption.

verify
    Verify the integrity of the files using signify(1).

search string
    Search for the specified string in entry names.

FILES
~/.opm/private/alice.key
    Private key for the user used for decryption.
~/.opm/private/alice.pub
    Public key for the user used for encryption.
~/.opm/private/signify.sec
    signify(1) private key used for creating a signature.
~/.opm/private/signify.pub
    signify(1) public key used for verifying a signature.
~/.opm/store/*
    Encrypted password store.
~/.opm/store/*/*/.team
    Any .team directory in a path is used to store public certificates. Any certificate in these directories will be used while encrypting an entry, providing basic team support.

EXAMPLES
Create a password protected private key and certificate for the desired users:

    $ openssl req -x509 -newkey rsa:4096 -days 365 \
    	-subj "/C=HU/ST=*/L=*/O=*/OU=*/CN=Alice/" \
    	-keyout alice.key -out alice.pub

Optionally one can use an already existing ssh private key to generate a public certificate:

    $ openssl req -x509 -new -key ~/.ssh/id_rsa -days 365 \
    	-subj "/C=HU/ST=*/L=*/O=*/OU=*/CN=Alice/" \
    	-out alice.pub

Create a new key pair for signify:

    $ signify -G -p signify.pub -s signify.sec

opm will look for these files depending on if you are doing encryption or decryption. Please refer to the FILES section for placement of these files.

If you would like to have basic ksh(1) completion for entries, you can add this to your .profile:

    set -A complete_opm -- $(opm -b list | xargs)

SEE ALSO
openssl(1), signify(1)

AUTHORS
opm was written by Robert Nagy <robert@openbsd.org>.