LacunaWebPKI: Sign Batch Example
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.7.0.js"></script>
<h2>Web PKI - Sign Batch Example</h2>
<select id="certificateSelect"></select>
<button id="refreshButton" type="button">Refresh</button><br/><br/>
<button id="signFileButton" type="button">Sign Batch</button>
<div id="logPanel"></div>
JavaScript
// ------------------------------------------------------------------------------------------
// LacunaWebPKI: Sign Batch Example
var pki = new LacunaWebPKI('AiEAKi5sYWN1bmFzb2Z0d2FyZS5jb20sanNmaWRkbGUubmV0AAACAENBCAAAGD8P6XvgCAABL3ZCfMfZGteSXNb2XNHBws9WZcTv0FCVe4qlxUXgaMzx4iymA73nVrD55o+S83b/alfQHs2xoIoPd6qiBDqbefk4GDnc84efZAX4UV7sHYr5x6+IRZ+RjW1DVZkJ9vo2/3/JeSRnj1Yvn3jtDf77jz2osQkFC5jSLABzCMAC/LXqPhOdZcK8hoyWOaghcsGvb5eezEFeJl+nkjDgZ6PsggdDpyWwLBFru4IeSRLE1HeP6TE6g5RQFjFHqNNCFRpP23/FQGD9/YDi2mR07lUxznt92z8GYygkp6O0Nv3ltj3eDGzN89LlgTBgsA2upsm0tTIgkWTDsKvqY6TwfsQ5tA==');
var batch = [
'SGVsbG8gV29ybGQh', // 'Hello World!' Base64 encoded
'SGVsbG8gV2ViUEtJIQ==', // 'Hello WebPKI!' Base64 encoded
'SGVsbG8gQmF0Y2gh', // 'Hello Batch!' Base64 encoded
'SGVMbE8gd09yTGQh', // 'HeLlO wOrLd!' Base64 encoded
'SGVsbG8gQ3J5cHRvIQ==' // 'Hello Crypto!' Base64 encoded
];
function start() {
pki.init({
ready: onWebPkiReady,
defaultFail: function (ex) {
log('Error: ' + ex.message + '(' + ex.code + ')');
}
});
}
function onWebPkiReady () {
refreshCertificates();
}
function refreshCertificates() {
pki.listCertificates({
selectId: 'certificateSelect'
}).success(function (certs) {
log(certs.length + ' certificates found.');
});
}
function authorizeBatch() {
pki.preauthorizeSignatures({
certificateThumbprint: $('#certificateSelect').val(),
signatureCount: batch.length
}).success(function () {
signBatchItem(0); // start batch signatures
});
}
function signBatchItem(i) {
if (i >= batch.length) {
log('Batch finished');
return;
}
pki.signData({
thumbprint: $('#certificateSelect').val(),
data: batch[i],
digestAlgorithm: 'SHA-256'
}).success(function (signature) {
log('Signature ' + i + ': ' + signature);
...