From b0acb5a12b287dac8bed0575bf66c598e7ce2f04 Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Thu, 14 Jul 2022 18:28:26 -0400 Subject: Fix Authority when using -H --- ldid.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ldid.cpp b/ldid.cpp index 24daf47..f439dac 100644 --- a/ldid.cpp +++ b/ldid.cpp @@ -1855,14 +1855,18 @@ class Signature { X509_ATTRIBUTE *attribute = X509_ATTRIBUTE_new(); ASN1_OBJECT *obj2 = OBJ_txt2obj("1.2.840.113635.100.9.2", 1); X509_ATTRIBUTE_set1_object(attribute, obj2); - // xina fix; - SEQUENCE_hash_sha1 seq1; - memcpy((void *)seq1.hash,(void *)alternateCDSHA1.data() ,alternateCDSHA1.size()); - X509_ATTRIBUTE_set1_data(attribute, V_ASN1_SEQUENCE,&seq1, sizeof(seq1)); - // xina fix; - SEQUENCE_hash_sha256 seq256; - memcpy((void *)seq256.hash,(void *)alternateCDSHA256.data() ,alternateCDSHA256.size()); - X509_ATTRIBUTE_set1_data(attribute, V_ASN1_SEQUENCE,&seq256, sizeof(seq256)); + if (alternateCDSHA1.size() != 0) { + // xina fix; + SEQUENCE_hash_sha1 seq1; + memcpy((void *)seq1.hash, (void *)alternateCDSHA1.data(), alternateCDSHA1.size()); + X509_ATTRIBUTE_set1_data(attribute, V_ASN1_SEQUENCE, &seq1, sizeof(seq1)); + } + if (alternateCDSHA256.size() != 0) { + // xina fix; + SEQUENCE_hash_sha256 seq256; + memcpy((void *)seq256.hash, (void *)alternateCDSHA256.data(), alternateCDSHA256.size()); + X509_ATTRIBUTE_set1_data(attribute, V_ASN1_SEQUENCE, &seq256, sizeof(seq256)); + } STACK_OF(X509_ATTRIBUTE) *sk = PKCS7_get_signed_attributes(info); if (!sk_X509_ATTRIBUTE_push(sk, attribute)) { -- cgit v1.2.3-56-ge451