[PATCH 1/2] include: Add OCSP definitions.

Hans Leidekker hans at codeweavers.com
Fri Mar 4 06:57:14 CST 2022


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 include/wincrypt.h | 96 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 96 insertions(+)

diff --git a/include/wincrypt.h b/include/wincrypt.h
index 456f2f14446..f5f05c1f8d0 100644
--- a/include/wincrypt.h
+++ b/include/wincrypt.h
@@ -608,6 +608,97 @@ typedef struct _CERT_SIGNED_CONTENT_INFO {
     CRYPT_BIT_BLOB             Signature;
 } CERT_SIGNED_CONTENT_INFO, *PCERT_SIGNED_CONTENT_INFO;
 
+typedef struct _OCSP_SIGNATURE_INFO {
+    CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
+    CRYPT_BIT_BLOB             Signature;
+    DWORD                      cCertEncoded;
+    PCERT_BLOB                 rgCertEncoded;
+} OCSP_SIGNATURE_INFO, *POCSP_SIGNATURE_INFO;
+
+typedef struct _OCSP_SIGNED_REQUEST_INFO {
+    CRYPT_DER_BLOB       ToBeSigned;
+    POCSP_SIGNATURE_INFO pOptionalSignatureInfo;
+} OCSP_SIGNED_REQUEST_INFO, *POCSP_SIGNED_REQUEST_INFO;
+
+typedef struct _OCSP_CERT_ID {
+    CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
+    CRYPT_HASH_BLOB            IssuerNameHash;
+    CRYPT_HASH_BLOB            IssuerKeyHash;
+    CRYPT_INTEGER_BLOB         SerialNumber;
+} OCSP_CERT_ID, *POCSP_CERT_ID;
+
+typedef struct _OCSP_REQUEST_ENTRY {
+    OCSP_CERT_ID    CertId;
+    DWORD           cExtension;
+    PCERT_EXTENSION rgExtension;
+} OCSP_REQUEST_ENTRY, *POCSP_REQUEST_ENTRY;
+
+#define OCSP_REQUEST_V1 0
+
+typedef struct _OCSP_REQUEST_INFO {
+    DWORD                dwVersion;
+    PCERT_ALT_NAME_ENTRY pRequestorName;
+    DWORD                cRequestEntry;
+    POCSP_REQUEST_ENTRY  rgRequestEntry;
+    DWORD                cExtension;
+    PCERT_EXTENSION      rgExtension;
+} OCSP_REQUEST_INFO, *POCSP_REQUEST_INFO;
+
+#define OCSP_SUCCESSFUL_RESPONSE        0
+#define OCSP_MALFORMED_REQUEST_RESPONSE 1
+#define OCSP_INTERNAL_ERROR_RESPONSE    2
+#define OCSP_TRY_LATER_RESPONSE         3
+#define OCSP_SIG_REQUIRED_RESPONSE      5
+#define OCSP_UNAUTHORIZED_RESPONSE      6
+
+#define szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE   "1.3.6.1.5.5.7.48.1.1"
+
+typedef struct _OCSP_RESPONSE_INFO {
+    DWORD            dwStatus;
+    LPSTR            pszObjId;
+    CRYPT_OBJID_BLOB Value;
+} OCSP_RESPONSE_INFO, *POCSP_RESPONSE_INFO;
+
+typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFO {
+    CRYPT_DER_BLOB      ToBeSigned;
+    OCSP_SIGNATURE_INFO SignatureInfo;
+} OCSP_BASIC_SIGNED_RESPONSE_INFO, *POCSP_BASIC_SIGNED_RESPONSE_INFO;
+
+typedef struct _OCSP_BASIC_REVOKED_INFO {
+    FILETIME RevocationDate;
+    DWORD    dwCrlReasonCode;
+} OCSP_BASIC_REVOKED_INFO, *POCSP_BASIC_REVOKED_INFO;
+
+typedef struct _OCSP_BASIC_RESPONSE_ENTRY {
+    OCSP_CERT_ID CertId;
+    DWORD        dwCertStatus;
+    union {
+        POCSP_BASIC_REVOKED_INFO pRevokedInfo;
+    } DUMMYUNIONNAME;
+    FILETIME        ThisUpdate;
+    FILETIME        NextUpdate;
+    DWORD           cExtension;
+    PCERT_EXTENSION rgExtension;
+} OCSP_BASIC_RESPONSE_ENTRY, *POCSP_BASIC_RESPONSE_ENTRY;
+
+#define OCSP_BASIC_RESPONSE_V1          0
+#define OCSP_BASIC_BY_NAME_RESPONDER_ID 1
+#define OCSP_BASIC_BY_KEY_RESPONDER_ID  2
+
+typedef struct _OCSP_BASIC_RESPONSE_INFO {
+    DWORD                       dwVersion;
+    DWORD                       dwResponderIdChoice;
+    union {
+        CERT_NAME_BLOB  ByNameResponderId;
+        CRYPT_HASH_BLOB ByKeyResponderId;
+    } DUMMYUNIONNAME;
+    FILETIME                   ProducedAt;
+    DWORD                      cResponseEntry;
+    POCSP_BASIC_RESPONSE_ENTRY rgResponseEntry;
+    DWORD                      cExtension;
+    PCERT_EXTENSION            rgExtension;
+} OCSP_BASIC_RESPONSE_INFO, *POCSP_BASIC_RESPONSE_INFO;
+
 typedef struct _CRL_CONTEXT {
     DWORD      dwCertEncodingType;
     BYTE      *pbCrlEncoded;
@@ -3179,6 +3270,11 @@ typedef struct _CTL_FIND_SUBJECT_PARA
 #define CMC_ADD_EXTENSIONS                   ((LPCSTR)62)
 #define CMC_ADD_ATTRIBUTES                   ((LPCSTR)63)
 #define X509_CERTIFICATE_TEMPLATE            ((LPCSTR)64)
+#define OCSP_SIGNED_REQUEST                  ((LPCSTR)65)
+#define OCSP_REQUEST                         ((LPCSTR)66)
+#define OCSP_RESPONSE                        ((LPCSTR)67)
+#define OCSP_BASIC_SIGNED_RESPONSE           ((LPCSTR)68)
+#define OCSP_BASIC_RESPONSE                  ((LPCSTR)69)
 #define CNG_RSA_PUBLIC_KEY_BLOB              ((LPCSTR)72)
 #define X509_OBJECT_IDENTIFIER               ((LPCSTR)73)
 #define PKCS7_SIGNER_INFO                    ((LPCSTR)500)
-- 
2.30.2




More information about the wine-devel mailing list