add hx509_print_cert
This commit is contained in:
@@ -3452,3 +3452,66 @@ out:
|
|||||||
hx509_env_free(&envcert);
|
hx509_env_free(&envcert);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Print a simple representation of a certificate
|
||||||
|
*
|
||||||
|
* @param context A hx509 context, can be NULL
|
||||||
|
* @param cert certificate to print
|
||||||
|
* @param out the stdio output stream, if NULL, stdout is used
|
||||||
|
*
|
||||||
|
* @return An hx509 error code
|
||||||
|
*
|
||||||
|
* @ingroup hx509_cert
|
||||||
|
*/
|
||||||
|
|
||||||
|
int
|
||||||
|
hx509_print_cert(hx509_context context, hx509_cert cert, FILE *out)
|
||||||
|
{
|
||||||
|
hx509_name name;
|
||||||
|
char *str;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (out == NULL)
|
||||||
|
out = stderr;
|
||||||
|
|
||||||
|
ret = hx509_cert_get_issuer(cert, &name);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
hx509_name_to_string(name, &str);
|
||||||
|
hx509_name_free(&name);
|
||||||
|
fprintf(out, " issuer: \"%s\"\n", str);
|
||||||
|
free(str);
|
||||||
|
|
||||||
|
ret = hx509_cert_get_subject(cert, &name);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
hx509_name_to_string(name, &str);
|
||||||
|
hx509_name_free(&name);
|
||||||
|
fprintf(out, " subject: \"%s\"\n", str);
|
||||||
|
free(str);
|
||||||
|
|
||||||
|
{
|
||||||
|
heim_integer serialNumber;
|
||||||
|
|
||||||
|
ret = hx509_cert_get_serialnumber(cert, &serialNumber);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
ret = der_print_hex_heim_integer(&serialNumber, &str);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
der_free_heim_integer(&serialNumber);
|
||||||
|
fprintf(out, " serial: %s\n", str);
|
||||||
|
free(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf(" keyusage: ");
|
||||||
|
ret = hx509_cert_keyusage_print(context, cert, &str);
|
||||||
|
if (ret == 0) {
|
||||||
|
fprintf(out, "%s\n", str);
|
||||||
|
free(str);
|
||||||
|
} else
|
||||||
|
fprintf(out, "no");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user