Example of a key component assembly in accordance with the ANSI X9.24 standard.
package doxy.examples;
import com.dinamonetworks.Dinamo;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class MergeX9_24KeyParts {
public static void main(String[] args) throws TacException {
Dinamo api = new Dinamo();
api.openSession("127.0.0.1", "master", "12345678", false);
final String PART1 = "x924_part1";
final String PART2 = "x924_part2";
final String PART3 = "x924_part3";
final String DEST = "x924_merged";
byte[] zeroPart = new byte[16];
byte[] expectedKcv = {(byte)0x66, (byte)0xE9, (byte)0x4B};
api.importKey(PART1, TacNDJavaLib.PLAINTEXTKEY_BLOB,
TacNDJavaLib.ALG_AES_128, TacNDJavaLib.AUP_EFT_X9_24_PART,
zeroPart, zeroPart.length);
api.importKey(PART2, TacNDJavaLib.PLAINTEXTKEY_BLOB,
TacNDJavaLib.ALG_AES_128, TacNDJavaLib.AUP_EFT_X9_24_PART,
zeroPart, zeroPart.length);
api.importKey(PART3, TacNDJavaLib.PLAINTEXTKEY_BLOB,
TacNDJavaLib.ALG_AES_128, TacNDJavaLib.AUP_EFT_X9_24_PART,
zeroPart, zeroPart.length);
api.mergeX9_24KeyParts(DEST, TacNDJavaLib.AUP_DATA_CRYPTO,
PART1, PART2, PART3, expectedKcv);
System.out.println("Chave resultante criada com sucesso: " + DEST);
api.deleteKey(DEST);
api.mergeX9_24KeyParts(DEST, TacNDJavaLib.AUP_DATA_CRYPTO,
PART1, PART2, null, expectedKcv);
System.out.println("Junção de 2 componentes concluída com sucesso.");
api.deleteKey(PART1);
api.deleteKey(PART2);
api.deleteKey(PART3);
api.deleteKey(DEST);
api.closeSession();
}
}