Ich erhalte von einem Web-Service (von mir selbst erstellt) einen RSA PrivateKey PKCS # 8, der in einer Basis 64 String kodiert ist. Meine Android App muss diesen Schlüssel irgendwo sicher in das Telefon speichern.Android KeyStore - So speichern Sie einen RSA PrivateKey
Ab der Version 4.3 von Android ist es möglich, Schlüssel mit der neuen KeyStore-API zu speichern. Ich habe eine article with code axample gefunden, die zeigt, wie man ein KeyPair mit der Spezifikation erzeugt, die benötigt wird, um die Schlüssel zu speichern. Und danach, um die Schlüssel wiederzubekommen.
// generate a key pair
Context ctx = getContext();
Calendar notBefore = Calendar.getInstance()
Calendar notAfter = Calendar.getInstance();
notAfter.add(1, Calendar.YEAR);
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(ctx)
.setAlias("key1")
.setSubject(
new X500Principal(String.format("CN=%s, OU=%s", alais,
ctx.getPackageName())))
.setSerialNumber(BigInteger.ONE).setStartDate(notBefore.getTime())
.setEndDate(notAfter.getTime()).build();
KeyPairGenerator kpGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
kpGenerator.initialize(spec);
KeyPair kp = kpGenerator.generateKeyPair();
// in another part of the app, access the keys
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry)keyStore.getEntry("key1", null);
RSAPublicKey pubKey = (RSAPublicKey)keyEntry.getCertificate().getPublicKey();
RSAPrivateKey privKey = (RSAPrivateKey) keyEntry.getPrivateKey();
Aber ich verstehe nicht, wie kann ich einen vorhandenen Schlüssel zu speichern. Kann mir jemand helfen? Vielen Dank im Voraus
http://nelenkov.blogspot.com/2012/05/storing-application-secrets-in-androids.html –