2015-06-12 2 views

ответ

2

Ну, несмотря на то, что кто-то счел нужным вниз голосовать вопрос, я выкладываю ответьте здесь для потомков.

По крайней мере 1.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> ... 
    } 
} 
+0

Я предполагаю, что это * действительно * возвращение DER? Вы не говорите в ответ. Я предполагаю, что причина, по которой кто-то ниспроверг, заключается в том, что вы можете ожидать, что запрос на сертификат PKCS # 10 будет возвращен при вызове 'getEncoded()'. Для этого и предназначен класс. Вам нужно всего лишь посмотреть на стандарт PKCS # 10, чтобы узнать, что в нем. –

Смежные вопросы