以下を使用してキーを導出できます。
JCA/JCE API から HSM を使用するには、対応するプロバイダーを JCA/JCE API に追加し、provider
その特定のプロバイダーの実装を要求するパラメーターを指定する必要があります。
例えば:
int slot = 0;
Provider provider = new au.com.safenet.crypto.provider.SAFENETProvider(slot);
Security.addProvider(provider);
final String PROVIDER = provider.getName(); // "SAFENET", "SAFENET.1", ...
KeyGenerator keyGen = KeyGenerator.getInstance("DESede", PROVIDER);
Key baseKey = keyGen.generateKey();
Cipher desCipher = Cipher.getInstance("DESede/CBC/PKCS5Padding", PROVIDER);
desCipher.init(Cipher.ENCRYPT_MODE, baseKey);
byte[] derived = desCipher.doFinal("diversification data".getBytes());
鍵の導出を頻繁に行う必要がある場合は、プロバイダの Java 用 PCKS#11 ラッパー (SafeNet など) またはその他の API を使用して、セッション管理をより明確にし、リソースをより効率的に使用することを検討してくださいjcprov
。利用方法。