New function X509_POLICY_NODE_print()
authorDr. Stephen Henson <steve@openssl.org>
Wed, 31 Mar 2004 12:17:24 +0000 (12:17 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 31 Mar 2004 12:17:24 +0000 (12:17 +0000)
crypto/x509v3/pcy_int.h
crypto/x509v3/v3_cpols.c
crypto/x509v3/x509v3.h

index 33d6adf..ba62a20 100644 (file)
@@ -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 */
 
index 0d554f3..62b34e1 100644 (file)
@@ -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 <openssl/asn1t.h>
 #include <openssl/x509v3.h>
 
+#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, "");
+       }
+       
index 89cc3c4..677a930 100644 (file)
@@ -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.