LacunaWebPKI: Certificate Operations

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.9.0.js"></script>

<h2>Web PKI - Certificate Operations</h2>
<select id="certificateSelect"></select>
<button id="refreshButton" type="button">Refresh</button><br/><br/>
<button id="readCertButton" type="button">Read Cert</button>
<button id="signDataButton" type="button">Sign Data</button>
<button id="signHashButton" type="button">Sign Hash</button>
<div id="logPanel"></div>

JavaScript

// ------------------------------------------------------------------------------------------
// LacunaWebPKI: Certificate Operations

var pki = new LacunaWebPKI('AiEAKi5sYWN1bmFzb2Z0d2FyZS5jb20sanNmaWRkbGUubmV0AAACAENBCAAAGD8P6XvgCAABL3ZCfMfZGteSXNb2XNHBws9WZcTv0FCVe4qlxUXgaMzx4iymA73nVrD55o+S83b/alfQHs2xoIoPd6qiBDqbefk4GDnc84efZAX4UV7sHYr5x6+IRZ+RjW1DVZkJ9vo2/3/JeSRnj1Yvn3jtDf77jz2osQkFC5jSLABzCMAC/LXqPhOdZcK8hoyWOaghcsGvb5eezEFeJl+nkjDgZ6PsggdDpyWwLBFru4IeSRLE1HeP6TE6g5RQFjFHqNNCFRpP23/FQGD9/YDi2mR07lUxznt92z8GYygkp6O0Nv3ltj3eDGzN89LlgTBgsA2upsm0tTIgkWTDsKvqY6TwfsQ5tA==');

function start() {
    pki.init({
        ready: onWebPkiReady,
        defaultFail: function (ex) {
            log('Error: ' + ex.userMessage + ' (' + ex.code + ')');
        }
    });
}

function onWebPkiReady () {
    refreshCertificates();
}

function refreshCertificates() {
    pki.listCertificates({
        selectId: 'certificateSelect'
    }).success(function (certs) {
        log(certs.length + ' certificates found.');
    });
}

function readCert() {
    var selectedCertThumb = $('#certificateSelect').val();
    log('Reading certificate: ' + selectedCertThumb);
    pki.readCertificate(selectedCertThumb).success(function (certEncoding) {
        log('Result: ' + certEncoding);
    });
}

function signData() {
    var selectedCertThumb = $('#certificateSelect').val();
    log('Signing data with certificate: ' + selectedCertThumb);
    pki.signData({
        thumbprint: selectedCertThumb,
        data: 'SGVsbG8sIFdvcmxkIQ==', // ASCII encoding of the string "Hello, World!", encoded in Base64
        digestAlgorithm: 'SHA-256'
    }).success(function (signature) {
        log('Result: ' + signature);
    });
}

function signHash() {
    var selectedCertThumb = $('#certificateSelect').val();
    log('Signing hash with certificate: ' + selectedCertThumb);
    pki.signHash({
        thumbprint: selectedCertThumb,
        hash:...