JavaScript generic ASN.1 parser (mirror)
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Added support for file reading in Chrome.

+29 -15
+29 -15
index.html
··· 13 13 document.getElementById('help').style.display = 'none'; 14 14 var tree = document.getElementById('tree'); 15 15 var dump = document.getElementById('dump'); 16 - tree.innerHTML = ""; 17 - dump.innerHTML = ""; 16 + tree.innerHTML = ''; 17 + dump.innerHTML = ''; 18 18 try { 19 19 var asn1 = ASN1.decode(der); 20 20 tree.appendChild(asn1.toDOM()); ··· 37 37 } 38 38 return false; 39 39 } 40 + function decodeBinaryString(str) { 41 + try { 42 + var der = []; 43 + for (var i = 0; i < str.length; ++i) 44 + der[der.length] = str.charCodeAt(i); 45 + decode(der); 46 + } catch (e) { 47 + tree.innerHTML = e; 48 + } 49 + return false; 50 + } 40 51 function help() { 41 - document.getElementById('tree').innerHTML = ""; 42 - document.getElementById('dump').innerHTML = ""; 52 + document.getElementById('tree').innerHTML = ''; 53 + document.getElementById('dump').innerHTML = ''; 43 54 document.getElementById('help').style.display = 'block'; 44 55 return false; 45 56 } 46 57 function load() { 47 58 var file = document.getElementById('file'); 59 + if (!file.files) { 60 + alert("Your browser doesn't support reading files; try Firefox or Chrome."); 61 + return false; 62 + } 48 63 if (file.files.length == 0) { 49 64 alert("Select a file to load first."); 50 65 return false; 51 66 } 52 - if (!file.files[0].getAsBinary) { 53 - alert("Cannot load files: your browser doesn't support the File.getAsBinary() method; try with Firefox."); 67 + var f = file.files[0]; 68 + if (f.getAsBinary) { // Firefox way 69 + var derStr = f.getAsBinary(); 70 + decodeBinaryString(derStr); 71 + } else if (window.FileReader) { // Chrome way 72 + var r = new FileReader(); 73 + r.onloadend = function() { decodeBinaryString(r.result); } 74 + derStr = r.readAsBinaryString(f); 75 + } else { 76 + alert("Your browser doesn't support reading files; try Firefox or Chrome."); 54 77 return false; 55 - } 56 - var derStr = file.files[0].getAsBinary(); 57 - var der = []; 58 - for (var i = 0; i < derStr.length; ++i) 59 - der[der.length] = derStr.charCodeAt(i); 60 - try { 61 - decode(der); 62 - } catch (e) { 63 - tree.innerHTML = e; 64 78 } 65 79 return false; 66 80 }