From bf8bfd607b1f2b14c653b24676c8788a4a40670c Mon Sep 17 00:00:00 2001 From: Reyk Floeter Date: Tue, 15 May 2018 23:11:32 +0200 Subject: [PATCH] Fix build with LibreSSL 2.8 and constified the ASN1_OBJECTs. --- cms/lib/cms_lib.c | 10 +++++++++- cms/lib/cms_sd.c | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cms/lib/cms_lib.c b/cms/lib/cms_lib.c index 6d27c49..67edf07 100644 --- a/cms/lib/cms_lib.c +++ b/cms/lib/cms_lib.c @@ -353,7 +353,11 @@ void cms_DigestAlgorithm_set(X509_ALGOR *alg, const EVP_MD *md) BIO *cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm) { BIO *mdbio = NULL; +#if LIBRESSL_VERSION_NUMBER >= 0x2080000fL + const ASN1_OBJECT *digestoid; +#else ASN1_OBJECT *digestoid; +#endif const EVP_MD *digest; X509_ALGOR_get0(&digestoid, NULL, NULL, digestAlgorithm); digest = EVP_get_digestbyobj(digestoid); @@ -380,7 +384,11 @@ int cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain, X509_ALGOR *mdalg) { int nid; - ASN1_OBJECT *mdoid; +#if LIBRESSL_VERSION_NUMBER >= 0x2080000fL + const ASN1_OBJECT *mdoid; +#else + const ASN1_OBJECT *mdoid; +#endif X509_ALGOR_get0(&mdoid, NULL, NULL, mdalg); nid = OBJ_obj2nid(mdoid); /* Look for digest type to match signature */ diff --git a/cms/lib/cms_sd.c b/cms/lib/cms_sd.c index 5e7b0a1..f1ff9b0 100644 --- a/cms/lib/cms_sd.c +++ b/cms/lib/cms_sd.c @@ -328,7 +328,11 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, /* See if digest is present in digestAlgorithms */ for (i = 0; i < sk_X509_ALGOR_num(sd->digestAlgorithms); i++) { +#if LIBRESSL_VERSION_NUMBER >= 0x2080000fL + const ASN1_OBJECT *aoid; +#else ASN1_OBJECT *aoid; +#endif alg = sk_X509_ALGOR_value(sd->digestAlgorithms, i); X509_ALGOR_get0(&aoid, NULL, NULL, alg); if (OBJ_obj2nid(aoid) == EVP_MD_type(md))