本文介紹了如何在簽約bouncyCastle之前添加ASN.1擴(kuò)展?的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
對,所以我完全被難住了。通常,當(dāng)我簽署證書時(shí),我會(huì)使用如下所示的ASN.1來指定特定規(guī)則,例如,可以用于物聯(lián)網(wǎng)。
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/*
我通常使用一個(gè)名為xca的程序,但在這種情況下,我一直在使用bouncyCastle編碼,并且在將其導(dǎo)入到X509v3certifateBuilder中時(shí)一直非常困難。我知道我應(yīng)該使用.addExtension,但我不是特別確定是否應(yīng)該將規(guī)則存儲在.txt文件中,或者是否應(yīng)該將其存儲在數(shù)組中并以某種方式解析它?
推薦答案
實(shí)際上您使用的是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
這篇關(guān)于如何在簽約bouncyCastle之前添加ASN.1擴(kuò)展?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,