$ slip0039 [ -d ] [ -q ] recover $ slip0039 [ -d ] [ -q ] split .. slip0039(1) takes its input from standard input and send its output to standard output option -d (debug) displays the shares, secrets and digests in the known groups at program exit option -q (quiet) shuts up warnings 0 - 9, A - F are the numbers of the groups/shares ? means 'digest' S means 'secret' P means 'plaintext' (decrypted secret) recover (default when no mode is specified) in mode recover, the first line of standard input is the passphrase, and the rest of the lines (until EOF) are mnemonics, the output is a base16 encoded string of the secret when there are no errors and is an errormessage when there are split in mode split, the first line of standard input is also the passphrase, the second line of standard input should be the master secret in hex on the commandline the SEED, the iteration EXPonent and the specifications of groups must be given the ID is the low 15 bits of CRC16 of SEED shares and the n-4 bytes of the digest share are computed with PBKDF2 with the EMS || SEED as password and other parameters that decide the structure of the split as salt XofY reflects the distribution of shares in the first group UofV reflects the distribution of shares in the second group etc Attempts are made to wipe all sensitive data from memory upon termination, to lock the data in memory so that it does not get swapped out to disk and to use constant time algrorithms when handling confidential data. The program is constructed such that the amount of data that is needlessly rearranged an copied around is reduced. The output of the program is deterministic, so that the output can be reproduced on multiple machines and it is easy to see that he random data in the shares and in the second part of the digest share contains no information. Example: