How to add ASN.1 extensions before signing with bouncycastle?(如何在签约bouncyCastle之前添加ASN.1扩展?)
问题描述
对,所以我完全被难住了。通常,当我签署证书时,我会使用如下所示的ASN.1来指定特定规则,例如,可以用于物联网。
1.2.3.4=ASN1:SEQUENCE:seq_sect
[seq_sect]
one=SEQUENCE:do_one
two=SEQUENCE:do_two
[do_one]
field.1 = UTF8:field1/*
field.2 = UTF8:field2/*
[do_two]
field.1 = UTF8:field1/*
field.2 = UTF8:field2/*
我通常使用一个名为xca的程序,但在这种情况下,我一直在使用bouncyCastle编码,并且在将其导入到X509v3certifateBuilder中时一直非常困难。我知道我应该使用.addExtension,但我不是特别确定是否应该将规则存储在.txt文件中,或者是否应该将其存储在数组中并以某种方式解析它?
推荐答案
实际上您使用的是xca包装的openssl。只有OpenSSL对ASN.1使用这种特定的基于文本的"配置"格式。对于BouncyCastle,您必须改为编写类似于(未测试)的代码:
ASN1EncodableVector one = new ASN1EncodableVector();
one.add(new DERUTF8String("field1/*"));
one.add(new DERUTF8String("field2/*"));
// if two is really identical to one, just reuse it; otherwise do something different
ASN1EncodableVector outer = new ASN1EncodableVector();
outer.add(new DERSequence(one));
outer.add(new DERSequence(two)); // or one again
builder.addExtension (oid, critical, new DERSequence(outer));
相似How to add PrivateKeyUsage extension to a certificate using bouncycastle in java?和Creating Custom X509 v3 Extensions in Java with Bouncy Castle
这篇关于如何在签约bouncyCastle之前添加ASN.1扩展?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在签约bouncyCastle之前添加ASN.1扩展?


- 未找到/usr/local/lib 中的库 2022-01-01
- 转换 ldap 日期 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- 获取数字的最后一位 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01