dmshaw / paperkey

Print an OpenPGP key on paper for archive and recovery
GNU General Public License v2.0
209 stars 12 forks source link

Request: Support base58 output #7

Closed FWDekker closed 5 months ago

FWDekker commented 3 years ago

I want to have a physical copy of my secret data, but I don't trust printers, so I want to write it down by hand. It's a lot to write down as is, so I suggest that paperkey supports base58 as an alternative to the raw and base16 outputs. Base58 is similar to base64, except that the following characters are not used to prevent ambiguity: plus (+), slash (/), zero (0), capital i (I), capital o (O), and lowercase L (l). This encoding is almost 1.5x as space-efficient as base16, which already saves quite a bit of writing. (It took me over two hours to write down my key in base16, because I wrote very carefully to make it was legible.) It might be necessary to use longer CRC codes per line as the entropy per line has significantly increased.

GwynethLlewelyn commented 5 months ago

@FWDekker see https://github.com/dmshaw/paperkey/issues/11#issuecomment-1494428649 — you could simply export to 'raw' and filter it through your favourite base58 encoder; there is really no need to add more options to paperkey itself.

Also, if you require some sort of pretty-printing (such as formatting each line with X characters per line), that can be easily achieved with simple Unix command-line utilities, and that would even include the possibility of adding whatever additional CRC codes might be needed...

FWDekker commented 5 months ago

Good point, @GwynethLlewelyn! Thank you for the suggestions :-)