[bbe2084] | 1 | function asciiToUint8Array(str) { |
---|
| 2 | var chars = []; |
---|
| 3 | for (var i = 0; i < str.length; ++i) { |
---|
| 4 | chars.push(str.charCodeAt(i)); |
---|
| 5 | } |
---|
| 6 | return new Uint8Array(chars); |
---|
| 7 | } |
---|
| 8 | |
---|
| 9 | function convertStringToArrayBufferView(str) { |
---|
| 10 | var bytes = new Uint8Array(str.length); |
---|
| 11 | for (var iii = 0; iii < str.length; iii++) { |
---|
| 12 | bytes[iii] = str.charCodeAt(iii); |
---|
| 13 | } |
---|
| 14 | return bytes; |
---|
| 15 | } |
---|
| 16 | |
---|
| 17 | function buf2hex ( buffer ) { |
---|
| 18 | return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); |
---|
| 19 | } |
---|
| 20 | |
---|
| 21 | function log_text(s) { |
---|
| 22 | var d = document.createElement("div"); |
---|
| 23 | d.innerHTML = s; |
---|
| 24 | document.getElementById('log').appendChild(d); |
---|
| 25 | } |
---|
| 26 | |
---|
| 27 | function debug() { |
---|
| 28 | window.hwcrypto.debug().then(function(response) {log_text("Debug: " + response);}); |
---|
| 29 | } |
---|
| 30 | |
---|
| 31 | function sign() { |
---|
| 32 | |
---|
| 33 | alert("sign()"); |
---|
| 34 | |
---|
| 35 | // Clear log |
---|
| 36 | document.getElementById('log').innerHTML = ''; |
---|
| 37 | // Timestamp |
---|
| 38 | log_text("sign() clicked on " + new Date().toUTCString()); |
---|
| 39 | |
---|
| 40 | // Select hash |
---|
| 41 | var hashtype = "SHA-256"; |
---|
| 42 | |
---|
| 43 | // Set backend if asked |
---|
| 44 | var backend = "autodetect"; |
---|
| 45 | |
---|
| 46 | // get language |
---|
| 47 | var lang = "en"; |
---|
| 48 | if (!window.hwcrypto.use(backend)) { |
---|
| 49 | log_text("Selecting backend failed."); |
---|
| 50 | } |
---|
| 51 | |
---|
| 52 | var hash = $("#hashvalue").val(); |
---|
| 53 | log_text("Signing " + hashtype + ": " + hash); |
---|
| 54 | |
---|
| 55 | // debug |
---|
| 56 | window.hwcrypto.debug().then(function(response) { |
---|
| 57 | log_text("Debug: " + response); |
---|
| 58 | }, function(err) { |
---|
| 59 | log_text("debug() failed: " + err); |
---|
| 60 | return; |
---|
| 61 | }); |
---|
| 62 | |
---|
| 63 | // Sign |
---|
| 64 | window.hwcrypto.getCertificate({lang: lang}).then(function(response) { |
---|
| 65 | var cert = response; |
---|
| 66 | log_text("Using certificate:\n" + hexToPem(response.hex)); |
---|
| 67 | window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then( |
---|
| 68 | function(response) { |
---|
| 69 | log_text("Generated signature:\n" + response.hex.match(/.{1,64}/g).join("\n")); |
---|
| 70 | }, |
---|
| 71 | function(err) { log_text("sign() failed: " + err); } |
---|
| 72 | ); |
---|
| 73 | }, |
---|
| 74 | function(err) { log_text("getCertificate() failed: " + err); } |
---|
| 75 | ); |
---|
| 76 | } |
---|