mirror of
https://git.freebsd.org/ports.git
synced 2025-04-30 02:26:38 -04:00
181 lines
4.1 KiB
C
181 lines
4.1 KiB
C
--- src/pki_x509.c 2024-08-14 14:45:55 +0000
|
|
+++ ../libpki-0.9.2-patched/src/pki_x509.c 2024-08-14 15:08:49 +0000
|
|
@@ -33,22 +33,75 @@
|
|
{ NULL, -1 }
|
|
};
|
|
|
|
-PKI_TBS_ASN1 * __datatype_get_asn1_ref(PKI_DATATYPE type,
|
|
- const void * v) {
|
|
+const ASN1_ITEM * _get_ossl_item(PKI_DATATYPE type) {
|
|
+
|
|
+ const ASN1_ITEM * it = NULL;
|
|
+
|
|
+ // Gets the ASN1_ITEM * needed to get the tbSigned
|
|
+ switch (type) {
|
|
+
|
|
+ case PKI_DATATYPE_X509_CERT : {
|
|
+ it = ASN1_ITEM_rptr(X509_CINF);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_CRL : {
|
|
+ it = ASN1_ITEM_rptr(X509_CRL_INFO);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_REQ : {
|
|
+ it = ASN1_ITEM_rptr(X509_REQ_INFO);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_OCSP_REQ : {
|
|
+ it = ASN1_ITEM_rptr(OCSP_REQINFO);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_OCSP_RESP : {
|
|
+ it = ASN1_ITEM_rptr(OCSP_RESPDATA);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_PRQP_REQ : {
|
|
+ it = ASN1_ITEM_rptr(PKI_PRQP_REQ);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_PRQP_RESP : {
|
|
+ it = ASN1_ITEM_rptr(PKI_PRQP_RESP);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_CMS : {
|
|
+ it = ASN1_ITEM_rptr(CMS_ContentInfo);
|
|
+ } break;
|
|
+
|
|
+ case PKI_DATATYPE_X509_KEYPAIR: {
|
|
+ it = NULL;
|
|
+ } break;
|
|
+
|
|
+ default: {
|
|
+ PKI_DEBUG("Datatype Not Supported (Type: %d)", type);
|
|
+ return NULL;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ // Return the Pointer
|
|
+ return it;
|
|
+
|
|
+}
|
|
+
|
|
+PKI_TBS_ASN1 * __datatype_get_asn1_ref(PKI_DATATYPE type,
|
|
+ const void * v) {
|
|
|
|
PKI_TBS_ASN1 * ret = NULL;
|
|
const ASN1_ITEM * it = NULL;
|
|
const void * p = NULL;
|
|
|
|
+ if ((it = _get_ossl_item(type)) == NULL) {
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
// Gets the ASN1_ITEM * needed to get the tbSigned
|
|
switch (type) {
|
|
|
|
case PKI_DATATYPE_X509_CERT : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) X509_CINF_it;
|
|
-#else
|
|
- it = &X509_CINF_it;
|
|
-#endif
|
|
#if OPENSSL_VERSION_NUMBER > 0x1010000fL
|
|
p = &(((LIBPKI_X509_CERT *)v)->cert_info);
|
|
#else
|
|
@@ -57,11 +110,6 @@
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_CRL : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) X509_CRL_INFO_it;
|
|
-#else
|
|
- it = &X509_CRL_INFO_it;
|
|
-#endif
|
|
#if OPENSSL_VERSION_NUMBER > 0x1010000fL
|
|
p = &(((PKI_X509_CRL_VALUE *)v)->crl);
|
|
#else
|
|
@@ -70,11 +118,6 @@
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_REQ : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) X509_REQ_INFO_it;
|
|
-#else
|
|
- it = &X509_REQ_INFO_it;
|
|
-#endif
|
|
#if OPENSSL_VERSION_NUMBER > 0x1010000fL
|
|
p = &(((LIBPKI_X509_REQ *)v)->req_info);
|
|
#else
|
|
@@ -83,11 +126,6 @@
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_OCSP_REQ : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) OCSP_REQINFO_it;
|
|
-#else
|
|
- it = &OCSP_REQINFO_it;
|
|
-#endif
|
|
#if OPENSSL_VERSION_NUMBER > 0x1010000fL
|
|
p = &(((PKI_X509_OCSP_REQ_VALUE *)v)->tbsRequest);
|
|
#else
|
|
@@ -96,11 +134,6 @@
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_OCSP_RESP : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) OCSP_RESPDATA_it;
|
|
-#else
|
|
- it = &OCSP_RESPDATA_it;
|
|
-#endif
|
|
#if OPENSSL_VERSION_NUMBER > 0x1010000fL
|
|
p = &(((PKI_OCSP_RESP *)v)->bs->tbsResponseData);
|
|
#else
|
|
@@ -109,29 +142,14 @@
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_PRQP_REQ : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) PKI_PRQP_REQ_it;
|
|
-#else
|
|
- it = &PKI_PRQP_REQ_it;
|
|
-#endif
|
|
p = ((PKI_X509_PRQP_REQ_VALUE *)v)->requestData;
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_PRQP_RESP : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) PKI_PRQP_RESP_it;
|
|
-#else
|
|
- it = &PKI_PRQP_RESP_it;
|
|
-#endif
|
|
p = ((PKI_X509_PRQP_RESP_VALUE *)v)->respData;
|
|
} break;
|
|
|
|
case PKI_DATATYPE_X509_CMS : {
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
|
- it = (ASN1_ITEM *) CMS_ContentInfo_it;
|
|
-#else
|
|
- it = &CMS_ContentInfo_it;
|
|
-#endif
|
|
p = NULL;
|
|
}
|
|
|
|
@@ -156,6 +174,7 @@
|
|
|
|
}
|
|
|
|
+
|
|
/*! \brief Returns the callbacks for a specific PKI_DATATYPE */
|
|
|
|
const PKI_X509_CALLBACKS *PKI_X509_CALLBACKS_get (PKI_DATATYPE type,
|
|
@@ -213,6 +232,9 @@
|
|
// Internal Status
|
|
ret->status = -1;
|
|
|
|
+ // Internal conversion pointer
|
|
+ ret->it = _get_ossl_item(type);
|
|
+
|
|
// All Done
|
|
return ret;
|
|
}
|