Ich versuche zu verstehen, wie Java-Sicherheitsanbieter in Android arbeiten. Ich möchte alle Aufrufe von Cipher.getInstance () erzwingen, um eine Chiffre mit spongy castle als Provider zurückzugeben. Ich habe kein Glück.
Der folgende Code gibt eine Chiffre mit dem Provider "AndroidKeyStoreBCWorkaround Version 1.0" zurück, aber ich möchte, dass der Provider SpongyCastle ist.
Der Grund, warum ich dies tun möchte, ist, dass ich eine Bibliothek habe, die javax.crypto.Cipher.getInstance () mehrfach aufruft. Ich möchte, dass alle diese Anrufe in das schwammige Schloss gehen, ohne die Bibliothek neu schreiben zu müssen, um "SC" als Provider explizit anzugeben.
%Vor%Sie müssen nur eine andere Klasse schreiben, die javax.crypto.Cipher.getInstance aufruft und ihr die Variable "SC" übergibt. Sie können dies tun, ohne Änderungen an der ursprünglichen Bibliothek vorzunehmen, und zwar in derselben Datei wie der von Ihnen bereitgestellte Code. Obwohl diese Antwort zu einfach erscheint, gibt es vielleicht andere Aspekte zu Ihrer Frage? Das ist sowieso die Antwort.
Tags und Links java android security encryption