From ecf139917dd7a4671a4bb1bf530f3b0ab5bb3bf1 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Wed, 31 Mar 2004 12:17:24 +0000 Subject: New function X509_POLICY_NODE_print() --- crypto/x509v3/pcy_int.h | 3 ++- crypto/x509v3/v3_cpols.c | 20 +++++++++++++++++++- crypto/x509v3/x509v3.h | 4 +++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/crypto/x509v3/pcy_int.h b/crypto/x509v3/pcy_int.h index 33d6adfb96..ba62a209da 100644 --- a/crypto/x509v3/pcy_int.h +++ b/crypto/x509v3/pcy_int.h @@ -188,7 +188,8 @@ struct X509_POLICY_TREE_st /* Useful macros */ -#define node_critical(node) ((node)->data->flags & POLICY_DATA_FLAG_CRITICAL) +#define node_data_critical(data) (data->flags & POLICY_DATA_FLAG_CRITICAL) +#define node_critical(node) node_data_critical(node->data) /* Internal functions */ diff --git a/crypto/x509v3/v3_cpols.c b/crypto/x509v3/v3_cpols.c index 0d554f3a2c..62b34e1f99 100644 --- a/crypto/x509v3/v3_cpols.c +++ b/crypto/x509v3/v3_cpols.c @@ -3,7 +3,7 @@ * project 1999. */ /* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -63,6 +63,8 @@ #include #include +#include "pcy_int.h" + /* Certificate policies extension support: this one is a bit complex... */ static int i2r_certpol(X509V3_EXT_METHOD *method, STACK_OF(POLICYINFO) *pol, BIO *out, int indent); @@ -420,3 +422,19 @@ static void print_notice(BIO *out, USERNOTICE *notice, int indent) notice->exptext->data); } +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent) + { + const X509_POLICY_DATA *dat = node->data; + + BIO_printf(out, "%*sPolicy: ", indent, ""); + + i2a_ASN1_OBJECT(out, dat->valid_policy); + BIO_puts(out, "\n"); + BIO_printf(out, "%*s%s\n", indent + 2, "", + node_data_critical(dat) ? "Critical" : "Non Critical"); + if (dat->qualifier_set) + print_qualifiers(out, dat->qualifier_set, indent + 2); + else + BIO_printf(out, "%*sNo Qualifiers\n", indent + 2, ""); + } + diff --git a/crypto/x509v3/x509v3.h b/crypto/x509v3/x509v3.h index 89cc3c49d1..677a930f77 100644 --- a/crypto/x509v3/x509v3.h +++ b/crypto/x509v3/x509v3.h @@ -3,7 +3,7 @@ * project 1999. */ /* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -604,6 +604,8 @@ ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk, unsigned long chtype); +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); + /* BEGIN ERROR CODES */ /* The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. -- cgit v1.2.1