哈喽,我在使用华为Mate10Pro(Android 10)<bouncycastle>库时发现异常问题。
在判断SDK版本大于等于Android-P获取KeyFactory时,Mate10Pro异常报错,同等判断条件下VIVO,OPPO,SAMSUNG无碍,辛苦帮忙确定一下是否是定制化问题,以及是否华为全机型会有该问题,感谢。
public static KeyFactory getInstance(final Provider provider) {
KeyFactory keyFactory;
try {
String ALGORITHM = "ECDSA"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
keyFactory = KeyFactory.getInstance(ALGORITHM);
} else {
keyFactory = KeyFactory.getInstance(ALGORITHM, provider);
return keyFactory;
} catch (NoSuchAlgorithmException ex) {
Sentry.capture(ex);
throw new AssertionError(algorithmAssertionMsg, ex);
public final class CustomCastleProvider {
public static Provider getInstance() {
return Holder.INSTANCE;
private static class Holder {
private static final Provider INSTANCE;
static {
Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);
Provider p = Security.getProvider(BouncyCastleProvider.PROVIDER_NAME);
INSTANCE = (p != null) ? p : new BouncyCastleProvider();
INSTANCE.put("MessageDigest.TRON-KECCAK-256", "org.tron.common.crypto" +
".cryptohash.Keccak256");
INSTANCE.put("MessageDigest.TRON-KECCAK-512", "org.tron.common.crypto" +
".cryptohash.Keccak512");
}