我正在尝试使用Android Keystore创建密钥对,以下是我的代码:
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
end.add(Calendar.YEAR, 10);
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(MyApplication.getInstance())
.setAlias(m_alias)
.setSubject(new X500Principal("CN="+m_alias))
.setSerialNumber(BigInteger.ONE)
.setStartDate(start.getTime())
.setEndDate(end.getTime())
.build();
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
generator.initialize(spec);
KeyPair keyPair = generator.generateKeyPair();
运行时我遇到了这个异常:
java.security.ProviderException: Failed to generate self-signed certificate
at android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi.generateKeyPair(AndroidKeyStoreKeyPairGeneratorSpi.java:504)
at java.security.KeyPairGenerator$KeyPairGeneratorImpl.generateKeyPair(KeyPairGenerator.java:276)
....
Caused by: java.lang.IllegalArgumentException: invalid date string: Unparseable date: "af`cab`hdedfGMT+00:00" (at offset 0)
at com.android.org.bouncycastle.asn1.ASN1UTCTime.<init>(ASN1UTCTime.java:115)
at com.android.org.bouncycastle.asn1.DERUTCTime.<init>(DERUTCTime.java:23)
at com.android.org.bouncycastle.asn1.x509.Time.<init>(Time.java:67)
我搜索了这个问题,但没有找到任何可能的解决方案,请你帮忙解决这个问题。
注意: - 设备:HTC M9,Android版本号为6.0,构建编号为3.35.401.12
- 日期格式示例:开始时间:2016年3月12日星期六23:10:08 GMT+03:00。结束时间:2026年3月12日星期四23:10:08 GMT+03:00。
提前感谢您的帮助。
cab
hdedfGMT+00:00”似乎是无意义的。 - Bryan