summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2024-03-02 11:04:52 +0000
committertb <>2024-03-02 11:04:52 +0000
commit2e45bf0bb5ba5d679b984ec185fbc3d2a6270f6f (patch)
tree14fe1625d8e95a578ceba0d94f1fefdd60ec9146
parente046d31060c0d98e03e2a00a0f27d8b56aac8cd6 (diff)
downloadopenbsd-2e45bf0bb5ba5d679b984ec185fbc3d2a6270f6f.tar.gz
openbsd-2e45bf0bb5ba5d679b984ec185fbc3d2a6270f6f.tar.bz2
openbsd-2e45bf0bb5ba5d679b984ec185fbc3d2a6270f6f.zip
Remove lh stats
This could have been removed in an earlier bump. Now it's time for it to say goodbye. ok jsing
-rw-r--r--src/lib/libcrypto/Makefile3
-rw-r--r--src/lib/libcrypto/Symbols.list6
-rw-r--r--src/lib/libcrypto/Symbols.namespace6
-rw-r--r--src/lib/libcrypto/hidden/openssl/lhash.h8
-rw-r--r--src/lib/libcrypto/lhash/lh_stats.c263
-rw-r--r--src/lib/libcrypto/lhash/lhash.h18
-rw-r--r--src/lib/libcrypto/man/Makefile3
-rw-r--r--src/lib/libcrypto/man/lh_new.35
-rw-r--r--src/lib/libcrypto/man/lh_stats.3206
-rw-r--r--src/lib/libcrypto/stack/safestack.h56
-rw-r--r--src/lib/libcrypto/util/mkstack.pl6
11 files changed, 7 insertions, 573 deletions
diff --git a/src/lib/libcrypto/Makefile b/src/lib/libcrypto/Makefile
index 457ff381c4..cc56c53591 100644
--- a/src/lib/libcrypto/Makefile
+++ b/src/lib/libcrypto/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.170 2024/03/02 10:13:12 tb Exp $ 1# $OpenBSD: Makefile,v 1.171 2024/03/02 11:04:51 tb Exp $
2 2
3LIB= crypto 3LIB= crypto
4LIBREBUILD=y 4LIBREBUILD=y
@@ -428,7 +428,6 @@ SRCS+= hkdf_evp.c
428SRCS+= kdf_err.c 428SRCS+= kdf_err.c
429 429
430# lhash/ 430# lhash/
431SRCS+= lh_stats.c
432SRCS+= lhash.c 431SRCS+= lhash.c
433 432
434# md4/ 433# md4/
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index 608291d954..644797f655 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -3437,14 +3437,8 @@ lh_doall_arg
3437lh_free 3437lh_free
3438lh_insert 3438lh_insert
3439lh_new 3439lh_new
3440lh_node_stats
3441lh_node_stats_bio
3442lh_node_usage_stats
3443lh_node_usage_stats_bio
3444lh_num_items 3440lh_num_items
3445lh_retrieve 3441lh_retrieve
3446lh_stats
3447lh_stats_bio
3448lh_strhash 3442lh_strhash
3449o2i_ECPublicKey 3443o2i_ECPublicKey
3450o2i_SCT 3444o2i_SCT
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index aa81bc13f2..9bf6384dd9 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -1653,12 +1653,6 @@ _libre_lh_doall
1653_libre_lh_doall_arg 1653_libre_lh_doall_arg
1654_libre_lh_strhash 1654_libre_lh_strhash
1655_libre_lh_num_items 1655_libre_lh_num_items
1656_libre_lh_stats
1657_libre_lh_node_stats
1658_libre_lh_node_usage_stats
1659_libre_lh_stats_bio
1660_libre_lh_node_stats_bio
1661_libre_lh_node_usage_stats_bio
1662_libre_SM3_Init 1656_libre_SM3_Init
1663_libre_SM3_Update 1657_libre_SM3_Update
1664_libre_SM3_Final 1658_libre_SM3_Final
diff --git a/src/lib/libcrypto/hidden/openssl/lhash.h b/src/lib/libcrypto/hidden/openssl/lhash.h
index 151f154a47..eee272cf46 100644
--- a/src/lib/libcrypto/hidden/openssl/lhash.h
+++ b/src/lib/libcrypto/hidden/openssl/lhash.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: lhash.h,v 1.2 2023/07/07 19:37:54 beck Exp $ */ 1/* $OpenBSD: lhash.h,v 1.3 2024/03/02 11:04:51 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -34,11 +34,5 @@ LCRYPTO_USED(lh_doall);
34LCRYPTO_USED(lh_doall_arg); 34LCRYPTO_USED(lh_doall_arg);
35LCRYPTO_USED(lh_strhash); 35LCRYPTO_USED(lh_strhash);
36LCRYPTO_USED(lh_num_items); 36LCRYPTO_USED(lh_num_items);
37LCRYPTO_USED(lh_stats);
38LCRYPTO_USED(lh_node_stats);
39LCRYPTO_USED(lh_node_usage_stats);
40LCRYPTO_USED(lh_stats_bio);
41LCRYPTO_USED(lh_node_stats_bio);
42LCRYPTO_USED(lh_node_usage_stats_bio);
43 37
44#endif /* _LIBCRYPTO_LHASH_H */ 38#endif /* _LIBCRYPTO_LHASH_H */
diff --git a/src/lib/libcrypto/lhash/lh_stats.c b/src/lib/libcrypto/lhash/lh_stats.c
deleted file mode 100644
index 123792a2ab..0000000000
--- a/src/lib/libcrypto/lhash/lh_stats.c
+++ /dev/null
@@ -1,263 +0,0 @@
1/* $OpenBSD: lh_stats.c,v 1.13 2023/07/07 13:40:44 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <stdlib.h>
62
63#include <openssl/opensslconf.h>
64
65#ifndef OPENSSL_NO_BIO
66#include <openssl/bio.h>
67#endif
68#include <openssl/lhash.h>
69
70#ifdef OPENSSL_NO_BIO
71
72void
73lh_stats(LHASH *lh, FILE *out)
74{
75 fprintf(out, "num_items = %lu\n", lh->num_items);
76 fprintf(out, "num_nodes = %u\n", lh->num_nodes);
77 fprintf(out, "num_alloc_nodes = %u\n", lh->num_alloc_nodes);
78 fprintf(out, "num_expands = %lu\n", lh->num_expands);
79 fprintf(out, "num_expand_reallocs = %lu\n", lh->num_expand_reallocs);
80 fprintf(out, "num_contracts = %lu\n", lh->num_contracts);
81 fprintf(out, "num_contract_reallocs = %lu\n",
82 lh->num_contract_reallocs);
83 fprintf(out, "num_hash_calls = %lu\n", lh->num_hash_calls);
84 fprintf(out, "num_comp_calls = %lu\n", lh->num_comp_calls);
85 fprintf(out, "num_insert = %lu\n", lh->num_insert);
86 fprintf(out, "num_replace = %lu\n", lh->num_replace);
87 fprintf(out, "num_delete = %lu\n", lh->num_delete);
88 fprintf(out, "num_no_delete = %lu\n", lh->num_no_delete);
89 fprintf(out, "num_retrieve = %lu\n", lh->num_retrieve);
90 fprintf(out, "num_retrieve_miss = %lu\n", lh->num_retrieve_miss);
91 fprintf(out, "num_hash_comps = %lu\n", lh->num_hash_comps);
92#if 0
93 fprintf(out, "p = %u\n", lh->p);
94 fprintf(out, "pmax = %u\n", lh->pmax);
95 fprintf(out, "up_load = %lu\n", lh->up_load);
96 fprintf(out, "down_load = %lu\n", lh->down_load);
97#endif
98}
99LCRYPTO_ALIAS(lh_stats);
100
101void
102lh_node_stats(LHASH *lh, FILE *out)
103{
104 LHASH_NODE *n;
105 unsigned int i, num;
106
107 for (i = 0; i < lh->num_nodes; i++) {
108 for (n = lh->b[i], num = 0; n != NULL; n = n->next)
109 num++;
110 fprintf(out, "node %6u -> %3u\n", i, num);
111 }
112}
113LCRYPTO_ALIAS(lh_node_stats);
114
115void
116lh_node_usage_stats(LHASH *lh, FILE *out)
117{
118 LHASH_NODE *n;
119 unsigned long num;
120 unsigned int i;
121 unsigned long total = 0, n_used = 0;
122
123 for (i = 0; i < lh->num_nodes; i++) {
124 for (n = lh->b[i], num = 0; n != NULL; n = n->next)
125 num++;
126 if (num != 0) {
127 n_used++;
128 total += num;
129 }
130 }
131 fprintf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
132 fprintf(out, "%lu items\n", total);
133 if (n_used == 0)
134 return;
135 fprintf(out, "load %d.%02d actual load %d.%02d\n",
136 (int)(total / lh->num_nodes),
137 (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
138 (int)(total / n_used),
139 (int)((total % n_used) * 100 / n_used));
140}
141LCRYPTO_ALIAS(lh_node_usage_stats);
142
143#else
144
145void
146lh_stats(const _LHASH *lh, FILE *fp)
147{
148 BIO *bp;
149
150 bp = BIO_new(BIO_s_file());
151 if (bp == NULL)
152 goto end;
153 BIO_set_fp(bp, fp, BIO_NOCLOSE);
154 lh_stats_bio(lh, bp);
155 BIO_free(bp);
156end:;
157}
158LCRYPTO_ALIAS(lh_stats);
159
160void
161lh_node_stats(const _LHASH *lh, FILE *fp)
162{
163 BIO *bp;
164
165 bp = BIO_new(BIO_s_file());
166 if (bp == NULL)
167 goto end;
168 BIO_set_fp(bp, fp, BIO_NOCLOSE);
169 lh_node_stats_bio(lh, bp);
170 BIO_free(bp);
171end:;
172}
173LCRYPTO_ALIAS(lh_node_stats);
174
175void
176lh_node_usage_stats(const _LHASH *lh, FILE *fp)
177{
178 BIO *bp;
179
180 bp = BIO_new(BIO_s_file());
181 if (bp == NULL)
182 goto end;
183 BIO_set_fp(bp, fp, BIO_NOCLOSE);
184 lh_node_usage_stats_bio(lh, bp);
185 BIO_free(bp);
186end:;
187}
188LCRYPTO_ALIAS(lh_node_usage_stats);
189
190
191void
192lh_stats_bio(const _LHASH *lh, BIO *out)
193{
194 BIO_printf(out, "num_items = %lu\n", lh->num_items);
195 BIO_printf(out, "num_nodes = %u\n", lh->num_nodes);
196 BIO_printf(out, "num_alloc_nodes = %u\n", lh->num_alloc_nodes);
197 BIO_printf(out, "num_expands = %lu\n", lh->num_expands);
198 BIO_printf(out, "num_expand_reallocs = %lu\n",
199 lh->num_expand_reallocs);
200 BIO_printf(out, "num_contracts = %lu\n", lh->num_contracts);
201 BIO_printf(out, "num_contract_reallocs = %lu\n",
202 lh->num_contract_reallocs);
203 BIO_printf(out, "num_hash_calls = %lu\n", lh->num_hash_calls);
204 BIO_printf(out, "num_comp_calls = %lu\n", lh->num_comp_calls);
205 BIO_printf(out, "num_insert = %lu\n", lh->num_insert);
206 BIO_printf(out, "num_replace = %lu\n", lh->num_replace);
207 BIO_printf(out, "num_delete = %lu\n", lh->num_delete);
208 BIO_printf(out, "num_no_delete = %lu\n", lh->num_no_delete);
209 BIO_printf(out, "num_retrieve = %lu\n", lh->num_retrieve);
210 BIO_printf(out, "num_retrieve_miss = %lu\n", lh->num_retrieve_miss);
211 BIO_printf(out, "num_hash_comps = %lu\n", lh->num_hash_comps);
212#if 0
213 BIO_printf(out, "p = %u\n", lh->p);
214 BIO_printf(out, "pmax = %u\n", lh->pmax);
215 BIO_printf(out, "up_load = %lu\n", lh->up_load);
216 BIO_printf(out, "down_load = %lu\n", lh->down_load);
217#endif
218}
219LCRYPTO_ALIAS(lh_stats_bio);
220
221void
222lh_node_stats_bio(const _LHASH *lh, BIO *out)
223{
224 LHASH_NODE *n;
225 unsigned int i, num;
226
227 for (i = 0; i < lh->num_nodes; i++) {
228 for (n = lh->b[i], num = 0; n != NULL; n = n->next)
229 num++;
230 BIO_printf(out, "node %6u -> %3u\n", i, num);
231 }
232}
233LCRYPTO_ALIAS(lh_node_stats_bio);
234
235void
236lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
237{
238 LHASH_NODE *n;
239 unsigned long num;
240 unsigned int i;
241 unsigned long total = 0, n_used = 0;
242
243 for (i = 0; i < lh->num_nodes; i++) {
244 for (n = lh->b[i], num = 0; n != NULL; n = n->next)
245 num++;
246 if (num != 0) {
247 n_used++;
248 total += num;
249 }
250 }
251 BIO_printf(out, "%lu nodes used out of %u\n", n_used, lh->num_nodes);
252 BIO_printf(out, "%lu items\n", total);
253 if (n_used == 0)
254 return;
255 BIO_printf(out, "load %d.%02d actual load %d.%02d\n",
256 (int)(total / lh->num_nodes),
257 (int)((total % lh->num_nodes) * 100 / lh->num_nodes),
258 (int)(total / n_used),
259 (int)((total % n_used) * 100 / n_used));
260}
261LCRYPTO_ALIAS(lh_node_usage_stats_bio);
262
263#endif
diff --git a/src/lib/libcrypto/lhash/lhash.h b/src/lib/libcrypto/lhash/lhash.h
index 9c63657396..8db0174a61 100644
--- a/src/lib/libcrypto/lhash/lhash.h
+++ b/src/lib/libcrypto/lhash/lhash.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: lhash.h,v 1.12 2014/06/12 15:49:29 deraadt Exp $ */ 1/* $OpenBSD: lhash.h,v 1.13 2024/03/02 11:04:51 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -179,16 +179,6 @@ void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg);
179unsigned long lh_strhash(const char *c); 179unsigned long lh_strhash(const char *c);
180unsigned long lh_num_items(const _LHASH *lh); 180unsigned long lh_num_items(const _LHASH *lh);
181 181
182void lh_stats(const _LHASH *lh, FILE *out);
183void lh_node_stats(const _LHASH *lh, FILE *out);
184void lh_node_usage_stats(const _LHASH *lh, FILE *out);
185
186#ifndef OPENSSL_NO_BIO
187void lh_stats_bio(const _LHASH *lh, BIO *out);
188void lh_node_stats_bio(const _LHASH *lh, BIO *out);
189void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out);
190#endif
191
192/* Type checking... */ 182/* Type checking... */
193 183
194#define LHASH_OF(type) struct lhash_st_##type 184#define LHASH_OF(type) struct lhash_st_##type
@@ -217,12 +207,6 @@ void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out);
217 lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) 207 lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg))
218#define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) 208#define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh))
219#define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) 209#define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load)
220#define LHM_lh_node_stats_bio(type, lh, out) \
221 lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out)
222#define LHM_lh_node_usage_stats_bio(type, lh, out) \
223 lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out)
224#define LHM_lh_stats_bio(type, lh, out) \
225 lh_stats_bio(CHECKED_LHASH_OF(type, lh), out)
226#define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) 210#define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh))
227 211
228DECLARE_LHASH_OF(OPENSSL_STRING); 212DECLARE_LHASH_OF(OPENSSL_STRING);
diff --git a/src/lib/libcrypto/man/Makefile b/src/lib/libcrypto/man/Makefile
index 1123f1729c..8cb8371076 100644
--- a/src/lib/libcrypto/man/Makefile
+++ b/src/lib/libcrypto/man/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.281 2024/01/22 13:44:59 job Exp $ 1# $OpenBSD: Makefile,v 1.282 2024/03/02 11:04:51 tb Exp $
2 2
3.include <bsd.own.mk> 3.include <bsd.own.mk>
4 4
@@ -432,7 +432,6 @@ MAN= \
432 i2d_CMS_bio_stream.3 \ 432 i2d_CMS_bio_stream.3 \
433 i2d_PKCS7_bio_stream.3 \ 433 i2d_PKCS7_bio_stream.3 \
434 lh_new.3 \ 434 lh_new.3 \
435 lh_stats.3 \
436 openssl.cnf.5 \ 435 openssl.cnf.5 \
437 s2i_ASN1_INTEGER.3 \ 436 s2i_ASN1_INTEGER.3 \
438 x509v3.cnf.5 437 x509v3.cnf.5
diff --git a/src/lib/libcrypto/man/lh_new.3 b/src/lib/libcrypto/man/lh_new.3
index d672b4d2d8..eea5c288a2 100644
--- a/src/lib/libcrypto/man/lh_new.3
+++ b/src/lib/libcrypto/man/lh_new.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: lh_new.3,v 1.10 2024/01/24 14:02:52 jsing Exp $ 1.\" $OpenBSD: lh_new.3,v 1.11 2024/03/02 11:04:51 tb Exp $
2.\" full merge up to: 2.\" full merge up to:
3.\" OpenSSL doc/crypto/lhash.pod 1bc74519 May 20 08:11:46 2016 -0400 3.\" OpenSSL doc/crypto/lhash.pod 1bc74519 May 20 08:11:46 2016 -0400
4.\" selective merge up to: 4.\" selective merge up to:
@@ -118,7 +118,7 @@
118.\" copied and put under another distribution licence 118.\" copied and put under another distribution licence
119.\" [including the GNU Public Licence.] 119.\" [including the GNU Public Licence.]
120.\" 120.\"
121.Dd $Mdocdate: January 24 2024 $ 121.Dd $Mdocdate: March 2 2024 $
122.Dt LH_NEW 3 122.Dt LH_NEW 3
123.Os 123.Os
124.Sh NAME 124.Sh NAME
@@ -520,7 +520,6 @@ rather it would be used in the function passed to
520.Fn lh_<type>_new . 520.Fn lh_<type>_new .
521.Sh SEE ALSO 521.Sh SEE ALSO
522.Xr crypto 3 , 522.Xr crypto 3 ,
523.Xr lh_stats 3
524.Sh HISTORY 523.Sh HISTORY
525.Fn lh_new , 524.Fn lh_new ,
526.Fn lh_free , 525.Fn lh_free ,
diff --git a/src/lib/libcrypto/man/lh_stats.3 b/src/lib/libcrypto/man/lh_stats.3
deleted file mode 100644
index 5041721fe1..0000000000
--- a/src/lib/libcrypto/man/lh_stats.3
+++ /dev/null
@@ -1,206 +0,0 @@
1.\" $OpenBSD: lh_stats.3,v 1.7 2020/03/29 17:05:02 schwarze Exp $
2.\" OpenSSL e2f92610 May 18 11:44:05 2016 -0400
3.\"
4.\" --------------------------------------------------------------------------
5.\" Major patches to this file were contributed by
6.\" Ulf Moeller <ulf@openssl.org>.
7.\" --------------------------------------------------------------------------
8.\" Copyright (c) 2000 The OpenSSL Project. All rights reserved.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\"
14.\" 1. Redistributions of source code must retain the above copyright
15.\" notice, this list of conditions and the following disclaimer.
16.\"
17.\" 2. Redistributions in binary form must reproduce the above copyright
18.\" notice, this list of conditions and the following disclaimer in
19.\" the documentation and/or other materials provided with the
20.\" distribution.
21.\"
22.\" 3. All advertising materials mentioning features or use of this
23.\" software must display the following acknowledgment:
24.\" "This product includes software developed by the OpenSSL Project
25.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
26.\"
27.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
28.\" endorse or promote products derived from this software without
29.\" prior written permission. For written permission, please contact
30.\" openssl-core@openssl.org.
31.\"
32.\" 5. Products derived from this software may not be called "OpenSSL"
33.\" nor may "OpenSSL" appear in their names without prior written
34.\" permission of the OpenSSL Project.
35.\"
36.\" 6. Redistributions of any form whatsoever must retain the following
37.\" acknowledgment:
38.\" "This product includes software developed by the OpenSSL Project
39.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)"
40.\"
41.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
42.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
44.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
45.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
46.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
47.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
48.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
50.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
51.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
52.\" OF THE POSSIBILITY OF SUCH DAMAGE.
53.\"
54.\" --------------------------------------------------------------------------
55.\" Parts of this file are derived from SSLeay documentation,
56.\" which is covered by the following Copyright and license:
57.\" --------------------------------------------------------------------------
58.\"
59.\" Copyright (C) 1995-1998 Tim Hudson (tjh@cryptsoft.com)
60.\" All rights reserved.
61.\"
62.\" This package is an SSL implementation written
63.\" by Eric Young (eay@cryptsoft.com).
64.\" The implementation was written so as to conform with Netscapes SSL.
65.\"
66.\" This library is free for commercial and non-commercial use as long as
67.\" the following conditions are aheared to. The following conditions
68.\" apply to all code found in this distribution, be it the RC4, RSA,
69.\" lhash, DES, etc., code; not just the SSL code. The SSL documentation
70.\" included with this distribution is covered by the same copyright terms
71.\" except that the holder is Tim Hudson (tjh@cryptsoft.com).
72.\"
73.\" Copyright remains Eric Young's, and as such any Copyright notices in
74.\" the code are not to be removed.
75.\" If this package is used in a product, Eric Young should be given
76.\" attribution as the author of the parts of the library used.
77.\" This can be in the form of a textual message at program startup or
78.\" in documentation (online or textual) provided with the package.
79.\"
80.\" Redistribution and use in source and binary forms, with or without
81.\" modification, are permitted provided that the following conditions
82.\" are met:
83.\" 1. Redistributions of source code must retain the copyright
84.\" notice, this list of conditions and the following disclaimer.
85.\" 2. Redistributions in binary form must reproduce the above copyright
86.\" notice, this list of conditions and the following disclaimer in the
87.\" documentation and/or other materials provided with the distribution.
88.\" 3. All advertising materials mentioning features or use of this software
89.\" must display the following acknowledgement:
90.\" "This product includes cryptographic software written by
91.\" Eric Young (eay@cryptsoft.com)"
92.\" The word 'cryptographic' can be left out if the rouines from the
93.\" library being used are not cryptographic related :-).
94.\" 4. If you include any Windows specific code (or a derivative thereof)
95.\" from the apps directory (application code) you must include an
96.\" acknowledgement: "This product includes software written by
97.\" Tim Hudson (tjh@cryptsoft.com)"
98.\"
99.\" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
100.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
101.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
102.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
103.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
104.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
105.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
106.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
107.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
108.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
109.\" SUCH DAMAGE.
110.\"
111.\" The licence and distribution terms for any publically available version or
112.\" derivative of this code cannot be changed. i.e. this code cannot simply be
113.\" copied and put under another distribution licence
114.\" [including the GNU Public Licence.]
115.\"
116.Dd $Mdocdate: March 29 2020 $
117.Dt LH_STATS 3
118.Os
119.Sh NAME
120.Nm lh_stats ,
121.Nm lh_node_stats ,
122.Nm lh_node_usage_stats ,
123.Nm lh_stats_bio ,
124.Nm lh_node_stats_bio ,
125.Nm lh_node_usage_stats_bio
126.Nd LHASH statistics
127.Sh SYNOPSIS
128.In openssl/lhash.h
129.Ft void
130.Fo lh_stats
131.Fa "LHASH *table"
132.Fa "FILE *out"
133.Fc
134.Ft void
135.Fo lh_node_stats
136.Fa "LHASH *table"
137.Fa "FILE *out"
138.Fc
139.Ft void
140.Fo lh_node_usage_stats
141.Fa "LHASH *table"
142.Fa "FILE *out"
143.Fc
144.Ft void
145.Fo lh_stats_bio
146.Fa "LHASH *table"
147.Fa "BIO *out"
148.Fc
149.Ft void
150.Fo lh_node_stats_bio
151.Fa "LHASH *table"
152.Fa "BIO *out"
153.Fc
154.Ft void
155.Fo lh_node_usage_stats_bio
156.Fa "LHASH *table"
157.Fa "BIO *out"
158.Fc
159.Sh DESCRIPTION
160The
161.Vt LHASH
162structure records statistics about most aspects of accessing the hash
163table.
164.Pp
165.Fn lh_stats
166prints out statistics on the size of the hash table, how many entries
167are in it, and the number and result of calls to the routines in this
168library.
169.Pp
170.Fn lh_node_stats
171prints the number of entries for each 'bucket' in the hash table.
172.Pp
173.Fn lh_node_usage_stats
174prints out a short summary of the state of the hash table.
175It prints the 'load' and the 'actual load'.
176The load is the average number of data items per 'bucket' in the hash
177table.
178The 'actual load' is the average number of items per 'bucket', but only
179for buckets which contain entries.
180So the 'actual load' is the average number of searches that will need to
181find an item in the hash table, while the 'load' is the average number
182that will be done to record a miss.
183.Pp
184.Fn lh_stats_bio ,
185.Fn lh_node_stats_bio ,
186and
187.Fn lh_node_usage_stats_bio
188are the same as the above, except that the output goes to a
189.Vt BIO .
190.Sh SEE ALSO
191.Xr BIO_new 3 ,
192.Xr lh_new 3
193.Sh HISTORY
194.Fn lh_stats ,
195.Fn lh_node_stats ,
196.Fn lh_node_usage_stats
197appeared in SSLeay 0.4.
198.Fn lh_stats_bio ,
199.Fn lh_node_stats_bio ,
200and
201.Fn lh_node_usage_stats_bio
202first appeared in SSLeay 0.6.0.
203These functions have been available since
204.Ox 2.4 .
205.Sh AUTHORS
206.An Eric Young
diff --git a/src/lib/libcrypto/stack/safestack.h b/src/lib/libcrypto/stack/safestack.h
index 4f575ba947..b64b865dc8 100644
--- a/src/lib/libcrypto/stack/safestack.h
+++ b/src/lib/libcrypto/stack/safestack.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: safestack.h,v 1.29 2023/08/03 16:32:15 tb Exp $ */ 1/* $OpenBSD: safestack.h,v 1.30 2024/03/02 11:04:52 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -1816,12 +1816,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1816#define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) 1816#define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh)
1817#define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) 1817#define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh)
1818#define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) 1818#define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh)
1819#define lh_ADDED_OBJ_node_stats_bio(lh,out) \
1820 LHM_lh_node_stats_bio(ADDED_OBJ,lh,out)
1821#define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \
1822 LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out)
1823#define lh_ADDED_OBJ_stats_bio(lh,out) \
1824 LHM_lh_stats_bio(ADDED_OBJ,lh,out)
1825#define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) 1819#define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh)
1826 1820
1827#define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) 1821#define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value)
@@ -1834,12 +1828,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1834#define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) 1828#define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh)
1835#define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) 1829#define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh)
1836#define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) 1830#define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh)
1837#define lh_CONF_VALUE_node_stats_bio(lh,out) \
1838 LHM_lh_node_stats_bio(CONF_VALUE,lh,out)
1839#define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \
1840 LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out)
1841#define lh_CONF_VALUE_stats_bio(lh,out) \
1842 LHM_lh_stats_bio(CONF_VALUE,lh,out)
1843#define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) 1831#define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh)
1844 1832
1845#define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) 1833#define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state)
@@ -1852,12 +1840,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1852#define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) 1840#define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh)
1853#define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) 1841#define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh)
1854#define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) 1842#define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh)
1855#define lh_ERR_STATE_node_stats_bio(lh,out) \
1856 LHM_lh_node_stats_bio(ERR_STATE,lh,out)
1857#define lh_ERR_STATE_node_usage_stats_bio(lh,out) \
1858 LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out)
1859#define lh_ERR_STATE_stats_bio(lh,out) \
1860 LHM_lh_stats_bio(ERR_STATE,lh,out)
1861#define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) 1843#define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh)
1862 1844
1863#define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) 1845#define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data)
@@ -1870,12 +1852,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1870#define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) 1852#define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh)
1871#define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) 1853#define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh)
1872#define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) 1854#define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh)
1873#define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \
1874 LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out)
1875#define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \
1876 LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out)
1877#define lh_ERR_STRING_DATA_stats_bio(lh,out) \
1878 LHM_lh_stats_bio(ERR_STRING_DATA,lh,out)
1879#define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) 1855#define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh)
1880 1856
1881#define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) 1857#define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item)
@@ -1888,12 +1864,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1888#define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) 1864#define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh)
1889#define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) 1865#define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh)
1890#define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh) 1866#define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh)
1891#define lh_EX_CLASS_ITEM_node_stats_bio(lh,out) \
1892 LHM_lh_node_stats_bio(EX_CLASS_ITEM,lh,out)
1893#define lh_EX_CLASS_ITEM_node_usage_stats_bio(lh,out) \
1894 LHM_lh_node_usage_stats_bio(EX_CLASS_ITEM,lh,out)
1895#define lh_EX_CLASS_ITEM_stats_bio(lh,out) \
1896 LHM_lh_stats_bio(EX_CLASS_ITEM,lh,out)
1897#define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) 1867#define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh)
1898 1868
1899#define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) 1869#define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function)
@@ -1906,12 +1876,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1906#define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) 1876#define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh)
1907#define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) 1877#define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh)
1908#define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) 1878#define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh)
1909#define lh_FUNCTION_node_stats_bio(lh,out) \
1910 LHM_lh_node_stats_bio(FUNCTION,lh,out)
1911#define lh_FUNCTION_node_usage_stats_bio(lh,out) \
1912 LHM_lh_node_usage_stats_bio(FUNCTION,lh,out)
1913#define lh_FUNCTION_stats_bio(lh,out) \
1914 LHM_lh_stats_bio(FUNCTION,lh,out)
1915#define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) 1879#define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh)
1916 1880
1917#define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) 1881#define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name)
@@ -1924,12 +1888,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1924#define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) 1888#define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh)
1925#define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) 1889#define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh)
1926#define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) 1890#define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh)
1927#define lh_OBJ_NAME_node_stats_bio(lh,out) \
1928 LHM_lh_node_stats_bio(OBJ_NAME,lh,out)
1929#define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \
1930 LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out)
1931#define lh_OBJ_NAME_stats_bio(lh,out) \
1932 LHM_lh_stats_bio(OBJ_NAME,lh,out)
1933#define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) 1891#define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh)
1934 1892
1935#define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) 1893#define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string)
@@ -1942,12 +1900,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1942#define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) 1900#define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh)
1943#define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) 1901#define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh)
1944#define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) 1902#define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh)
1945#define lh_OPENSSL_STRING_node_stats_bio(lh,out) \
1946 LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out)
1947#define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \
1948 LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out)
1949#define lh_OPENSSL_STRING_stats_bio(lh,out) \
1950 LHM_lh_stats_bio(OPENSSL_STRING,lh,out)
1951#define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) 1903#define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh)
1952 1904
1953#define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) 1905#define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session)
@@ -1960,12 +1912,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
1960#define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) 1912#define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh)
1961#define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) 1913#define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh)
1962#define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) 1914#define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh)
1963#define lh_SSL_SESSION_node_stats_bio(lh,out) \
1964 LHM_lh_node_stats_bio(SSL_SESSION,lh,out)
1965#define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \
1966 LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out)
1967#define lh_SSL_SESSION_stats_bio(lh,out) \
1968 LHM_lh_stats_bio(SSL_SESSION,lh,out)
1969#define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) 1915#define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh)
1970 1916
1971#endif /* !defined HEADER_SAFESTACK_H */ 1917#endif /* !defined HEADER_SAFESTACK_H */
diff --git a/src/lib/libcrypto/util/mkstack.pl b/src/lib/libcrypto/util/mkstack.pl
index 77b0ec4943..30afae7802 100644
--- a/src/lib/libcrypto/util/mkstack.pl
+++ b/src/lib/libcrypto/util/mkstack.pl
@@ -151,12 +151,6 @@ EOF
151#define lh_${type_thing}_error(lh) LHM_lh_error(${type_thing},lh) 151#define lh_${type_thing}_error(lh) LHM_lh_error(${type_thing},lh)
152#define lh_${type_thing}_num_items(lh) LHM_lh_num_items(${type_thing},lh) 152#define lh_${type_thing}_num_items(lh) LHM_lh_num_items(${type_thing},lh)
153#define lh_${type_thing}_down_load(lh) LHM_lh_down_load(${type_thing},lh) 153#define lh_${type_thing}_down_load(lh) LHM_lh_down_load(${type_thing},lh)
154#define lh_${type_thing}_node_stats_bio(lh,out) \\
155 LHM_lh_node_stats_bio(${type_thing},lh,out)
156#define lh_${type_thing}_node_usage_stats_bio(lh,out) \\
157 LHM_lh_node_usage_stats_bio(${type_thing},lh,out)
158#define lh_${type_thing}_stats_bio(lh,out) \\
159 LHM_lh_stats_bio(${type_thing},lh,out)
160#define lh_${type_thing}_free(lh) LHM_lh_free(${type_thing},lh) 154#define lh_${type_thing}_free(lh) LHM_lh_free(${type_thing},lh)
161EOF 155EOF
162 } 156 }