Public Key (in ASCII format)A public key is exported into a binary format, but often we require to send it in an ASCII way. A common format is ASCII-armored format which exports to Base-64. You can paste you own public key here: |
Some keys
Prof Bill Buchanan
-----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFxEQeMBCACtgu58j4RuE34OW3Xoy4PIXlLv/8P+FUUFs8Dk4WO5zUJN2NfN 45fIASdKcH8cV2wbCVwjKEP0h4p5IE+lrwQK7bwYx7Qt+qmrm5eLMUM8IvXA18wf AOPS7XeKTzxa4/jWagJupmmYL+MuV9o5haqYplOYCcVR135KAZfx743YuWcNqvcr 3Em0+gh4F2TXsefjniwuJRGY3Kbb/MAM2zC2f7FfCJVb1C30OLB+KwCddZP/23ll nOqmzaVF0qQrHQ5EZGK3j3S4fzHNq14TMS3c21YkPOO/DV6BkgIHtG5NIIdVEdQh wV8clpj0ZP7ShIE8cDhTy8k+xrIByPUVfpMpABEBAAG0J0JpbGwgQnVjaGFuYW4g PHcuYnVjaGFuYW5AbmFwaWVyLmFjLnVrPokBVAQTAQgAPhYhBK9cqX/wEcCpQ6+5 TFPDJcqRPXoQBQJcREHjAhsDBQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheA AAoJEFPDJcqRPXoQ2KIH/2sRAsqbrqCMNMRsiBo9XtCFzQ052odbzubIScnwzrDF Y9z+qPSAwaWGO+1R3LPDH5sMLQ2YOsNqg8VvTJBtOjR9YGNX9/bqqVFRKKSQ0HiD Sb2M7phBdk4WLkqLZ/AfgHaLKpfNX0bq7WhqZ+Pez0nqjN08JkIog7LhaQZh/Chf 0pl+wHV0rEFuaDQn83yF5DWB1Dt4fbzfVUrEJb92tSrReHALQQA3h5WkTA0qxhDd 9XyEWknDrYCWIWoj0XWjiVUre2fw3SKn8KHvJDeDYVKzYy18oA+da+xgs9b+n+Tq mMlfslWhw9wRyp0jbVLEs3yxLgE4elbCCmgiTNpnmMW5AQ0EXERB4wEIAKCPJqmM o8m6Xm163XtAZnx3t02EJSAV6u0yINIC8aEudNWg+/ptKKanUDm38dPnOl1mgOyC FEu4qFJHbMidkEEac5J0lgvhRK7jv94KF3vxqKr/bYnxltghqCfXesga9jfAHV8J M6sx4exOoc+/52YskpvDUs/eTPnWoQnbgjP+wsZpNq0owS6yO5urDfD6lvefgK5A TfB9lQUE0lpb6IMKkcBZZvpZWOchbwPWCB9JZMuirDSyksuTLdqgEsW7MyKBjCae E/THuTazumad/PyEb0RCbODdMb55L6CD2W2DUquVBLI9FN6KTYWk5L/JzNAIWBV9 TKfevup933j1m+sAEQEAAYkBPAQYAQgAJhYhBK9cqX/wEcCpQ6+5TFPDJcqRPXoQ BQJcREHjAhsMBQkDwmcAAAoJEFPDJcqRPXoQGRgH/3592g1F4+WRaPbuCgfEMihd ma5gplU2J7NjNbV9IcY8VZsGw7UAT7FfmTPqlvwFM3w3gQCDXCKGztieUkzMTPqb LujBR4y55d5xDY6mP40zwRgdRlen2XsgHLPajRQpAhZq8ZvOdGe/ANCyXVdFHbGy aFAMUfAhxkbITQKXH+EIkCHXDtDUHUxmAQvsZ8Z+Jm+ZwdhWkMsK43tw8UXLIynp AeOoATdohke3EVK5+0Dc/jezcUWz2IKfw7LB3sQ4c6H8Ey8PThlNAIgwMCDp5WTB DmFoRWTU6CpKtwIg/lb1ncbslH2xAFeUX6ASHXR8vBOnIXWss21FuAaNmWe4lmw= =S+hs -----END PGP PUBLIC KEY BLOCK-----
Bruce Schneier (copy and paste this into the black box above and generate the key details:
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.21 (MingW32) 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 =R5Hk -----END PGP PUBLIC KEY BLOCK-----
The code used is:
<script language="Javascript" type="text/javascript"> function getkey() { var pu = new getPublicKey(document.t.pubkey.value); if (pu.vers == -1) return; document.t.vers.value = pu.vers; document.t.user.value = pu.user; document.t.keyfp.value = pu.fp; document.t.keyid.value = pu.keyid; var pubkey = pu.pkey.replace(/\n/g, ''); document.t.pktype.value = pu.type; document.t.pkey.value = pubkey; } /* OpenPGP public key extraction * Copyright 2005 Herbert Hanewinkel, www.haneWIN.de * version 1.1, check www.haneWIN.de for the latest version * This software is provided as-is, without express or implied warranty. * Permission to use, copy, modify, distribute or sell this software, with or * without fee, for any purpose and by any individual or organization, is hereby * granted, provided that the above copyright notice and this paragraph appear * in all copies. Distribution as a part of an application or binary must * include the above copyright notice in the documentation and/or other materials * provided with the application or distribution. */ function s2hex(s) { var result = ''; for (var i = 0; i < s.length; i++) { c = s.charCodeAt(i); result += ((c < 16) ? "0" : "") + c.toString(16); } return result; } function getPublicKey(text) { try { var found = 0; var i = text.indexOf('-----BEGIN PGP PUBLIC KEY BLOCK-----'); if (i == -1) { alert('No PGP Public Key Block'); this.vers = ''; this.fp = ''; this.keyid = ''; this.user = ''; this.pkey = ''; return; } var a = text.indexOf('\n\n', i); if (a > 0) a += 2; else { a = text.indexOf('\n\r\n', i); if (a > 0) a += 3; } var e = text.indexOf('\n=', i); if (a > 0 && e > 0) text = text.slice(a, e); else { alert('Invalid PGP Public Key Block'); this.vers = ''; this.fp = ''; this.keyid = ''; this.user = ''; this.pkey = ''; return; } var s = r2s(text); for (var i = 0; i < s.length;) { var tag = s.charCodeAt(i++); if ((tag & 128) == 0) break; if (tag & 64) { tag &= 63; len = s.charCodeAt(i++); if (len > 191 && len < 224) len = ((len - 192) << 8) + s.charCodeAt(i++); else if (len == 255) len = (s.charCodeAt(i++) << 24) + (s.charCodeAt(i++) << 16) + (s.charCodeAt(i++) << 8) + s.charCodeAt(i++); else if (len > 223 && len < 255) len = (1 << (len & 0x1f)); } else { len = tag & 3; tag = (tag >> 2) & 15; if (len == 0) len = s.charCodeAt(i++); else if (len == 1) len = (s.charCodeAt(i++) << 8) + s.charCodeAt(i++); else if (len == 2) len = (s.charCodeAt(i++) << 24) + (s.charCodeAt(i++) << 16) + (s.charCodeAt(i++) << 8) + s.charCodeAt(i++); else len = s.length - 1; } if (tag == 6 || tag == 14) // public key/subkey packet { var k = i; var vers = s.charCodeAt(i++); found = 1; this.vers = vers; var time = (s.charCodeAt(i++) << 24) + (s.charCodeAt(i++) << 16) + (s.charCodeAt(i++) << 8) + s.charCodeAt(i++); if (vers == 2 || vers == 3) var valid = s.charCodeAt(i++) << 8 + s.charCodeAt(i++); var algo = s.charCodeAt(i++); if (algo == 1 || algo == 2) { var m = i; var lm = Math.floor((s.charCodeAt(i) * 256 + s.charCodeAt(i + 1) + 7) / 8); i += lm + 2; var mod = s.substr(m, lm + 2); var le = Math.floor((s.charCodeAt(i) * 256 + s.charCodeAt(i + 1) + 7) / 8); i += le + 2; this.pkey = s2r(s.substr(m, lm + le + 4)); this.type = "RSA"; if (vers == 3) { this.fp = ''; this.keyid = s2hex(mod.substr(mod.length - 8, 8)); } else if (vers == 4) { var pkt = String.fromCharCode(0x99) + String.fromCharCode(len >> 8) + String.fromCharCode(len & 255) + s.substr(k, len); var fp = str_sha1(pkt); this.fp = s2hex(fp); this.keyid = s2hex(fp.substr(fp.length - 8, 8)); } else { this.fp = ''; this.keyid = ''; } found = 2; } else if ((algo == 16 || algo == 20) && vers == 4) { var m = i; var lp = Math.floor((s.charCodeAt(i) * 256 + s.charCodeAt(i + 1) + 7) / 8); i += lp + 2; var lg = Math.floor((s.charCodeAt(i) * 256 + s.charCodeAt(i + 1) + 7) / 8); i += lg + 2; var ly = Math.floor((s.charCodeAt(i) * 256 + s.charCodeAt(i + 1) + 7) / 8); i += ly + 2; this.pkey = s2r(s.substr(m, lp + lg + ly + 6)); var pkt = String.fromCharCode(0x99) + String.fromCharCode(len >> 8) + String.fromCharCode(len & 255) + s.substr(k, len); var fp = str_sha1(pkt); this.fp = s2hex(fp); this.keyid = s2hex(fp.substr(fp.length - 8, 8)); this.type = "ELGAMAL"; found = 3; } else { i = k + len; } } else if (tag == 13) // user id { this.user = s.substr(i, len); i += len; } else { i += len; } } if (found < 2) { this.vers = ''; this.fp = ''; this.keyid = ''; if (found == 0) this.user = "No public key packet found."; else if (found == 1) { this.user = "public key algorithm is " + algo + " not RSA or ELGAMAL."; } this.pkey = ""; } } catch (err) { alert(err.message); } } </script>