Skip to content

Commit e0b3a17

Browse files
committed
Add keyUsage digitalSignature validation for signer certificate
1 parent 988f722 commit e0b3a17

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

osslsigncode.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2535,9 +2535,17 @@ static int verify_authenticode(FILE_FORMAT_CTX *ctx, PKCS7 *p7, time_t time, X50
25352535
if (!crlok)
25362536
goto out;
25372537
}
2538-
/* check extended key usage flag XKU_CODE_SIGN */
2538+
/*
2539+
* Verify that:
2540+
* - extendedKeyUsage, if present, permits codeSigning (RFC 5280 section 4.2.1.12)
2541+
* - keyUsage, if present, permits digitalSignature (RFC 5280 section 4.2.1.3)
2542+
*/
25392543
if (!(X509_get_extended_key_usage(signer) & XKU_CODE_SIGN)) {
2540-
fprintf(stderr, "Unsupported Signer's certificate purpose XKU_CODE_SIGN\n");
2544+
fprintf(stderr, "Signer certificate rejected: extendedKeyUsage does not permit codeSigning\n");
2545+
goto out;
2546+
}
2547+
if (!(X509_get_key_usage(signer) & X509v3_KU_DIGITAL_SIGNATURE)) {
2548+
fprintf(stderr, "Signer certificate rejected: keyUsage does not permit digitalSignature\n");
25412549
goto out;
25422550
}
25432551

0 commit comments

Comments
 (0)