in android/iotdevicesdk/src/main/java/software/amazon/awssdk/iot/AndroidKeyChainHandlerBuilder.java [66:105]
private static String getCertificateContent(Context context, String alias){
X509Certificate[] myCertChain = null;
// Get Certificate from KeyChain
try {
myCertChain = KeyChain.getCertificateChain(context, alias);
if (myCertChain != null){
// Convert Certificate to PEM formated String
String certificateString = new String(StringUtils.base64Encode(myCertChain[0].getEncoded()));
String certificate = "-----BEGIN CERTIFICATE-----\n" + certificateString + "\n-----END CERTIFICATE-----\n";
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"Certificate retreived from Android KeyChain using Alias '" + alias + "'.");
return certificate;
} else {
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"x509Certificate with alias: '" + alias +
"' either does not exist in Android KeyChain or permission has not been granted.");
}
} catch (KeyChainException ex){
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"KeyChainException encountered during getCertificateContent: " + ex.getMessage());
} catch (IllegalStateException ex){
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"IllegalStateException encountered during getCertificateContent: " + ex.getMessage());
} catch (InterruptedException ex){
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"InterruptedException encountered during getCertificateContent: " + ex.getMessage());
} catch (CertificateEncodingException ex){
Log.log(LogLevel.Debug,
LogSubject.JavaAndroidKeychain,
"CertificateEncodingException encountered during getCertificateContent: " + ex.getMessage());
}
return null;
}