git: db203a9d7a6d - main - security/libpki: Fix build with libxml2 2.13
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 25 Aug 2024 13:14:44 UTC
The branch main has been updated by diizzy: URL: https://cgit.FreeBSD.org/ports/commit/?id=db203a9d7a6ddbf29c75006f6126e5e6274e85fa commit db203a9d7a6ddbf29c75006f6126e5e6274e85fa Author: Bruno Damour <bruno@ruomad.net> AuthorDate: 2024-08-25 13:13:07 +0000 Commit: Daniel Engberg <diizzy@FreeBSD.org> CommitDate: 2024-08-25 13:13:22 +0000 security/libpki: Fix build with libxml2 2.13 Backports from upstream repo and adapted to current release PR: 279954 --- security/libpki/Makefile | 2 +- security/libpki/files/patch-src_pki__config.c | 22 ++++ security/libpki/files/patch-src_pki__x509.c | 181 ++++++++++++++++++++++++++ 3 files changed, 204 insertions(+), 1 deletion(-) diff --git a/security/libpki/Makefile b/security/libpki/Makefile index f09f9d9ef067..1fc399318268 100644 --- a/security/libpki/Makefile +++ b/security/libpki/Makefile @@ -1,7 +1,7 @@ PORTNAME= libpki DISTVERSIONPREFIX= v DISTVERSION= 0.9.2 -PORTREVISION= 5 +PORTREVISION= 6 CATEGORIES= security PATCH_SITES= https://github.com/openca/libpki/commit/ diff --git a/security/libpki/files/patch-src_pki__config.c b/security/libpki/files/patch-src_pki__config.c new file mode 100644 index 000000000000..776340729adf --- /dev/null +++ b/security/libpki/files/patch-src_pki__config.c @@ -0,0 +1,22 @@ +--- src/pki_config.c.orig 2024-08-12 07:36:06.493686000 +0200 ++++ src/pki_config.c 2024-08-12 07:40:19.265530000 +0200 +@@ -17,6 +17,7 @@ + + #define PKI_DEF_CONF_DIRS_SIZE 2 + #define LIBXML_MIN_VERSION 20600 ++#define LIBXML_212_VERSION 21200 + + #if LIBXML_VERSION < LIBXML_MIN_VERSION + #define xmlErrorPtr void * +@@ -30,7 +31,11 @@ + #endif + */ + ++#if LIBXML_VERSION >= LIBXML_212_VERSION ++void logXmlMessages( void *userData, const xmlError *error ) { ++#else + void logXmlMessages( void *userData, xmlErrorPtr error ) { ++#endif + #if LIBXML_VERSION >= LIBXML_MIN_VERSION + PKI_log_err( "XML I/O Error: %s", error->message); + #else diff --git a/security/libpki/files/patch-src_pki__x509.c b/security/libpki/files/patch-src_pki__x509.c new file mode 100644 index 000000000000..945c19397d39 --- /dev/null +++ b/security/libpki/files/patch-src_pki__x509.c @@ -0,0 +1,181 @@ +--- 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; + }