summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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