2017-06-02 3 views
1

Ich baue einen Keystore, ich werde meine Autorisierung und Refresh-Token in verstecken. Ich bin auf API 19. Schauen Sie sich die Beispiele für KeyPairGeneratorSpec. Die meisten Beispiele verwenden ein Dummy-Zertifikat (X500Principal). Ich habe nicht viel mit Zertifikaten gearbeitet. Ich bin mir nicht sicher, wo ich dieses "Thema" bekomme. Wird dieses Zertifikat für die Generierung eines signierten APK verwendet? IE https://developer.android.com/studio/publish/app-signing.html
Oder bekomme ich ein Zertifikat von einer Gruppe wie CA?Android Keystore KeyPairGeneratorSpec Wo bekomme ich X500Principal

Das sagte, sobald ich diese Daten habe, wie kann ich es in diese X500 verwandeln? Wie ordne ich die Daten dem x500 zu?

Die erste wird problematisch aufgrund der Art und Weise, wie meine Firma App Signing behandelt. Ich bin mir nicht sicher, ob ich Zugang dazu haben werde.

Nach

KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this) 
         .setAlias(k) 
         .setSubject(new X500Principal("CN=Sample Name, O=Android Authority")) 
         .setSerialNumber(BigInteger.ONE) 
         .setStartDate(start.getTime()) 
         .setEndDate(end.getTime()) 
         .build(); 
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore"); 

Antwort

1

Signieren APK für die Verteilung auf dem Google Play Store und sensible Benutzerdaten Verschlüsseln des AndroidKeyStore verwenden, sind verschieden. Ersteres erfolgt über den Java-Keystore (jks) auf Ihrem Dev-Computer (d. H. Ihren Laptop oder Desktop-Computer), während der andere auf dem Mobilteil stattfindet, auf dem Ihre App installiert ist.

Sie müssen keine Zertifizierungsstelle für die X500Principal erhalten. Der Beispielcode Sie zitiert ist richtig, und Sie würden es einfach ersetzen mit zum Beispiel Ihre Anwendungsnamen und Organisation:

new X500Principal("CN=StarWind, O=StarWindOrganization"); 

Wenn Sie wollen verstehen, was die verschiedenen Abkürzungen bedeuten, entnehmen Sie bitte der Wikipedia entry for Lightweight Directory Access Protocol aber nur für Beispiel: "CN" bedeutet "allgemeiner Name" und "O" bedeutet Organisation. Die Attribute, die Sie hier angeben, dienen lediglich dazu, einen eindeutigen Eintrag zu bilden, ähnlich wie Sie in Java einen eindeutigen Paketnamen wie com.starwind.myapp bilden.

Wenn Sie es verwirrend finden, können Sie einen Blick auf Scytale werfen, die ein Wrapper um den Android KeyStore ist. Selbst wenn Sie die Bibliothek nicht verwenden, ist der Code dort sehr nützlich, um herauszufinden, wie Sie den KeyStore verwenden.

Verwandte Themen