readwrite.js

Summary

Example for reading and writing EFs observing corner cases


Method Summary
static void writeRead(sc, cnt)
          

/**
 *  ---------
 * |.##> <##.|  SmartCard-HSM Support Scripts
 * |#       #|
 * |#       #|  Copyright (c) 2011-2015 CardContact Software & System Consulting
 * |'##> <##'|  Andreas Schwier, 32429 Minden, Germany (www.cardcontact.de)
 *  ---------
 *
 * Consult your license package for usage terms and conditions.
 *
 * @fileoverview Example for reading and writing EFs observing corner cases
 */


var SmartCardHSM = require('scsh/sc-hsm/SmartCardHSM').SmartCardHSM;
var crypto = new Crypto();


function writeRead(sc, cnt) {
	print("Size=" + cnt);
	var data = crypto.generateRandom(cnt);
	var fid = ByteString.valueOf(0xEFEF);
	sc.updateBinary(fid, 0, data);
	var ref = sc.readBinary(fid);

	assert(ref.equals(data));
	sc.deleteFile(fid);
}



var card = new Card(_scsh3.reader);
var sc = new SmartCardHSM(card);
sc.verifyUserPIN(new ByteString("648219", ASCII));

var devAutCert = sc.readBinary(SmartCardHSM.C_DevAut);
var certchain = SmartCardHSM.validateCertificateChain(crypto, devAutCert);
sc.openSecureChannel(crypto, certchain.publicKey, Key.AES);


// Corner cases for MicroSD card (Write)
for (var i = 446; i < 450; i++) {
	writeRead(sc, i);
}

// Corner cases for MicroSD card (Read)
for (var i = 478; i < 482; i++) {
	writeRead(sc, i);
}


// Corner cases for Reiner SCT (Write)
for (var i = 968; i < 972; i++) {
	writeRead(sc, i);
}

// Corner cases for Reiner SCT (Read)
for (var i = 990; i < 994; i++) {
	writeRead(sc, i);
}


// Corner cases for USB-Token (Read/Write)
for (var i = 1198; i < 1202; i++) {
	writeRead(sc, i);
}


Documentation generated by JSDoc on Sat Feb 24 15:17:19 2024