#include <stdio.h>
#include "cryptlib.h"
#include <openssl/evp.h>
-#include <openssl/asn1_mac.h>
+#include <openssl/asn1.h>
#include <openssl/x509.h>
/* X509_CERT_AUX and string set routines
*/
-static BIT_STRING_BITNAME tbits[] = {
-{X509_TRUST_BIT_ALL, "All Purposes", "all"},
-{X509_TRUST_BIT_SSL_CLIENT, "SSL client", "sslclient"},
-{X509_TRUST_BIT_SSL_SERVER, "SSL server", "sslserver"},
-{X509_TRUST_BIT_EMAIL, "S/MIME email", "email"},
-{X509_TRUST_BIT_OBJECT_SIGN, "Object Signing", "objsign"},
-{-1, NULL, NULL}
-};
-
-int X509_trust_set_bit_asc(X509 *x, char *str, int value)
-{
- int bitnum;
- bitnum = ASN1_BIT_STRING_num_asc(str, tbits);
- if(bitnum < 0) return 0;
- if(x) return X509_trust_set_bit(x, bitnum, value);
- return 1;
-}
-
-int X509_notrust_set_bit_asc(X509 *x, char *str, int value)
-{
- int bitnum;
- bitnum = ASN1_BIT_STRING_num_asc(str, tbits);
- if(bitnum < 0) return 0;
- if(x) return X509_notrust_set_bit(x, bitnum, value);
- return 1;
-}
-
-
int X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
{
char oidstr[80], first;
int i;
if(!aux) return 1;
if(aux->trust) {
- BIO_printf(out, "%*sTrusted for:\n", indent, "");
- ASN1_BIT_STRING_name_print(out, aux->trust, tbits, indent + 2);
- } else BIO_printf(out, "%*sNo Trust Settings\n", indent + 2, "");
- if(aux->notrust) {
- BIO_printf(out, "%*sUntrusted for:\n", indent, "");
- ASN1_BIT_STRING_name_print(out, aux->notrust, tbits, indent + 2);
- } else BIO_printf(out, "%*sNo Untrusted Settings\n", indent + 2, "");
- if(aux->othertrust) {
first = 1;
- BIO_printf(out, "%*sOther Trusted Uses:\n%*s",
+ BIO_printf(out, "%*sTrusted Uses:\n%*s",
indent, "", indent + 2, "");
- for(i = 0; i < sk_ASN1_OBJECT_num(aux->othertrust); i++) {
+ for(i = 0; i < sk_ASN1_OBJECT_num(aux->trust); i++) {
if(!first) BIO_puts(out, ", ");
else first = 0;
OBJ_obj2txt(oidstr, 80,
- sk_ASN1_OBJECT_value(aux->othertrust, i), 0);
+ sk_ASN1_OBJECT_value(aux->trust, i), 0);
BIO_puts(out, oidstr);
}
BIO_puts(out, "\n");
- }
- if(aux->othernotrust) {
+ } else BIO_printf(out, "%*sNo Trusted Uses.\n", indent, "");
+ if(aux->reject) {
first = 1;
- BIO_printf(out, "%*sOther Untrusted Uses:\n%*s",
+ BIO_printf(out, "%*sRejected Uses:\n%*s",
indent, "", indent + 2, "");
- for(i = 0; i < sk_ASN1_OBJECT_num(aux->othernotrust); i++) {
+ for(i = 0; i < sk_ASN1_OBJECT_num(aux->reject); i++) {
if(!first) BIO_puts(out, ", ");
else first = 0;
OBJ_obj2txt(oidstr, 80,
- sk_ASN1_OBJECT_value(aux->othernotrust, i), 0);
+ sk_ASN1_OBJECT_value(aux->reject, i), 0);
BIO_puts(out, oidstr);
}
BIO_puts(out, "\n");
- }
+ } else BIO_printf(out, "%*sNo Rejected Uses.\n", indent, "");
if(aux->alias) BIO_printf(out, "%*sAlias: %s\n", indent, "",
aux->alias->data);
+ if(aux->keyid) {
+ BIO_printf(out, "%*sKey Id: ", indent, "");
+ for(i = 0; i < aux->keyid->length; i++)
+ BIO_printf(out, "%s%02X",
+ i ? ":" : "",
+ aux->keyid->data[i]);
+ BIO_write(out,"\n",1);
+ }
return 1;
}