gpt4 book ai didi

java - 在 Android 上创建 PKCS10CertificationRequest

转载 作者:搜寻专家 更新时间:2023-11-01 08:17:10 25 4
gpt4 key购买 nike

我对 android 和 java 都很陌生,所以希望我错过了这里很容易。我只想创建一个简单的 PKCS10证书签名请求。我有一些代码可以编译和在我的 ubuntu box (java-6-openjdk) 上运行,但抛出一个空指针android模拟器中的异常:

        KeyPair myKeyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();
X500Principal subject = new X500Principal("CN=Test V3 Certificate");
PKCS10CertificationRequest csr = new PKCS10CertificationRequest
( "SHA1withRSA",
subject,
myKeyPair.getPublic(),
null,
myKeyPair.getPrivate()
);

byte[] outBytes = csr.getEncoded();
return new String(outBytes);

在调试器中,我可以看到我显然构建了一个PKCS10CertificationRequest,但我不能用它做任何事情(比如getEncoded() 甚至 toString()) 没有错误。当我调用 getEncoded() 时,它在安卓模拟器;这是堆栈跟踪:

06-22 04:41:06.143: WARN/System.err(337): java.lang.NullPointerException: obj == null
06-22 04:41:06.213: WARN/System.err(337): at org.bouncycastle.asn1.ASN1Collection.addObject(ASN1Collection.java:95)
06-22 04:41:06.353: WARN/System.err(337): at org.bouncycastle.asn1.DERSequence.<init>(DERSequence.java:34)
06-22 04:41:06.433: WARN/System.err(337): at org.bouncycastle.asn1.x509.AlgorithmIdentifier.toASN1Object(AlgorithmIdentifier.java:
124)
06-22 04:41:06.453: WARN/System.err(337): at org.bouncycastle.asn1.ASN1Encodable.getDERObject(ASN1Encodable.java:
77)
06-22 04:41:06.483: WARN/System.err(337): at org.bouncycastle.asn1.DEROutputStream.writeObject(DEROutputStream.java:
74)
06-22 04:41:06.523: WARN/System.err(337): at org.bouncycastle.asn1.DERSequence.encode(DERSequence.java:70)
06-22 04:41:06.544: WARN/System.err(337): at org.bouncycastle.asn1.DEROutputStream.writeObject(DEROutputStream.java:
74)
06-22 04:41:06.593: WARN/System.err(337): at org.bouncycastle.jce.PKCS10CertificationRequest.getEncoded(PKCS10CertificationRequest.java:
443)

我在 API 级别 7 和 8 上都试过了。我知道有一个我可以发布关于各种版本的大量其他细节我的系统的组成部分。就像我说的,我是新手,所以现在我更想寻找一个前进的方向,而不是一个最终的结果回答。

非常感谢,

亚当麦克勒

最佳答案

您遇到了 BouncyCaSTLe 错误。我不确定它是否已修复。我最终使用了自己的 PKCS10CertificateRequest。您只需要在构造函数中更改这一行,

   this.sigAlgId = new AlgorithmIdentifier(sigOID, null);

   this.sigAlgId = new AlgorithmIdentifier(sigOID);

关于java - 在 Android 上创建 PKCS10CertificationRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3095961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com