From e671f9a34eb6543b48dd0372c70bdfd589992333 Mon Sep 17 00:00:00 2001 From: olszomal Date: Sat, 10 Feb 2024 07:16:23 +0100 Subject: [PATCH] Fixed getting content --- helpers.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/helpers.c b/helpers.c index d4d3123f..c4f40d15 100644 --- a/helpers.c +++ b/helpers.c @@ -268,15 +268,16 @@ int add_indirect_data_object(PKCS7 *p7) */ int sign_spc_indirect_data_content(PKCS7 *p7, ASN1_OCTET_STRING *content) { - int len, hdrlen; - const u_char *data; + int len, inf, tag, class; + long plen; + const u_char *data, *p; PKCS7 *td7; - data = ASN1_STRING_get0_data(content); + p = data = ASN1_STRING_get0_data(content); len = ASN1_STRING_length(content); - hdrlen = ASN1_object_size(0, len, V_ASN1_SEQUENCE) - len; - - if (!pkcs7_sign_content(p7, data + hdrlen, len - hdrlen)) { + inf = ASN1_get_object(&p, &plen, &tag, &class, len); + if (inf != V_ASN1_CONSTRUCTED || tag != V_ASN1_SEQUENCE + || !pkcs7_sign_content(p7, p, (int)plen)) { printf("Failed to sign spcIndirectDataContent\n"); return 0; /* FAILED */ }