source: prototipo_portal_2018/prototipo/static/js/hwcrypto/hex2base.js @ 327fd70

Last change on this file since 327fd70 was 327fd70, checked in by José Sulbarán <jsulbaran@…>, 7 years ago

Se agrego nuevas funciones de sing

  • Property mode set to 100644
File size: 1.9 KB
Line 
1// FIXME: origin unknown
2if (!window.atob) {
3  var tableStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
4  var table = tableStr.split("");
5
6  window.atob = function (base64) {
7    if (/(=[^=]+|={3,})$/.test(base64)) throw new Error("String contains an invalid character");
8    base64 = base64.replace(/=/g, "");
9    var n = base64.length & 3;
10    if (n === 1) throw new Error("String contains an invalid character");
11    for (var i = 0, j = 0, len = base64.length / 4, bin = []; i < len; ++i) {
12      var a = tableStr.indexOf(base64[j++] || "A"), b = tableStr.indexOf(base64[j++] || "A");
13      var c = tableStr.indexOf(base64[j++] || "A"), d = tableStr.indexOf(base64[j++] || "A");
14      if ((a | b | c | d) < 0) throw new Error("String contains an invalid character");
15      bin[bin.length] = ((a << 2) | (b >> 4)) & 255;
16      bin[bin.length] = ((b << 4) | (c >> 2)) & 255;
17      bin[bin.length] = ((c << 6) | d) & 255;
18    };
19    return String.fromCharCode.apply(null, bin).substr(0, bin.length + n - 4);
20  };
21
22  window.btoa = function (bin) {
23    for (var i = 0, j = 0, len = bin.length / 3, base64 = []; i < len; ++i) {
24      var a = bin.charCodeAt(j++), b = bin.charCodeAt(j++), c = bin.charCodeAt(j++);
25      if ((a | b | c) > 255) throw new Error("String contains an invalid character");
26      base64[base64.length] = table[a >> 2] + table[((a << 4) & 63) | (b >> 4)] +
27                              (isNaN(b) ? "=" : table[((b << 2) & 63) | (c >> 6)]) +
28                              (isNaN(b + c) ? "=" : table[c & 63]);
29    }
30    return base64.join("");
31  };
32
33}
34
35function hexToBase64(str) {
36  return btoa(String.fromCharCode.apply(null,
37    str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" "))
38  );
39}
40
41function hexToPem(s) {
42   var b = hexToBase64(s);
43   var pem = b.match(/.{1,64}/g).join("\n");
44   return "-----BEGIN CERTIFICATE-----\n" + pem + "\n-----END CERTIFICATE-----"; 
45}
Note: See TracBrowser for help on using the repository browser.