Reputation: 337
How to get that base64 public key through Android API?
Upvotes: 2
Views: 2151
Reputation: 75629
To get your public certificate you need to ise PackageManager
in your code:
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(getPackageName(),
PackageManager.GET_SIGNATURES);
Signature[] signatures = packageInfo.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = CertificateFactory.getInstance("X509");
X509Certificate c = (X509Certificate)cf.generateCertificate(input);
PublicKey key = c.getPublicKey();
...
} catch ( Exception e) {
e.printStackTrace();
}
Upvotes: 5