diff --git a/printkey.html b/printkey.html new file mode 100755 index 0000000..46103a5 --- /dev/null +++ b/printkey.html @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + Paper backup for cryptographic keys + + + + + +
+ +

Paper backup for cryptographic key

+ + +

Use this page to pretty-print your cryptographic key to paper as a 'disconnected' backup.
+ It does nothing with the data, it just formats it for printing.
+ Feel free to look at the code of this page, download it, modify it.
+

+ +

Don't worry : NOTHING is sent to the Internet, you can disconnect from the network if you wish.

+ +

Please fill the following form, then print this page to backup your key data to paper.
+ Make sure that you can read all characters on the printed +result, because in order to restore the key you will need to type +exactly all characters. + Especially, make sure that you can distinguish i,I,l,1 and +o,O,0.

+ +
+ + + + + +
+
+ + The page will look like : + Use the "print preview" feature of your browser to preview accurate rendering + +
+ + + + +
+ + + + + + + + +

foo@android

Date : Sat Jan 31 2015 15:45:59 GMT+0100 (CET)
Sample character set :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890+/
Password : foobar
Enjoy !
+ +
change font size : + -
+ + + +
-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAXbjIm8OXPTuZ
+P2Eou+Fr9FI5aj5knw4gM3QC3e2RRqLIqZeSOmChAs4i6NDeoqSk6ofdZMUiOGA7
+mOelle6IjvAGd3G6MoxaYjUfKN2lEfZ1nAM+jQszDD8Ix2hKkzBlG0O8ZUe8+FVI
+j8z0gccSKQJvlV+RX7Zexo43oxt7552fy8jE0zBWGrcj/KblyfvO97tXaaOYJ9kk
+5QfVN7ZandOmYS8Jab0k53oZ+MGC35h+a4XEaTSwYheaDtkxDv9GYqaDAJfrwDbt
+MSc/vIVoeggIh4HnkXVFJiC9mk3ljzB9WyKHcsaeItPMemci2vjIvFnvIB/Skzsq
+E2ce7XW1AgMBAAECggEAS230oSUC4vDtx7+kd3aEg/I/s6fHY2lC/rluShl/qDGM
+byag+oPNlBUng2TLUiFwcgJM2DFFY4+7nGLuom1SJVX3JHH9tEdR5bcQoXFCyBFt
+FNziIMrpk1C//s9CQ8vHdD3mp58HLEAsINHSSiYBS0utWte1q6leN3egGIzqoACa
+Mwd1A0Il/Kk4e0iLKawR6IdYfZLkRHK0x3osjQVK06jvhQyizCZtBJw8bOEGc/xc
+2mAS1+OFj5hZ2DahD9OLS4y8e8A24UudUuqdQl90pUqIwepXG+KR1y2Tr7dKeCY/
+K5YToXEFG7ovB4Bk1gVnFarRmUBM5KmOqDzF4AX0AQKBgQDe8CUJDDDYIF02fKtP
+FHJi7xuvoMAJxspmiAW7V1/uA1llQUVcbAeG1fS+YF+d9UU8bQ6OcXeM5mWzuRJg
+nrG+/myPC+DZ5pocIzJKQE7v3jd61RZW9os5sHNyMPsR44RtdYBhAWsjtW93l5Yr
+jpBsybPzh5CQ3JwZBYdzKq5AgQKBgQDc5OkxsqAj+1Tucr+tG+yhftai4rhTeUXE
+HnJbBiSHwjNI+nSVntNtU9EmyLSzNoxOGAxcy8IA21w6l10COGH2O86417oqMOBi
+pg3DtGh5OJSyVZSU+S0lggPsFLD8DvILE5jbJngZr9NPcEo4DHLmvPd434XGQm2b
+TQ6r4cybNQKBgBRAGg0dV156ah0l6+WuBMnp0Ej+wBLjRMVVe7fNswAKu9cPu74u
+beyYiLe2R1kwy0421ciok+RvlTNjD0FJiPnBYJkJyi3g3YTKyamm98SgGcgFjRbv
+JCxkU8g+nL++O+w5bSTinRnMREjHszNXqtTG6ZqoaMBP2boIH4qdiOCBAoGBAL1z
+Vs1Y9h/mHyGjKOG/YWPg9RUefhiZmkxqEIog6pPE61db90GbxpmtmWQ6H0DVN+CC
+n5e26dzyRle6GfsdgGc/RD0kSHaHFOuGn6eJw1C0RlPtMlHSo/XXXKXN2T1VVCJL
+3H2YsMjXE9S96enIQ4PB7j2s937i2j6oCD1Cm8lBAoGAJtMvztQV4IwY3VJvuEQs
+VRV5coGuhQmWS1zF1z9yG7BgGGZuIqNhtH1LW5zmL7ZvsRwdHJ94KZJVzkmSX1CY
+aPNx5e9AGiUspXppmlkwPBNnkzeSD0GhhchkwpLtiVVeEj5eNP3cAq8gu3p6sfe4
+ajRTuzUIoiVyVEuBHU6eQGQ=
+-----END PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIDczCCAlugAwIBAgIEddOTCDANBgkqhkiG9w0BAQsFADBqMQswCQYDVQQGEwJG
+UjEPMA0GA1UECBMGRnJhbmNlMREwDwYDVQQHEwhGb28gY2l0eTEZMBcGA1UEChMQ
+Rm9vIFRlY2hub2xvZ2llczELMAkGA1UECxMCSVQxDzANBgNVBAMTBk0uIEZvbzAe
+Fw0xMjA2MTMxNTAyNTJaFw0xMjA2MTQxNTAyNTJaMGoxCzAJBgNVBAYTAkZSMQ8w
+DQYDVQQIEwZGcmFuY2UxETAPBgNVBAcTCEZvbyBjaXR5MRkwFwYDVQQKExBGb28g
+VGVjaG5vbG9naWVzMQswCQYDVQQLEwJJVDEPMA0GA1UEAxMGTS4gRm9vMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwF24yJvDlz07mT9hKLvha/RSOWo+
+ZJ8OIDN0At3tkUaiyKmXkjpgoQLOIujQ3qKkpOqH3WTFIjhgO5jnpZXuiI7wBndx
+ujKMWmI1HyjdpRH2dZwDPo0LMww/CMdoSpMwZRtDvGVHvPhVSI/M9IHHEikCb5Vf
+kV+2XsaON6Mbe+edn8vIxNMwVhq3I/ym5cn7zve7V2mjmCfZJOUH1Te2Wp3TpmEv
+CWm9JOd6GfjBgt+YfmuFxGk0sGIXmg7ZMQ7/RmKmgwCX68A27TEnP7yFaHoICIeB
+55F1RSYgvZpN5Y8wfVsih3LGniLTzHpnItr4yLxZ7yAf0pM7KhNnHu11tQIDAQAB
+oyEwHzAdBgNVHQ4EFgQU3zvhWFjxWoVAcyKyKYWEG3NnqvUwDQYJKoZIhvcNAQEL
+BQADggEBAKpQ7rPL1ECDS3ctmut7Ng1TVFdlsc9XhnVUBfvBS9sG6WfDW3b6VVhC
+WaC7SGGpKM+/62cVG09YEDZuTh5NzTrxCizcIeyr5ert1hwjeDIjojmW1Ejpsznl
+F+GW4Jhtg6zrsCqJDeFUwxdfRBjdlA17gVVCT0nLS+/8GIN5kueJqcHiCmzT8x8q
+VzR7EMquRMuEQbtvBSjth3eBEcCUGYsb1GVH6HVt1UKYwd0oeDygxIwS8awLGKJr
+ynjxpg06Z/JzF9dz8aocPwOWLelXhoUuQpzg1hxzXyII6GcmkyV9jox64Cuyz0oZ
+qEsMlDicsPdMaJs4Y5/yI1ZzTJMOD+g=
+-----END CERTIFICATE-----
+ +
+ + +
+ +

How to restore this key

+ +

To restore this key, type the characters from the frame into a text file that you will import into your key store. + Also include line breaks and 'BEGIN' and 'END' lines.

+ +

Instructions for Java keystores

+ +

Restoring key from text file

+
openssl pkcs12 -export -in foo-restored.pem -out foo-restored.p12
+
+keytool -importkeystore -srckeystore foo-restored.p12 -srcstoretype pkcs12 -destkeystore restored.jks -deststoretype jks -srcalias 1 -destalias foorestored
+ + +

Exporting key to readable text

+

Follow those instructions if you want to backup another key.

+
keytool -importkeystore -srcstoretype jks -srcalias foo -deststoretype pkcs12 -srckeystore mykeys.jks -destkeystore foo.p12
+
+openssl pkcs12 -in foo.p12 -out foo.pem -nodes
+ + +

Useful links

+ +
+ + + + \ No newline at end of file