LacunaWebPKI: Sign Hash Batch
by Lacuna Software
HTML
<script src="https://rawgit.com/malsup/blockui/316f6e5d76a33266970778e80507149d9ef6a02d/jquery.blockUI.js"></script>
<script src="https://get.webpkiplugin.com/Scripts/LacunaWebPKI/lacuna-web-pki-2.12.0.min.js"></script>
<h2>Web PKI - Sign Hash Batch</h2>
Batch count:
<input id="batchCountInput" type="text" /><br/><br/>
<select id="certificateSelect"></select>
<button id="refreshButton" type="button">Refresh</button><br/><br/>
<button id="signHashBatchButton" type="button">Sign Batch</button>
<div id="logPanel"></div>
<div id="blockPanel">
</div>
CSS
#blockPanel {
display: none;
padding: 0.5em;
}
JavaScript
// ------------------------------------------------------------------------------------------
// LacunaWebPKI: Sign Hash Batch
var pki = new LacunaWebPKI('AiEAKi5sYWN1bmFzb2Z0d2FyZS5jb20sanNmaWRkbGUubmV0AAADAFBybwgAANjqpHQf3QgAAWdZXb1mfX0OvXPptndkKubdjvH2Bp2TAY3IW+i5PpTMtBmnQwYw4YMtouSaod41haOgzNYbyveZ6VFpjW1IVAQRlVh1yO66+W2jkNm/ZJLqn3bQ/KgSPnxRN8/6yCykZGw+kGe0mhaahRYXYAakzU8+MaRrTShwmJpr1ko1nPt9o62/9L32Jpaq2TZLQc++C/JzUT0FUX7ycsPD8FfucX/LN4NVh9rFlWN+iPRrZ5jHcYFA1OdG2wFMzBQyF311KNdx3An5xMj1BrHum4ocvNxM7RABh9YClezDlmdZTG7MLe8I/goKoVy/KQ/dN4g06ze+GW5hhU9Hj6CKgUaSriM=');
function start() {
blockUI.start('Initializing component');
pki.init({
ready: onWebPkiReady,
defaultFail: function (ex) {
blockUI.stop();
log('Error: ' + ex.userMessage + ' (' + ex.code + ')');
},
requiredApiVersion: pki.apiVersions.v1_5
});
}
function onWebPkiReady () {
refreshCertificates();
}
function refreshCertificates() {
blockUI.start('Listing certificates');
pki.listCertificates({
selectId: 'certificateSelect'
}).success(function (certs) {
blockUI.stop();
log(certs.length + ' certificates found.');
});
}
function signHashBatch() {
var selectedCertThumb = $('#certificateSelect').val();
log('Signing batch with certificate: ' + selectedCertThumb);
var batch = generateBatch();
var startTime = new Date().getTime();
pki.signHashBatch({
certificateThumbprint: selectedCertThumb,
batch: batch,
digestAlgorithm: 'SHA-256'
}).success(function (result) {
var timeInSeconds = ((new Date().getTime() - startTime) / 1000).toFixed(2);
log('Signed ' + result.signatures.length + ' hashes in ' + timeInSeconds + 's');
log('Speed: ' + ((batchCount * 60)/timeInSeconds).toFixed(2) + ' signatures / min');
});
}
var batchCount = 50;
function generateBatch() {
var batch = [];
batchCount =...