23.11.2006 12:22:59Создание OCSP запроса для CryptoPro OSCP-Server Ответов: 1
Kirill
Здравствуйте.

Возникло несколько вопросов по созданию OCSP запроса.

1й,теоретический: CryptoPro-OCSP Server в полной мере следует нотации rfc2560 4.1.1?

2й, практический:
В том же rfc2560 4.1.1 идет описание структуры, которую ожидает OCSP responder:
OCSPRequest ::= SEQUENCE {
tbsRequest TBSRequest,
optionalSignature [0] EXPLICIT Signature OPTIONAL }

TBSRequest ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
requestorName [1] EXPLICIT GeneralName OPTIONAL,
requestList SEQUENCE OF Request,
requestExtensions [2] EXPLICIT Extensions OPTIONAL }

Signature ::= SEQUENCE {
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING,
certs [0] EXPLICIT SEQUENCE OF Certificate
OPTIONAL}

Version ::= INTEGER { v1(0) }

Request ::= SEQUENCE {
reqCert CertID,
singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }

CertID ::= SEQUENCE {
hashAlgorithm AlgorithmIdentifier,
issuerNameHash OCTET STRING, -- Hash of Issuer's DN
issuerKeyHash OCTET STRING, -- Hash of Issuers public key
serialNumber CertificateSerialNumber }

Соответственно, надо сделать соответствие структур к запросу. Верны ли следующие реализации? Какие типы данных ожидает CryptoPro-OCSP Server?

typedef struct
{
TBSRequest tbsRequest;
Signature *optionalSignature;
} OCSPRequest;

typedef struct
{
DWORD version;
CERT_NAME_BLOB requestorName;
Request *requestList;
CERT_EXTENSION *requestExtensions;
} TBSRequest;

typedef struct
{
CRYPT_ALGORITHM_IDENTIFIER signatureAlgorithm;
CRYPT_BIT_BLOB *signature;
CERT_CONTEXT *certs;
} Signature;


typedef struct
{
CRYPT_ALGORITHM_IDENTIFIER hashAlgorithm;
CERT_NAME_BLOB issuerNameHash;
CERT_PUBLIC_KEY_INFO issuerKeyHash;
CRYPT_INTEGER_BLOB certificateSerialNumber;
} CertID;

typedef struct
{
CertID *reqCert;
CERT_EXTENSION *singleRequestExtensions;
} Request;

 
Ответы:
24.11.2006 11:44:14Kirill
Это не распространяемая информация?