add _hx509_cert_get_keyusage
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18025 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1988,3 +1988,30 @@ hx509_cert_check_eku(hx509_context context, hx509_cert cert,
|
||||
hx509_clear_error_string(context);
|
||||
return HX509_CERTIFICATE_MISSING_EKU;
|
||||
}
|
||||
|
||||
int
|
||||
_hx509_cert_get_keyusage(hx509_context context,
|
||||
hx509_cert c,
|
||||
KeyUsage *ku)
|
||||
{
|
||||
Certificate *cert;
|
||||
const Extension *e;
|
||||
size_t size;
|
||||
int ret, i = 0;
|
||||
|
||||
memset(ku, 0, sizeof(*ku));
|
||||
|
||||
cert = _hx509_get_cert(c);
|
||||
|
||||
if (_hx509_cert_get_version(cert) < 3)
|
||||
return 0;
|
||||
|
||||
e = find_extension(cert, oid_id_x509_ce_keyUsage(), &i);
|
||||
if (e == NULL)
|
||||
return HX509_KU_CERT_MISSING;
|
||||
|
||||
ret = decode_KeyUsage(e->extnValue.data, e->extnValue.length, ku, &size);
|
||||
if (ret)
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user