Ausnahme bei fehlerhafter Polsterung - RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING in pkcs11

Meine Anwendung greift auf e-Token zu, um die Antwort vom Server zu entschlüsseln

Der Sitzungsschlüssel vom Server wird verschlüsselt mit:

RSA / EZB / OAEPWITHSHA-256ANDMGF1PADDING

Ich verwende den SunPKCS11-Provider zum Implementieren des Zugriffs auf das Kryptotoken. Wann immer ich versuche, dies unter Verwendung des obigen Mechanismus zu entschlüsseln, d. H. MitRSA / EZB / OAEPWITHSHA-256ANDMGF1PADDING ich bekomme :-

**javax.crypto.BadPaddingException: doFinal() failed  
    at sun.security.pkcs11.P11RSACipher.implDoFinal(P11RSACipher.java:328)  
    at sun.security.pkcs11.P11RSACipher.engineDoFinal(P11RSACipher.java:353)  
    at javax.crypto.Cipher.doFinal(DashoA13*..)

Folgendes ist mein Code: -

private static final String TRANSFORMATION = "RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING";
private static final String SECURITY_PROVIDER = "BC";
private static final String DIGEST_ALGORITHM = "SHA-256";
private static final String MASKING_FUNCTION = "MGF1";

Das Code-Snippet, bei dem der Fehler auftritt, lautet wie folgt:

private byte[] decryptSecretKeyData(byte[] encryptedSecretKey, byte[] iv, PrivateKey privateKey) throws Exception {

        try {
            Cipher rsaCipher = Cipher.getInstance(TRANSFORMATION, SECURITY_PROVIDER);

            System.out.println("Cipher block initialized"); - **Printed**
            PSource pSrc = (new PSource.PSpecified(iv));
            System.out.println("PSource inisitialized"); - **Printed**


            rsaCipher.init(Cipher.DECRYPT_MODE, privateKey,
                    new OAEPParameterSpec(DIGEST_ALGORITHM, MASKING_FUNCTION,
                            MGF1ParameterSpec.SHA256, pSrc));


            System.out.println("Here after cipher initilaization");  - **Not Printed***

            return rsaCipher.doFinal(encryptedSecretKey);
        } catch (GeneralSecurityException e) {
            System.out.println("GeneralSecurityException is "+e.getMessage());
            throw new Exception("Failed to decrypt AES secret key using RSA.", e);
        }
    }

Ich stecke hier fest und kann die OAEP-Transformation nicht entschlüsseln.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage