JavaScript generic ASN.1 parser (mirror)
1
fork

Configure Feed

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

File forgot in previous (refactor) commit.

+41
+41
context.js
··· 1 + // register context menu function 2 + document.getElementById('btnCopyHex').onclick = function (event) { 3 + let contextMenu = document.getElementById('contextmenu'); 4 + let node = contextMenu.node; 5 + const pos = parseInt(node.getAttribute('pos')); 6 + const end = parseInt(node.getAttribute('end')); 7 + const hex = node.asn1.buf2hex(window.derBuffer.subarray(pos, end)); 8 + navigator.clipboard.writeText(hex); 9 + contextMenu.style.visibility = 'hidden'; 10 + event.stopPropagation(); 11 + }; 12 + 13 + document.getElementById('btnCopyString').onclick = function (event) { 14 + let contextMenu = document.getElementById('contextmenu'); 15 + let node = contextMenu.node; 16 + const pos = parseInt(node.getAttribute('pos')); 17 + const end = parseInt(node.getAttribute('end')); 18 + let result = ASN1.decode(window.derBuffer.subarray(pos, end)); 19 + let type = result.typeName(); 20 + switch (type) { 21 + case 'SET': 22 + case 'SEQUENCE': 23 + alert('Selected value is not a String!'); 24 + break; 25 + default: 26 + navigator.clipboard.writeText(result.content()); 27 + } 28 + contextMenu.style.visibility = 'hidden'; 29 + event.stopPropagation(); 30 + }; 31 + 32 + document.getElementById('btnCopyPretty').onclick = function (event) { 33 + let contextMenu = document.getElementById('contextmenu'); 34 + let node = contextMenu.node; 35 + const pos = parseInt(node.getAttribute('pos')); 36 + const end = parseInt(node.getAttribute('end')); 37 + let result = ASN1.decode(window.derBuffer.subarray(pos, end)); 38 + navigator.clipboard.writeText(result.toPrettyString()); 39 + contextMenu.style.visibility = 'hidden'; 40 + event.stopPropagation(); 41 + };