summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2023-04-26 20:43:32 +0000
committertb <>2023-04-26 20:43:32 +0000
commitb095c3c5a1f9e1ca6df4f040af58aa1e778537bf (patch)
tree9eb75afdde7f7f11fd0c86e8a506d4c450decf8f /src
parent453b91d6329d9b353060b1a405a350428ad1d2b4 (diff)
downloadopenbsd-b095c3c5a1f9e1ca6df4f040af58aa1e778537bf.tar.gz
openbsd-b095c3c5a1f9e1ca6df4f040af58aa1e778537bf.tar.bz2
openbsd-b095c3c5a1f9e1ca6df4f040af58aa1e778537bf.zip
Take X509_POLICY_NODE_print() behind the barn
This used to be public API but is now only used for debug code that has certainly never been used since it was released to the public. It drags that debug nonsense with it. ok beck
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/Symbols.namespace1
-rw-r--r--src/lib/libcrypto/hidden/openssl/x509v3.h3
-rw-r--r--src/lib/libcrypto/x509/pcy_tree.c74
-rw-r--r--src/lib/libcrypto/x509/x509_cpols.c25
4 files changed, 3 insertions, 100 deletions
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index f477c4d6ce..4320731af3 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -837,7 +837,6 @@ _libre_a2i_IPADDRESS
837_libre_a2i_IPADDRESS_NC 837_libre_a2i_IPADDRESS_NC
838_libre_a2i_ipadd 838_libre_a2i_ipadd
839_libre_X509V3_NAME_from_section 839_libre_X509V3_NAME_from_section
840_libre_X509_POLICY_NODE_print
841_libre_ASRange_new 840_libre_ASRange_new
842_libre_ASRange_free 841_libre_ASRange_free
843_libre_d2i_ASRange 842_libre_d2i_ASRange
diff --git a/src/lib/libcrypto/hidden/openssl/x509v3.h b/src/lib/libcrypto/hidden/openssl/x509v3.h
index 044b55334d..e63b91afdb 100644
--- a/src/lib/libcrypto/hidden/openssl/x509v3.h
+++ b/src/lib/libcrypto/hidden/openssl/x509v3.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509v3.h,v 1.2 2023/04/25 18:48:32 tb Exp $ */ 1/* $OpenBSD: x509v3.h,v 1.3 2023/04/26 20:43:32 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2022 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2022 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -213,7 +213,6 @@ LCRYPTO_USED(a2i_IPADDRESS);
213LCRYPTO_USED(a2i_IPADDRESS_NC); 213LCRYPTO_USED(a2i_IPADDRESS_NC);
214LCRYPTO_USED(a2i_ipadd); 214LCRYPTO_USED(a2i_ipadd);
215LCRYPTO_USED(X509V3_NAME_from_section); 215LCRYPTO_USED(X509V3_NAME_from_section);
216LCRYPTO_USED(X509_POLICY_NODE_print);
217LCRYPTO_USED(ASRange_new); 216LCRYPTO_USED(ASRange_new);
218LCRYPTO_USED(ASRange_free); 217LCRYPTO_USED(ASRange_free);
219LCRYPTO_USED(d2i_ASRange); 218LCRYPTO_USED(d2i_ASRange);
diff --git a/src/lib/libcrypto/x509/pcy_tree.c b/src/lib/libcrypto/x509/pcy_tree.c
index eb3c427a3a..4f253e3cd1 100644
--- a/src/lib/libcrypto/x509/pcy_tree.c
+++ b/src/lib/libcrypto/x509/pcy_tree.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pcy_tree.c,v 1.7 2023/04/26 19:11:33 beck Exp $ */ 1/* $OpenBSD: pcy_tree.c,v 1.8 2023/04/26 20:43:32 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2004. 3 * project 2004.
4 */ 4 */
@@ -64,74 +64,6 @@
64#include "pcy_int.h" 64#include "pcy_int.h"
65#include "x509_local.h" 65#include "x509_local.h"
66 66
67/* Enable this to print out the complete policy tree at various point during
68 * evaluation.
69 */
70
71/*#define OPENSSL_POLICY_DEBUG*/
72
73#ifdef OPENSSL_POLICY_DEBUG
74
75static void
76expected_print(BIO *err, X509_POLICY_LEVEL *lev, X509_POLICY_NODE *node,
77 int indent)
78{
79 if ((lev->flags & X509_V_FLAG_INHIBIT_MAP) ||
80 !(node->data->flags & POLICY_DATA_FLAG_MAP_MASK))
81 BIO_puts(err, " Not Mapped\n");
82 else {
83 int i;
84 STACK_OF(ASN1_OBJECT) *pset = node->data->expected_policy_set;
85 ASN1_OBJECT *oid;
86 BIO_puts(err, " Expected: ");
87 for (i = 0; i < sk_ASN1_OBJECT_num(pset); i++) {
88 oid = sk_ASN1_OBJECT_value(pset, i);
89 if (i)
90 BIO_puts(err, ", ");
91 i2a_ASN1_OBJECT(err, oid);
92 }
93 BIO_puts(err, "\n");
94 }
95}
96
97static void
98tree_print(char *str, X509_POLICY_TREE *tree, X509_POLICY_LEVEL *curr)
99{
100 X509_POLICY_LEVEL *plev;
101 X509_POLICY_NODE *node;
102 int i;
103 BIO *err;
104
105 if ((err = BIO_new_fp(stderr, BIO_NOCLOSE)) == NULL)
106 return;
107
108 if (!curr)
109 curr = tree->levels + tree->nlevel;
110 else
111 curr++;
112 BIO_printf(err, "Level print after %s\n", str);
113 BIO_printf(err, "Printing Up to Level %ld\n", curr - tree->levels);
114 for (plev = tree->levels; plev != curr; plev++) {
115 BIO_printf(err, "Level %ld, flags = %x\n",
116 plev - tree->levels, plev->flags);
117 for (i = 0; i < sk_X509_POLICY_NODE_num(plev->nodes); i++) {
118 node = sk_X509_POLICY_NODE_value(plev->nodes, i);
119 X509_POLICY_NODE_print(err, node, 2);
120 expected_print(err, plev, node, 2);
121 BIO_printf(err, " Flags: %x\n", node->data->flags);
122 }
123 if (plev->anyPolicy)
124 X509_POLICY_NODE_print(err, plev->anyPolicy, 2);
125 }
126
127 BIO_free(err);
128}
129#else
130
131#define tree_print(a,b,c) /* */
132
133#endif
134
135/* Initialize policy tree. Return values: 67/* Initialize policy tree. Return values:
136 * 0 Some internal error occurred. 68 * 0 Some internal error occurred.
137 * -1 Inconsistent or invalid extensions in certificates. 69 * -1 Inconsistent or invalid extensions in certificates.
@@ -615,7 +547,6 @@ tree_evaluate(X509_POLICY_TREE *tree)
615 if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY) && 547 if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY) &&
616 !tree_link_any(curr, cache, tree)) 548 !tree_link_any(curr, cache, tree))
617 return 0; 549 return 0;
618 tree_print("before tree_prune()", tree, curr);
619 ret = tree_prune(tree, curr); 550 ret = tree_prune(tree, curr);
620 if (ret != 1) 551 if (ret != 1)
621 return ret; 552 return ret;
@@ -726,9 +657,6 @@ X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
726 if (!tree) 657 if (!tree)
727 goto error; 658 goto error;
728 ret = tree_evaluate(tree); 659 ret = tree_evaluate(tree);
729
730 tree_print("tree_evaluate()", tree, NULL);
731
732 if (ret <= 0) 660 if (ret <= 0)
733 goto error; 661 goto error;
734 662
diff --git a/src/lib/libcrypto/x509/x509_cpols.c b/src/lib/libcrypto/x509/x509_cpols.c
index bac0209371..bb09034ce0 100644
--- a/src/lib/libcrypto/x509/x509_cpols.c
+++ b/src/lib/libcrypto/x509/x509_cpols.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_cpols.c,v 1.9 2023/04/26 19:11:33 beck Exp $ */ 1/* $OpenBSD: x509_cpols.c,v 1.10 2023/04/26 20:43:32 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -65,9 +65,6 @@
65#include <openssl/err.h> 65#include <openssl/err.h>
66#include <openssl/x509v3.h> 66#include <openssl/x509v3.h>
67 67
68#ifndef LIBRESSL_HAS_POLICY_DAG
69#include "pcy_int.h"
70#endif
71#include "x509_local.h" 68#include "x509_local.h"
72 69
73/* Certificate policies extension support: this one is a bit complex... */ 70/* Certificate policies extension support: this one is a bit complex... */
@@ -767,23 +764,3 @@ print_notice(BIO *out, USERNOTICE *notice, int indent)
767 BIO_printf(out, "%*sExplicit Text: %.*s\n", indent, "", 764 BIO_printf(out, "%*sExplicit Text: %.*s\n", indent, "",
768 notice->exptext->length, notice->exptext->data); 765 notice->exptext->length, notice->exptext->data);
769} 766}
770
771#ifndef LIBRESSL_HAS_POLICY_DAG
772void
773X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent)
774{
775 const X509_POLICY_DATA *dat = node->data;
776
777 BIO_printf(out, "%*sPolicy: ", indent, "");
778
779 i2a_ASN1_OBJECT(out, dat->valid_policy);
780 BIO_puts(out, "\n");
781 BIO_printf(out, "%*s%s\n", indent + 2, "",
782 node_data_critical(dat) ? "Critical" : "Non Critical");
783 if (dat->qualifier_set)
784 print_qualifiers(out, dat->qualifier_set, indent + 2);
785 else
786 BIO_printf(out, "%*sNo Qualifiers\n", indent + 2, "");
787}
788LCRYPTO_ALIAS(X509_POLICY_NODE_print);
789#endif