HSM からデータを送受信するコードは次のとおりです。
public class TestHSMJava {
public static void main(String args[]) {
System.out.println("<<< Main Method Entry >>>");
String command = null;
Socket socket = null;
DataOutputStream out = null;
DataInputStream in = null;
byte[] b= new byte[100];
try {
socket = new Socket("10.10.10.10", 7500);
System.out.println("<<< Socket >>> :" + socket);
if (socket != null) {
System.out.println("<<< Connected to HSM >>>:"
+ socket.isConnected());
in = new DataInputStream (new BufferedInputStream(socket.getInputStream()));
out = new DataOutputStream (new BufferedOutputStream(socket.getOutputStream()));
command = "0006303030304e43";
out.writeUTF(command);
System.out.println("Input to HSM : " +command);
out.flush();
String response = in.readUTF();
System.out.println("Output from HSM : " +response);
System.out.println("");
}
}
}
問題は、「GC」コマンドを実行するためにどのコマンドを送信する必要があるかです (ZPK を LMK から ZMK 暗号化に変換します)。TPK キーの明確なコンポーネントを生成する必要があります。通常、私はそうします
gc
Enter key length [1,2,3]: 2
Enter key type: 002
Enter key scheme: u
その後
fk
Enter key length [1,2,3]: 2
Enter key type: 002
Enter key scheme: u
Enter component type [X,H,T,E,S]: x
Enter number of components [1-9]: 2
Javaプログラムを使用してこれらのアクションを実行する必要があります。