Subject: CAdES implementation. Complete Revocation References attribute.

From: "Pavel V. Smirnov" <[email-masked]>
Date: Tue, 4 Mar 2008 16:46:04 +0300

Hello all and personally Nick!

I have a couple new questions regarding CAdES implementation.

Consider section 6.2.2 of ETSI 101 733 v1.7.3 (excerpt):

CompleteRevocationRefs shall contain one CrlOcspRef for the
signing-certificate, followed by one

for each OtherCertID in the CompleteCertificateRefs attribute. The second
and subsequent CrlOcspRef

fields shall be in the same order as the OtherCertID to which they relate.
At least one of CRLListID or

OcspListID or OtherRevRefs should be present for all but the "trusted" CA of
the certificate path.

The first question.

It seems to me that one can include an empty CrlOcspRef (without any
CRLListID or

OcspListID or OtherRevRefs) for a "trusted" CA. Am I right? If one cannot do
like that, then all "trusted" CA certificates have to be placed at the end
of CompleteCertificateRefs SEQUENCE. Which way is right? Or may be both?

The second question.

It's quite clear how to compose this attribute in a simple CRL-only case.
Now, let us use OCSP. Where should one place a certificate of
OCSP-responder? It would be great if one could place a reference to this
certificate in CompleteCertificateRefs (but it is in some way prohibited by
the phrase "It references the full set of CA

certificates that : " in section 6.2.1). Let us assume that this certificate
is no-check and one does not need to place the corresponding CrlOcspRef into
CompleteRevocationRefs attribute. Then one have to equate such
OCSP-responder certificate to a "trusted" CA and either include an empty
CrlOcspRef in CompleteRevocationRefs or place the certificate at the end of
CompleteCertificateRefs SEQUENCE. How should I solve this?

Pavel Smirnov

Crypto-Pro
Tel./Fax: +7 495 780-4820
WWW:  <http://www.cryptopro.ru/> http://www.CryptoPro.ru
e-mail:  <mailto:[email-masked]> [email-masked]

---

From: "Peter Rybar" <[email-masked]>
Date: Wed, 5 Mar 2008 09:42:00 +0100

Hallo,

It is easy.

RFC 2560

4.2.1  ASN.1 Specification of the OCSP Response

BasicOCSPResponse       ::= SEQUENCE {

      tbsResponseData      ResponseData,

      signatureAlgorithm   AlgorithmIdentifier,

      signature            BIT STRING,

      certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }

It means: you must use the OPTIONAL certs for this purpose.

Similar problem is solving with timestamp, where the certs and CRL for timestamp validation are included in the timestamp and not in the signature which is timestamped.

Peter

  _____  

From: [email-masked] [mailto:[email-masked]] On Behalf Of Pavel V. Smirnov
Sent: Tuesday, March 04, 2008 2:46 PM
To: [email-masked]; [email-masked]
Subject: CAdES implementation. Complete Revocation References attribute.

CompleteRevocationRefs shall contain one CrlOcspRef for the signing-certificate, followed by one

for each OtherCertID in the CompleteCertificateRefs attribute. The second and subsequent CrlOcspRef

fields shall be in the same order as the OtherCertID to which they relate. At least one of CRLListID or

OcspListID or OtherRevRefs should be present for all but the "trusted" CA of the certificate path.

The first question.

It seems to me that one can include an empty CrlOcspRef (without any CRLListID or

OcspListID or OtherRevRefs) for a “trusted” CA. Am I right? If one cannot do like that, then all “trusted” CA certificates have to be placed at the end of CompleteCertificateRefs SEQUENCE. Which way is right? Or may be both?

The second question.

It’s quite clear how to compose this attribute in a simple CRL-only case. Now, let us use OCSP. Where should one place a certificate of OCSP-responder? It would be great if one could place a reference to this certificate in CompleteCertificateRefs (but it is in some way prohibited by the phrase “It references the full set of CA

certificates that … ” in section 6.2.1). Let us assume that this certificate is no-check and one does not need to place the corresponding CrlOcspRef into CompleteRevocationRefs attribute. Then one have to equate such OCSP-responder certificate to a “trusted” CA and either include an empty CrlOcspRef in CompleteRevocationRefs or place the certificate at the end of CompleteCertificateRefs SEQUENCE. How should I solve this?

Pavel Smirnov

Crypto-Pro