Web PKI - Issue Token Certificate

by Lacuna Software

HTML

<script type="text/javascript" src="https://cdn.lacunasoftware.com/libs/web-pki/lacuna-web-pki-2.14.3.min.js"
  integrity="sha256-P92LF1ePw0qwnmbefDpDiMcr8rmwFkcxVX+utanmlek="
  crossorigin="anonymous"></script>

<h2>Web PKI - Issue Token Certificate Example</h2>
<h4>
  If you need a complete Certificate Chain Managing Solution, please visit: 
  <a href=https://www.lacunasoftware.com/en/amplia target="_blank">https://www.lacunasoftware.com/amplia/</a>
</h4>
<p>Select a token:</p>
<select id="tokenSelect"></select>
<button id="refreshTokens" type="button">Refresh Tokens</button>
<br/><br/>
<button id="issueTokenCertificate" type="button">Issue Certificate</button>
<h4>Logs:</h4>
<div id="logPanel"></div>

CSS

@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
body {
  font-family: 'Open Sans', sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 14px;
}

#logPanel {
  font-family: monospace;
}

JavaScript

// ------------------------------------------------------------------------------------------
// Lacuna Web PKI - Issue Token Certificate

var webPkiLicense = 'AgwAanNmaWRkbGUubmV0QwBpcDQ6MTAuMC4wLjAvOCxpcDQ6MTI3LjAuMC4wLzgsaXA0OjE3Mi4xNi4wLjAvMTIsaXA0OjE5Mi4xNjguMC4wLzE2AgBDQQgAANidNiCG4AgAARN2oAJB4t7lxfqJgD7RcAAj038cUjT01eZEsTUqR3JelB6q9JWUV+rjdHamDbErK4Ms6t85wo2KR8XKn6cPeud5zoZ5XlsUowjRSazRvWG87qm4t/0NUjpk+dOt7KXos8WVHynlHtyxzgNyoEwNYoFxKjx5TaLT/AvcZx5gtzh1bgDImuV1tgAxaQcAudtxeW5wyzqS2zhoIBJDLgCw+fsRSQnVW/I6OQd2vbL4HhKBp2DRGrNjDX2bncyek3loXjSXFqMOeBxPgWdtLAZSunG+Mavwnt5DTduZ2I7KEwDy1ffxcMyea/9SbWeb6GHBnO4yBCMg2EhnSBd4o04slvo=';

var pki = new LacunaWebPKI(webPkiLicense);

function start() {
  log('Initializing component...');
  
  pki.init({
    ready: onWebPkiReady,
    defaultFail: onWebPkiError,
    requiredApiVersion: pki.apiVersions.v1_5_2,
    notInstalled: onNotInstalled
  });
}

function onWebPkiReady() {
  refreshTokens();
}

function onWebPkiError(ex) {
  log('Error: ' + ex.userMessage + ' (' + ex.code + ')');
}

function onNotInstalled(state) {
	var status = state === pki.installationStates.OUTDATED ? 'update' : 'install';
	alert('You need to ' + status + ' Web PKI plugin in order to continue');
  pki.redirectToInstallPage();
}

// ------------------------------------------
// Set supported PKCS#11 modules

var p11Modules = [
	pki.pkcs11Modules.safeSign,
  pki.pkcs11Modules.safeNet
];

var tokens = [];

// ------------------------------------------

function refreshTokens() {
	log('Listing Tokens...');
  
	pki.listTokens({
  	pkcs11Modules: p11Modules
    
  }).success(function(tokenList){
  	tokens = tokenList;
  	$('#tokenSelect').empty();
    $.each(tokens, function() {
        $('#tokenSelect').append($('<option />')
        .val(this.serialNumber)
        .text(`${this.label} (${this.model} ${this.manufacturer})`));
    });
    
    log('Tokens found: ' + tokens.length);
  });
}

//...