例: 生成された鍵の鍵セット・グループからの検索
この例では、アプリケーションが com.ibm.websphere.crypto.KeySetHelper API を使用して、KeySet または KeySetGroup 構成から管理対象鍵を取得する方法を示します。 com.ibm.websphere.crypto.KeySetHelper API を使用して、KeySet または KeySetGroup オブジェクトの最新の鍵セットまたはすべての鍵を取得します。
新規の暗号オペレーションを実行する際には、最新の鍵を使用します。 KeySet または KeySetGroup オブジェクトで定義されている他のすべての鍵は、前に実行された暗号オペレーションの妥当性検査用です。
以下の例では、アプリケーションが関連する KeySetGroup オブジェクト内の鍵を初期化する際に使用するメソッドを使用しています。
アプリケーションでは、生成用と妥当性検査用の 2 つの別のマップに鍵を保管する必要がある場合があります。
必要な Java™ 2 セキュリティー要件を判断するには、KeySetHelper API の API 文書を参照してください。
/**
* Initializes the primary and secondary Maps used for initializing the keys.
*/
public void initializeKeySetGroupKeys() throws com.ibm.websphere.crypto.KeyException
{
java.util.Map generationKeys = null;
java.util.Map validationKeys = null;
PublicKey tempPublicKey = null;
PrivateKey tempPrivateKey = null;
byte[] tempSharedKey = null;
keySetGroupName = "ApplicationKeySetGroup";
com.ibm.websphere.crypto.KeySetHelper ksh = com.ibm.websphere.crypto.KeySetHelper.getInstance();
generationKeys = ksh.getLatestKeysForKeySetGroup(keySetGroupName);
/***
* Latest keys: {
* KeyPair_3=com.ibm.websphere.crypto.KeyPair@64ec64ec,
* Secret_3=javax.crypto.spec.SecretKeySpec@fffe8aa7
* }
***/
if (generationKeys != null)
{
Iterator iKeySet = generationKeys.keySet().iterator();
while (iKeySet.hasNext())
{
String keyAlias = (String)iKeySet.next();
Object key = generationKeys.get(keyAlias);
if (key instanceof java.security.Key)
{
tempSharedKey = ((java.security.Key)key).getEncoded();
}
else if (key instanceof com.ibm.websphere.crypto.KeyPair)
{
java.security.Key publicKeyAsSecret =
((com.ibm.websphere.crypto.KeyPair)key).getPublicKey();
tempPublicKey = new PublicKey(publicKeyAsSecret.getEncoded());
java.security.Key privateKeyAsSecret =
((com.ibm.websphere.crypto.KeyPair)key).getPrivateKey();
tempPrivateKey = new PrivateKey(privateKeyAsSecret.getEncoded());
}
}
// save these for use later, if necessary
validationKeys = ksh.getAllKeysForKeySetGroup(keySetGroupName);
/***
* All keys: {
* version_1=
* {Secret_1=javax.crypto.spec.SecretKeySpec@178cf,
* KeyPair_1=com.ibm.websphere.crypto.KeyPair@1c121c12},
* version_2=
* {Secret_2=javax.crypto.spec.SecretKeySpec@17a77,
* KeyPair_2=com.ibm.websphere.crypto.KeyPair@182e182e},
* version_3=
* {Secret_3=javax.crypto.spec.SecretKeySpec@fffe8aa7,
* KeyPair_3=com.ibm.websphere.crypto.KeyPair@4da04da0}
* }
***/
}
else
{
throw new com.ibm.websphere.crypto.KeyException("Could not generateKeys.");
}
}