[BouncyCastle] PKCS10CertificationRequest.getEncoded()返回什么编码?

时间:2015-06-12 18:50:20

标签: java encoding cryptography bouncycastle

是否会返回DER encoded数据或其他格式?

Javadoc我已经找到了一些有待细节的东西......

1 个答案:

答案 0 :(得分:3)

嗯,尽管有人认为这个问题适合投票,但我会在这里发布答案给后人。

至少对于v1.52,org.bouncycastle.pkcs.PKCS10CertificationRequest#getEncoded()实现为:

public byte[] More ...getEncoded()
    throws IOException
{
    return certificationRequest.getEncoded();
}

这会调用org.bouncycastle.asn1.pkcs.CertificationRequest#getEncoded(),从而产生继承的方法org.bouncycastle.asn1.ASN1Object#getEncoded()。这个方法实际上有一些Javadoc,它表示"返回此对象的默认BER或DER编码"。

我不能完全确定这是否能保证DER编码,所以我做了以下几点:

private byte[] makeDEREncodedRequest(final PKCS10CertificationRequest request) {
    try {
        return request.toASN1Structure().getEncoded(ASN1Encoding.DER);
    } catch (IOException e) {
        // ... <Exception handling code> ...
    }
}