예: 키 세트 그룹에서 생성된 키 검색
이 예제는 애플리케이션이 com.ibm.websphere.crypto.KeySetHelper API를 사용하여 KeySet 또는 KeySetGroup 구성에서 관리 키를 검색할 수 있는 방법을 보여줍니다. com.ibm.websphere.crypto.KeySetHelper API를 사용하여 KeySet 또는 KeySetGroup 오브젝트에서 최신 키 세트 또는 모든 키를 가져옵니다.
새 암호화 조작을 수행할 때 최신 키를 사용하십시오. KeySet 또는 KeySetGroup 오브젝트에서 정의되는 다른 모든 키는 이전에 수행된 암호화 조작의 유효성 검증을 위한 것입니다.
다음 예제에서는
애플리케이션이 연관된 KeySetGroup 오브젝트에서 키를 초기화하는 데 사용할 수 있는 메소드를 사용합니다. 이 애플리케이션은
생성 및 유효성 검증을 위한 두 개의 개별 맵에 키를 저장하려고 합니다. 필요한 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.");
}
}