/**
* PublicKey.js - v0e011cb1
*
* @source https://github.com/diafygi/publickeyjs/blob/master/publickey.js
*
* @licstart The following is the entire license notice for the
* JavaScript code in this file.
*
* Copyright (c) 2015 Daniel Roesler
*
* The JavaScript code in this page is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*/
(function(y){var z=["https://keys.fedoraproject.org/","https://keybase.io/"],v=function(c){this.keyservers=c||z};v.prototype.get=function(c,h,f,d){void 0===f&&(f=0);if(f>=this.keyservers.length)return h(null,d||404);d=this.keyservers[f];var k=this;if(0===d.indexOf("https://keybase.io/")){0===c.indexOf("0x")&&(c=c.substr(2));var e=new XMLHttpRequest;e.open("get","https://keybase.io/_/api/1.0/user/lookup.json?fields=public_keys&key_fingerprint="+c);e.onload=function(){if(200===e.status){var g=JSON.parse(e.responseText);
return 0!==g.status.code?k.get(c,h,f+1,g.status.code):0===g.them.length?k.get(c,h,f+1,404):h(g.them[0].public_keys.primary.bundle,null)}return k.get(c,h,f+1,e.status)}}else 0!==c.indexOf("0x")&&(c="0x"+c),e=new XMLHttpRequest,e.open("get",d+"pks/lookup?op=get&options=mr&search="+c),e.onload=function(){return 200===e.status?h(e.responseText,null):k.get(c,h,f+1,e.status)};e.send()};v.prototype.search=function(c,h,f,d,k){void 0===f&&(f=0);void 0===d&&(d=[]);if(f>=this.keyservers.length){if(0===d.length)return h(null,
k||404);k={};for(var e=0;e<d.length;e++){var g=d[e];if(void 0!==k[g.keyid])for(var q=0;q<g.uids.length;q++){for(var x=!1,w=0;w<k[g.keyid].uids.length;w++)if(k[g.keyid].uids[w].uid===g.uids[q]){x=!0;break}x||k[g.keyid].uids.push(g.uids[q])}else k[g.keyid]=g}q=[];for(e=0;e<d.length;e++)g=d[e],void 0!==k[g.keyid]&&(q.push(k[g.keyid]),delete k[g.keyid]);return h(q,null)}var u=this.keyservers[f],r=this;if(0===u.indexOf("https://keybase.io/")){var m=new XMLHttpRequest;m.open("get","https://keybase.io/_/api/1.0/user/autocomplete.json?q="+
encodeURIComponent(c));m.onload=function(){if(200===m.status){var n=JSON.parse(m.responseText);if(0!==n.status.code)return r.search(c,h,f+1,d,n.status.code);if(0===n.completions.length)return r.search(c,h,f+1,d,404);for(var t=[],p=0;p<n.completions.length;p++){var a=n.completions[p].components;if(void 0!==a.key_fingerprint){var l={keyid:a.key_fingerprint.val.toUpperCase(),href:"https://keybase.io/"+a.username.val+"/key.asc",info:"https://keybase.io/"+a.username.val,algo:a.key_fingerprint.algo,keylen:a.key_fingerprint.nbits,
creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1,uids:[{uid:a.username.val+" on Keybase <https://keybase.io/"+a.username.val+">",creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1}]};void 0!==a.full_name&&l.uids.push({uid:"Full Name: "+a.full_name.val,creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});void 0!==a.twitter&&l.uids.push({uid:a.twitter.val+" on Twitter <https://twitter.com/"+a.twitter.val+">",creationdate:null,expirationdate:null,
revoked:!1,disabled:!1,expired:!1});void 0!==a.github&&l.uids.push({uid:a.github.val+" on Github <https://github.com/"+a.github.val+">",creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});void 0!==a.reddit&&l.uids.push({uid:a.reddit.val+" on Github <https://reddit.com/u/"+a.reddit.val+">",creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});void 0!==a.hackernews&&l.uids.push({uid:a.hackernews.val+" on Hacker News <https://news.ycombinator.com/user?id="+a.hackernews.val+
">",creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});void 0!==a.coinbase&&l.uids.push({uid:a.coinbase.val+" on Coinbase <https://www.coinbase.com/"+a.coinbase.val+">",creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});if(void 0!==a.websites)for(var b=0;b<a.websites.length;b++)l.uids.push({uid:"Owns "+a.websites[b].val,creationdate:null,expirationdate:null,revoked:!1,disabled:!1,expired:!1});t.push(l)}}d=d.concat(t);return r.search(c,h,f+1,d,null)}return r.search(c,
h,f+1,d,m.status)}}else m=new XMLHttpRequest,m.open("get",u+"pks/lookup?op=index&options=mr&fingerprint=on&search="+encodeURIComponent(c)),m.onload=function(){if(200===m.status){for(var n=[],t=m.responseText.split("\n"),p=void 0,a=0;a<t.length;a++){var l=t[a].trim();if(0==l.indexOf("pub:")){void 0!==p&&n.push(p);var b=l.split(":");p={keyid:b[1],href:u+"pks/lookup?op=get&options=mr&search=0x"+b[1],info:u+"pks/lookup?op=vindex&search=0x"+b[1],algo:""===b[2]?null:parseInt(b[2]),keylen:""===b[3]?null:
parseInt(b[3]),creationdate:""===b[4]?null:parseInt(b[4]),expirationdate:""===b[5]?null:parseInt(b[5]),revoked:-1!==b[6].indexOf("r"),disabled:-1!==b[6].indexOf("d"),expired:-1!==b[6].indexOf("e"),uids:[]}}0==l.indexOf("uid:")&&(b=l.split(":"),p.uids.push({uid:decodeURIComponent(b[1]),creationdate:""===b[2]?null:parseInt(b[2]),expirationdate:""===b[3]?null:parseInt(b[3]),revoked:-1!==b[4].indexOf("r"),disabled:-1!==b[4].indexOf("d"),expired:-1!==b[4].indexOf("e")}))}n.push(p);d=d.concat(n);return r.search(c,
h,f+1,d,null)}return r.search(c,h,f+1,d,m.status)};m.send()};y.PublicKey=v})("undefined"===typeof exports?this:exports);
|