Beispiel: Generierte Schlüssel aus einer Schlüsselsatzgruppe abrufen

Dieses Beispiel zeigt, wie Anwendungen mit der API com.ibm.websphere.crypto.KeySetHelper verwaltete Schlüssel aus KeySet- oder KeySetGroup-Konfigurationen abrufen können. Verwenden Sie die API com.ibm.websphere.crypto.KeySetHelper, um die neuesten Schlüssel oder alle Schlüssel aus dem KeySet- oder KeySetGroup-Objekt abzurufen.

Rufen Sie die neuesten Schlüssel ab, wenn Sie neue Verschlüsselungsoperationen ausführen möchten. Alle anderen im KeySet- oder KeySetGroup-Objekt definierten Schlüssel sind für die Validierung bereits ausgeführter Verschlüsselungsoperationen bestimmt.

Das folgende Beispiel enthält eine Methode, mit der eine Anwendung die Schlüssel im zugeordneten KeySetGroup-Objekt initialisieren könnte. Bei Bedarf kann die Anwendung die Schlüssel in zwei gesonderten Zuordnungen speichern, einer für Generierung und einer für Validierung. Stellen Sie anhand der Dokumentation zur API KeySetHelper fest, welche Java™-2-Sicherheitsanforderungen gelten.
/**
     * Initialisiert die primäre und sekundäre Zuordnung für die Initialisierung der Schlüssel
     */

    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);

        /***
        *  Neueste Schlüssel: {
        *  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());
                }
            }

            // für eventuelle spätere Verwendung speichern
            validationKeys = ksh.getAllKeysForKeySetGroup(keySetGroupName);

            /***
            *  Alle Schlüssel: {
            *  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.");
        }
    }

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_sslretgenkeysetgrp
Dateiname:rsec_sslretgenkeysetgrp.html