2017-03-07 4 views
0

Ich verwende folgende Methode private Schlüssel aus geheimen Schlüsseln Spongy Schloss zu extrahieren:SpongyCastle private Schlüssel Extraktion sehr langsam

public static PGPPrivateKey findPrivateKey(PGPSecretKey pgpSecKey, char[] pass) 
    throws PGPException 
{ 
    if (pgpSecKey == null) return null; 

    PBESecretKeyDecryptor decryptor = new BcPBESecretKeyDecryptorBuilder(new BcPGPDigestCalculatorProvider()).build(pass); 
    return pgpSecKey.extractPrivateKey(decryptor); 
} 

jedoch die letzte Zeile des Codes läuft sehr langsam (aproximately 90 Sekunden) auf Android. Gibt es einen besseren Weg, um PGPPrivateKey aus verschlüsselten geheimen Schlüsseln zu extrahieren? Vielleicht mache ich einen Fehler beim Exportieren eines geheimen Schlüssels von Linux, aber ich denke nicht, dass dies das Problem ist, da ich den einfachen Befehl gpg --export-secret-keys > key.skr verwende. Irgendwelche Ideen zu was könnte dieses Problem verursachen?

Antwort

2

Ich bemerkte eine ähnliche langsame Leistung bei der Privaten PKCS8-Schlüsselentschlüsselung nach dem Upgrade des Android Gradle-Plugins von 2.2.1 auf 3.3.0.

Die langsame Leistung wird von Instant Run verursacht. Wenn Instant Run deaktiviert ist, benötigt die Entschlüsselung ~ 1 Sekunde.