示例:从密钥集组中检索生成的密钥

此示例显示应用程序如何使用 com.ibm.websphere.crypto.KeySetHelper API 来从 KeySet 或 KeySetGroup 配置检索受管密钥。使用 com.ibm.websphere.crypto.KeySetHelper API 来获取 KeySet 或 KeySetGroup 对象中的最新一组密钥或所有密钥。

在执行任何新密码操作时使用最新密钥。KeySet 或 KeySetGroup 对象中定义的所有其他密钥用于验证先前执行的密码操作。

以下示例使用应用程序可能使用的方法来初始化关联 KeySetGroup 对象中的密钥。应用程序可能想要将密钥存储在两个不同映射中,一个用于生成密钥,一个用于验证密钥。请参阅 KeySetHelper API 的 API 文档以确定所需的 Java™ 2 安全性要求。
/**
     * 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.");
        }
    }

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_sslretgenkeysetgrp
文件名:rsec_sslretgenkeysetgrp.html