crypt32: Trace netscape cert type extension.

This commit is contained in:
Juan Lang 2009-10-23 14:11:27 -07:00 committed by Alexandre Julliard
parent d664edb322
commit bcb4bc6be3
1 changed files with 28 additions and 0 deletions

View File

@ -936,6 +936,32 @@ static void dump_enhanced_key_usage(const CERT_EXTENSION *ext)
} }
} }
static void dump_netscape_cert_type(const CERT_EXTENSION *ext)
{
CRYPT_BIT_BLOB usage;
DWORD size = sizeof(usage);
if (CryptDecodeObjectEx(X509_ASN_ENCODING, X509_BITS, ext->Value.pbData,
ext->Value.cbData, CRYPT_DECODE_NOCOPY_FLAG, NULL, &usage, &size))
{
#define trace_cert_type_bit(bits, bit) \
if ((bits) & (bit)) TRACE_(chain)("%s\n", #bit)
if (usage.cbData)
{
trace_cert_type_bit(usage.pbData[0],
NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0],
NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0], NETSCAPE_SMIME_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0], NETSCAPE_SIGN_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0], NETSCAPE_SSL_CA_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0], NETSCAPE_SMIME_CA_CERT_TYPE);
trace_cert_type_bit(usage.pbData[0], NETSCAPE_SIGN_CA_CERT_TYPE);
}
#undef trace_cert_type_bit
}
}
static void dump_extension(const CERT_EXTENSION *ext) static void dump_extension(const CERT_EXTENSION *ext)
{ {
TRACE_(chain)("%s (%scritical)\n", debugstr_a(ext->pszObjId), TRACE_(chain)("%s (%scritical)\n", debugstr_a(ext->pszObjId),
@ -960,6 +986,8 @@ static void dump_extension(const CERT_EXTENSION *ext)
dump_cert_policies(ext); dump_cert_policies(ext);
else if (!strcmp(ext->pszObjId, szOID_ENHANCED_KEY_USAGE)) else if (!strcmp(ext->pszObjId, szOID_ENHANCED_KEY_USAGE))
dump_enhanced_key_usage(ext); dump_enhanced_key_usage(ext);
else if (!strcmp(ext->pszObjId, szOID_NETSCAPE_CERT_TYPE))
dump_netscape_cert_type(ext);
} }
static LPCWSTR filetime_to_str(const FILETIME *time) static LPCWSTR filetime_to_str(const FILETIME *time)