node-bin-darwin-arm64 26.5.1 → 26.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +164 -0
  2. package/README.md +4 -2
  3. package/bin/node +0 -0
  4. package/include/node/common.gypi +2 -1
  5. package/include/node/config.gypi +1 -0
  6. package/include/node/node_version.h +2 -2
  7. package/include/node/openssl/archs/linux64-riscv64/asm/crypto/buildinf.h +35 -0
  8. package/include/node/openssl/archs/linux64-riscv64/asm/include/crypto/bn_conf.h +37 -0
  9. package/include/node/openssl/archs/linux64-riscv64/asm/include/crypto/dso_conf.h +25 -0
  10. package/include/node/openssl/archs/linux64-riscv64/asm/include/internal/param_names.h +473 -0
  11. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/asn1.h +1125 -0
  12. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/asn1t.h +935 -0
  13. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/bio.h +1028 -0
  14. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/cmp.h +741 -0
  15. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/cms.h +515 -0
  16. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/comp.h +101 -0
  17. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/conf.h +219 -0
  18. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/configuration.h +190 -0
  19. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/core_names.h +579 -0
  20. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/crmf.h +279 -0
  21. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/crypto.h +588 -0
  22. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/ct.h +574 -0
  23. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/err.h +517 -0
  24. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/ess.h +131 -0
  25. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/fipskey.h +47 -0
  26. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/lhash.h +417 -0
  27. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/ocsp.h +487 -0
  28. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/opensslv.h +131 -0
  29. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/pkcs12.h +370 -0
  30. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/pkcs7.h +435 -0
  31. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/safestack.h +303 -0
  32. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/srp.h +291 -0
  33. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/ssl.h +2940 -0
  34. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/ui.h +409 -0
  35. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/x509.h +1301 -0
  36. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/x509_acert.h +312 -0
  37. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/x509_vfy.h +904 -0
  38. package/include/node/openssl/archs/linux64-riscv64/asm/include/openssl/x509v3.h +2013 -0
  39. package/include/node/openssl/archs/linux64-riscv64/asm/include/progs.h +125 -0
  40. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_digests.h +162 -0
  41. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_dsa.h +96 -0
  42. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_ec.h +288 -0
  43. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_ecx.h +52 -0
  44. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_ml_dsa.h +42 -0
  45. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_rsa.h +189 -0
  46. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_slh_dsa.h +105 -0
  47. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_sm2.h +39 -0
  48. package/include/node/openssl/archs/linux64-riscv64/asm/providers/common/include/prov/der_wrap.h +48 -0
  49. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/crypto/buildinf.h +37 -0
  50. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/crypto/bn_conf.h +37 -0
  51. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/crypto/dso_conf.h +25 -0
  52. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/internal/param_names.h +473 -0
  53. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/asn1.h +1125 -0
  54. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/asn1t.h +935 -0
  55. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/bio.h +1028 -0
  56. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/cmp.h +741 -0
  57. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/cms.h +515 -0
  58. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/comp.h +101 -0
  59. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/conf.h +219 -0
  60. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/configuration.h +190 -0
  61. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/core_names.h +579 -0
  62. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/crmf.h +279 -0
  63. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/crypto.h +588 -0
  64. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/ct.h +574 -0
  65. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/err.h +517 -0
  66. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/ess.h +131 -0
  67. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/fipskey.h +47 -0
  68. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/lhash.h +417 -0
  69. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/ocsp.h +487 -0
  70. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/opensslv.h +131 -0
  71. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/pkcs12.h +370 -0
  72. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/pkcs7.h +435 -0
  73. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/safestack.h +303 -0
  74. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/srp.h +291 -0
  75. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/ssl.h +2940 -0
  76. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/ui.h +409 -0
  77. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/x509.h +1301 -0
  78. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/x509_acert.h +312 -0
  79. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/x509_vfy.h +904 -0
  80. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/openssl/x509v3.h +2013 -0
  81. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/include/progs.h +125 -0
  82. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_digests.h +162 -0
  83. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_dsa.h +96 -0
  84. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_ec.h +288 -0
  85. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_ecx.h +52 -0
  86. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_ml_dsa.h +42 -0
  87. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_rsa.h +189 -0
  88. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_slh_dsa.h +105 -0
  89. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_sm2.h +39 -0
  90. package/include/node/openssl/archs/linux64-riscv64/asm_avx2/providers/common/include/prov/der_wrap.h +48 -0
  91. package/include/node/openssl/asn1_asm.h +2 -0
  92. package/include/node/openssl/asn1_no-asm.h +2 -0
  93. package/include/node/openssl/asn1t_asm.h +2 -0
  94. package/include/node/openssl/asn1t_no-asm.h +2 -0
  95. package/include/node/openssl/bio_asm.h +2 -0
  96. package/include/node/openssl/bio_no-asm.h +2 -0
  97. package/include/node/openssl/bn_conf_asm.h +2 -0
  98. package/include/node/openssl/bn_conf_no-asm.h +2 -0
  99. package/include/node/openssl/cmp_asm.h +2 -0
  100. package/include/node/openssl/cmp_no-asm.h +2 -0
  101. package/include/node/openssl/cms_asm.h +2 -0
  102. package/include/node/openssl/cms_no-asm.h +2 -0
  103. package/include/node/openssl/comp_asm.h +2 -0
  104. package/include/node/openssl/comp_no-asm.h +2 -0
  105. package/include/node/openssl/conf_asm.h +2 -0
  106. package/include/node/openssl/conf_no-asm.h +2 -0
  107. package/include/node/openssl/configuration_asm.h +2 -0
  108. package/include/node/openssl/configuration_no-asm.h +2 -0
  109. package/include/node/openssl/core_names_asm.h +2 -0
  110. package/include/node/openssl/core_names_no-asm.h +2 -0
  111. package/include/node/openssl/crmf_asm.h +2 -0
  112. package/include/node/openssl/crmf_no-asm.h +2 -0
  113. package/include/node/openssl/crypto_asm.h +2 -0
  114. package/include/node/openssl/crypto_no-asm.h +2 -0
  115. package/include/node/openssl/ct_asm.h +2 -0
  116. package/include/node/openssl/ct_no-asm.h +2 -0
  117. package/include/node/openssl/dso_conf_asm.h +2 -0
  118. package/include/node/openssl/dso_conf_no-asm.h +2 -0
  119. package/include/node/openssl/err_asm.h +2 -0
  120. package/include/node/openssl/err_no-asm.h +2 -0
  121. package/include/node/openssl/ess_asm.h +2 -0
  122. package/include/node/openssl/ess_no-asm.h +2 -0
  123. package/include/node/openssl/fipskey_asm.h +2 -0
  124. package/include/node/openssl/fipskey_no-asm.h +2 -0
  125. package/include/node/openssl/lhash_asm.h +2 -0
  126. package/include/node/openssl/lhash_no-asm.h +2 -0
  127. package/include/node/openssl/ocsp_asm.h +2 -0
  128. package/include/node/openssl/ocsp_no-asm.h +2 -0
  129. package/include/node/openssl/opensslv_asm.h +2 -0
  130. package/include/node/openssl/opensslv_no-asm.h +2 -0
  131. package/include/node/openssl/param_names_asm.h +2 -0
  132. package/include/node/openssl/param_names_no-asm.h +2 -0
  133. package/include/node/openssl/pkcs12_asm.h +2 -0
  134. package/include/node/openssl/pkcs12_no-asm.h +2 -0
  135. package/include/node/openssl/pkcs7_asm.h +2 -0
  136. package/include/node/openssl/pkcs7_no-asm.h +2 -0
  137. package/include/node/openssl/safestack_asm.h +2 -0
  138. package/include/node/openssl/safestack_no-asm.h +2 -0
  139. package/include/node/openssl/srp_asm.h +2 -0
  140. package/include/node/openssl/srp_no-asm.h +2 -0
  141. package/include/node/openssl/ssl_asm.h +2 -0
  142. package/include/node/openssl/ssl_no-asm.h +2 -0
  143. package/include/node/openssl/ui_asm.h +2 -0
  144. package/include/node/openssl/ui_no-asm.h +2 -0
  145. package/include/node/openssl/x509_acert_asm.h +2 -0
  146. package/include/node/openssl/x509_acert_no-asm.h +2 -0
  147. package/include/node/openssl/x509_asm.h +2 -0
  148. package/include/node/openssl/x509_no-asm.h +2 -0
  149. package/include/node/openssl/x509_vfy_asm.h +2 -0
  150. package/include/node/openssl/x509_vfy_no-asm.h +2 -0
  151. package/include/node/openssl/x509v3_asm.h +2 -0
  152. package/include/node/openssl/x509v3_no-asm.h +2 -0
  153. package/include/node/v8-template.h +7 -0
  154. package/package.json +1 -1
  155. package/share/man/man1/node.1 +10 -7
@@ -0,0 +1,588 @@
1
+ /*
2
+ * WARNING: do not edit!
3
+ * Generated by Makefile from include/openssl/crypto.h.in
4
+ *
5
+ * Copyright 1995-2025 The OpenSSL Project Authors. All Rights Reserved.
6
+ * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
7
+ *
8
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
9
+ * this file except in compliance with the License. You can obtain a copy
10
+ * in the file LICENSE in the source distribution or at
11
+ * https://www.openssl.org/source/license.html
12
+ */
13
+
14
+ /* clang-format off */
15
+
16
+ /* clang-format on */
17
+
18
+ #ifndef OPENSSL_CRYPTO_H
19
+ #define OPENSSL_CRYPTO_H
20
+ #pragma once
21
+
22
+ #include <openssl/macros.h>
23
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
24
+ #define HEADER_CRYPTO_H
25
+ #endif
26
+
27
+ #include <stdlib.h>
28
+ #include <time.h>
29
+
30
+ #include <openssl/e_os2.h>
31
+
32
+ #ifndef OPENSSL_NO_STDIO
33
+ #include <stdio.h>
34
+ #endif
35
+
36
+ #include <openssl/safestack.h>
37
+ #include <openssl/opensslv.h>
38
+ #include <openssl/types.h>
39
+ #include <openssl/opensslconf.h>
40
+ #include <openssl/cryptoerr.h>
41
+ #include <openssl/core.h>
42
+
43
+ #ifdef CHARSET_EBCDIC
44
+ #include <openssl/ebcdic.h>
45
+ #endif
46
+
47
+ /*
48
+ * Resolve problems on some operating systems with symbol names that clash
49
+ * one way or another
50
+ */
51
+ #include <openssl/symhacks.h>
52
+
53
+ #ifndef OPENSSL_NO_DEPRECATED_1_1_0
54
+ #include <openssl/opensslv.h>
55
+ #endif
56
+
57
+ #ifdef __cplusplus
58
+ extern "C" {
59
+ #endif
60
+
61
+ #ifndef OPENSSL_NO_DEPRECATED_1_1_0
62
+ #define SSLeay OpenSSL_version_num
63
+ #define SSLeay_version OpenSSL_version
64
+ #define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
65
+ #define SSLEAY_VERSION OPENSSL_VERSION
66
+ #define SSLEAY_CFLAGS OPENSSL_CFLAGS
67
+ #define SSLEAY_BUILT_ON OPENSSL_BUILT_ON
68
+ #define SSLEAY_PLATFORM OPENSSL_PLATFORM
69
+ #define SSLEAY_DIR OPENSSL_DIR
70
+
71
+ /*
72
+ * Old type for allocating dynamic locks. No longer used. Use the new thread
73
+ * API instead.
74
+ */
75
+ typedef struct {
76
+ int dummy;
77
+ } CRYPTO_dynlock;
78
+
79
+ #endif /* OPENSSL_NO_DEPRECATED_1_1_0 */
80
+
81
+ typedef void CRYPTO_RWLOCK;
82
+
83
+ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void);
84
+ __owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock);
85
+ __owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock);
86
+ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);
87
+ void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);
88
+
89
+ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
90
+ int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret,
91
+ CRYPTO_RWLOCK *lock);
92
+ int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret,
93
+ CRYPTO_RWLOCK *lock);
94
+ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
95
+ CRYPTO_RWLOCK *lock);
96
+ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock);
97
+ int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock);
98
+ int CRYPTO_atomic_store(uint64_t *dst, uint64_t val, CRYPTO_RWLOCK *lock);
99
+
100
+ /* No longer needed, so this is a no-op */
101
+ #define OPENSSL_malloc_init() \
102
+ while (0) \
103
+ continue
104
+
105
+ #define OPENSSL_malloc(num) \
106
+ CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
107
+ #define OPENSSL_zalloc(num) \
108
+ CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE)
109
+ #define OPENSSL_aligned_alloc(num, alignment, freeptr) \
110
+ CRYPTO_aligned_alloc(num, alignment, freeptr, \
111
+ OPENSSL_FILE, OPENSSL_LINE)
112
+ #define OPENSSL_realloc(addr, num) \
113
+ CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE)
114
+ #define OPENSSL_clear_realloc(addr, old_num, num) \
115
+ CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE)
116
+ #define OPENSSL_clear_free(addr, num) \
117
+ CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE)
118
+ #define OPENSSL_free(addr) \
119
+ CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE)
120
+ #define OPENSSL_memdup(str, s) \
121
+ CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE)
122
+ #define OPENSSL_strdup(str) \
123
+ CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE)
124
+ #define OPENSSL_strndup(str, n) \
125
+ CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE)
126
+ #define OPENSSL_secure_malloc(num) \
127
+ CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE)
128
+ #define OPENSSL_secure_zalloc(num) \
129
+ CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE)
130
+ #define OPENSSL_secure_free(addr) \
131
+ CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE)
132
+ #define OPENSSL_secure_clear_free(addr, num) \
133
+ CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE)
134
+ #define OPENSSL_secure_actual_size(ptr) \
135
+ CRYPTO_secure_actual_size(ptr)
136
+
137
+ size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz);
138
+ size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz);
139
+ size_t OPENSSL_strnlen(const char *str, size_t maxlen);
140
+ int OPENSSL_strtoul(const char *str, char **endptr, int base, unsigned long *num);
141
+ int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength,
142
+ const unsigned char *buf, size_t buflen,
143
+ const char sep);
144
+ char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen);
145
+ int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen,
146
+ const char *str, const char sep);
147
+ unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen);
148
+ int OPENSSL_hexchar2int(unsigned char c);
149
+ int OPENSSL_strcasecmp(const char *s1, const char *s2);
150
+ int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n);
151
+
152
+ #define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U << (sizeof(int) * 8 - 1)) - 1) / sizeof(type))
153
+
154
+ /*
155
+ * These functions return the values of OPENSSL_VERSION_MAJOR,
156
+ * OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH, OPENSSL_VERSION_PRE_RELEASE
157
+ * and OPENSSL_VERSION_BUILD_METADATA, respectively.
158
+ */
159
+ unsigned int OPENSSL_version_major(void);
160
+ unsigned int OPENSSL_version_minor(void);
161
+ unsigned int OPENSSL_version_patch(void);
162
+ const char *OPENSSL_version_pre_release(void);
163
+ const char *OPENSSL_version_build_metadata(void);
164
+
165
+ unsigned long OpenSSL_version_num(void);
166
+ const char *OpenSSL_version(int type);
167
+ #define OPENSSL_VERSION 0
168
+ #define OPENSSL_CFLAGS 1
169
+ #define OPENSSL_BUILT_ON 2
170
+ #define OPENSSL_PLATFORM 3
171
+ #define OPENSSL_DIR 4
172
+ #define OPENSSL_ENGINES_DIR 5
173
+ #define OPENSSL_VERSION_STRING 6
174
+ #define OPENSSL_FULL_VERSION_STRING 7
175
+ #define OPENSSL_MODULES_DIR 8
176
+ #define OPENSSL_CPU_INFO 9
177
+ #define OPENSSL_WINCTX 10
178
+
179
+ const char *OPENSSL_info(int type);
180
+ /*
181
+ * The series starts at 1001 to avoid confusion with the OpenSSL_version
182
+ * types.
183
+ */
184
+ #define OPENSSL_INFO_CONFIG_DIR 1001
185
+ #define OPENSSL_INFO_ENGINES_DIR 1002
186
+ #define OPENSSL_INFO_MODULES_DIR 1003
187
+ #define OPENSSL_INFO_DSO_EXTENSION 1004
188
+ #define OPENSSL_INFO_DIR_FILENAME_SEPARATOR 1005
189
+ #define OPENSSL_INFO_LIST_SEPARATOR 1006
190
+ #define OPENSSL_INFO_SEED_SOURCE 1007
191
+ #define OPENSSL_INFO_CPU_SETTINGS 1008
192
+ #define OPENSSL_INFO_WINDOWS_CONTEXT 1009
193
+
194
+ int OPENSSL_issetugid(void);
195
+
196
+ struct crypto_ex_data_st {
197
+ OSSL_LIB_CTX *ctx;
198
+ STACK_OF(void) *sk;
199
+ };
200
+
201
+ /* clang-format off */
202
+ SKM_DEFINE_STACK_OF_INTERNAL(void, void, void)
203
+ #define sk_void_num(sk) OPENSSL_sk_num(ossl_check_const_void_sk_type(sk))
204
+ #define sk_void_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_void_sk_type(sk), (idx)))
205
+ #define sk_void_new(cmp) ((STACK_OF(void) *)OPENSSL_sk_new(ossl_check_void_compfunc_type(cmp)))
206
+ #define sk_void_new_null() ((STACK_OF(void) *)OPENSSL_sk_new_null())
207
+ #define sk_void_new_reserve(cmp, n) ((STACK_OF(void) *)OPENSSL_sk_new_reserve(ossl_check_void_compfunc_type(cmp), (n)))
208
+ #define sk_void_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_void_sk_type(sk), (n))
209
+ #define sk_void_free(sk) OPENSSL_sk_free(ossl_check_void_sk_type(sk))
210
+ #define sk_void_zero(sk) OPENSSL_sk_zero(ossl_check_void_sk_type(sk))
211
+ #define sk_void_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_void_sk_type(sk), (i)))
212
+ #define sk_void_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)))
213
+ #define sk_void_push(sk, ptr) OPENSSL_sk_push(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))
214
+ #define sk_void_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))
215
+ #define sk_void_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_void_sk_type(sk)))
216
+ #define sk_void_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_void_sk_type(sk)))
217
+ #define sk_void_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_void_sk_type(sk),ossl_check_void_freefunc_type(freefunc))
218
+ #define sk_void_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), (idx))
219
+ #define sk_void_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_void_sk_type(sk), (idx), ossl_check_void_type(ptr)))
220
+ #define sk_void_find(sk, ptr) OPENSSL_sk_find(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))
221
+ #define sk_void_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))
222
+ #define sk_void_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), pnum)
223
+ #define sk_void_sort(sk) OPENSSL_sk_sort(ossl_check_void_sk_type(sk))
224
+ #define sk_void_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_void_sk_type(sk))
225
+ #define sk_void_dup(sk) ((STACK_OF(void) *)OPENSSL_sk_dup(ossl_check_const_void_sk_type(sk)))
226
+ #define sk_void_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(void) *)OPENSSL_sk_deep_copy(ossl_check_const_void_sk_type(sk), ossl_check_void_copyfunc_type(copyfunc), ossl_check_void_freefunc_type(freefunc)))
227
+ #define sk_void_set_cmp_func(sk, cmp) ((sk_void_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_void_sk_type(sk), ossl_check_void_compfunc_type(cmp)))
228
+
229
+ /* clang-format on */
230
+
231
+ /*
232
+ * Per class, we have a STACK of function pointers.
233
+ */
234
+ #define CRYPTO_EX_INDEX_SSL 0
235
+ #define CRYPTO_EX_INDEX_SSL_CTX 1
236
+ #define CRYPTO_EX_INDEX_SSL_SESSION 2
237
+ #define CRYPTO_EX_INDEX_X509 3
238
+ #define CRYPTO_EX_INDEX_X509_STORE 4
239
+ #define CRYPTO_EX_INDEX_X509_STORE_CTX 5
240
+ #define CRYPTO_EX_INDEX_DH 6
241
+ #define CRYPTO_EX_INDEX_DSA 7
242
+ #define CRYPTO_EX_INDEX_EC_KEY 8
243
+ #define CRYPTO_EX_INDEX_RSA 9
244
+ #define CRYPTO_EX_INDEX_ENGINE 10
245
+ #define CRYPTO_EX_INDEX_UI 11
246
+ #define CRYPTO_EX_INDEX_BIO 12
247
+ #define CRYPTO_EX_INDEX_APP 13
248
+ #define CRYPTO_EX_INDEX_UI_METHOD 14
249
+ #define CRYPTO_EX_INDEX_RAND_DRBG 15
250
+ #define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG
251
+ #define CRYPTO_EX_INDEX_OSSL_LIB_CTX 16
252
+ #define CRYPTO_EX_INDEX_EVP_PKEY 17
253
+ #define CRYPTO_EX_INDEX__COUNT 18
254
+
255
+ typedef void CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
256
+ int idx, long argl, void *argp);
257
+ typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
258
+ int idx, long argl, void *argp);
259
+ typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
260
+ void **from_d, int idx, long argl, void *argp);
261
+ __owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,
262
+ CRYPTO_EX_new *new_func,
263
+ CRYPTO_EX_dup *dup_func,
264
+ CRYPTO_EX_free *free_func);
265
+ /* No longer use an index. */
266
+ int CRYPTO_free_ex_index(int class_index, int idx);
267
+
268
+ /*
269
+ * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a
270
+ * given class (invokes whatever per-class callbacks are applicable)
271
+ */
272
+ int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
273
+ int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
274
+ const CRYPTO_EX_DATA *from);
275
+
276
+ void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
277
+
278
+ /* Allocate a single item in the CRYPTO_EX_DATA variable */
279
+ int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad,
280
+ int idx);
281
+
282
+ /*
283
+ * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular
284
+ * index (relative to the class type involved)
285
+ */
286
+ int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
287
+ void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx);
288
+
289
+ #ifndef OPENSSL_NO_DEPRECATED_1_1_0
290
+ /*
291
+ * This function cleans up all "ex_data" state. It mustn't be called under
292
+ * potential race-conditions.
293
+ */
294
+ #define CRYPTO_cleanup_all_ex_data() \
295
+ while (0) \
296
+ continue
297
+
298
+ /*
299
+ * The old locking functions have been removed completely without compatibility
300
+ * macros. This is because the old functions either could not properly report
301
+ * errors, or the returned error values were not clearly documented.
302
+ * Replacing the locking functions with no-ops would cause race condition
303
+ * issues in the affected applications. It is far better for them to fail at
304
+ * compile time.
305
+ * On the other hand, the locking callbacks are no longer used. Consequently,
306
+ * the callback management functions can be safely replaced with no-op macros.
307
+ */
308
+ #define CRYPTO_num_locks() (1)
309
+ #define CRYPTO_set_locking_callback(func)
310
+ #define CRYPTO_get_locking_callback() (NULL)
311
+ #define CRYPTO_set_add_lock_callback(func)
312
+ #define CRYPTO_get_add_lock_callback() (NULL)
313
+
314
+ /*
315
+ * These defines where used in combination with the old locking callbacks,
316
+ * they are not called anymore, but old code that's not called might still
317
+ * use them.
318
+ */
319
+ #define CRYPTO_LOCK 1
320
+ #define CRYPTO_UNLOCK 2
321
+ #define CRYPTO_READ 4
322
+ #define CRYPTO_WRITE 8
323
+
324
+ /* This structure is no longer used */
325
+ typedef struct crypto_threadid_st {
326
+ int dummy;
327
+ } CRYPTO_THREADID;
328
+ /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
329
+ #define CRYPTO_THREADID_set_numeric(id, val)
330
+ #define CRYPTO_THREADID_set_pointer(id, ptr)
331
+ #define CRYPTO_THREADID_set_callback(threadid_func) (0)
332
+ #define CRYPTO_THREADID_get_callback() (NULL)
333
+ #define CRYPTO_THREADID_current(id)
334
+ #define CRYPTO_THREADID_cmp(a, b) (-1)
335
+ #define CRYPTO_THREADID_cpy(dest, src)
336
+ #define CRYPTO_THREADID_hash(id) (0UL)
337
+
338
+ #ifndef OPENSSL_NO_DEPRECATED_1_0_0
339
+ #define CRYPTO_set_id_callback(func)
340
+ #define CRYPTO_get_id_callback() (NULL)
341
+ #define CRYPTO_thread_id() (0UL)
342
+ #endif /* OPENSSL_NO_DEPRECATED_1_0_0 */
343
+
344
+ #define CRYPTO_set_dynlock_create_callback(dyn_create_function)
345
+ #define CRYPTO_set_dynlock_lock_callback(dyn_lock_function)
346
+ #define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function)
347
+ #define CRYPTO_get_dynlock_create_callback() (NULL)
348
+ #define CRYPTO_get_dynlock_lock_callback() (NULL)
349
+ #define CRYPTO_get_dynlock_destroy_callback() (NULL)
350
+ #endif /* OPENSSL_NO_DEPRECATED_1_1_0 */
351
+
352
+ typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line);
353
+ typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file,
354
+ int line);
355
+ typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line);
356
+ int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn,
357
+ CRYPTO_realloc_fn realloc_fn,
358
+ CRYPTO_free_fn free_fn);
359
+ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn,
360
+ CRYPTO_realloc_fn *realloc_fn,
361
+ CRYPTO_free_fn *free_fn);
362
+
363
+ OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line);
364
+ OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line);
365
+ OSSL_CRYPTO_ALLOC void *CRYPTO_aligned_alloc(size_t num, size_t align,
366
+ void **freeptr, const char *file,
367
+ int line);
368
+ void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line);
369
+ char *CRYPTO_strdup(const char *str, const char *file, int line);
370
+ char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line);
371
+ void CRYPTO_free(void *ptr, const char *file, int line);
372
+ void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line);
373
+ void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line);
374
+ void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num,
375
+ const char *file, int line);
376
+
377
+ int CRYPTO_secure_malloc_init(size_t sz, size_t minsize);
378
+ int CRYPTO_secure_malloc_done(void);
379
+ OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line);
380
+ OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line);
381
+ void CRYPTO_secure_free(void *ptr, const char *file, int line);
382
+ void CRYPTO_secure_clear_free(void *ptr, size_t num,
383
+ const char *file, int line);
384
+ int CRYPTO_secure_allocated(const void *ptr);
385
+ int CRYPTO_secure_malloc_initialized(void);
386
+ size_t CRYPTO_secure_actual_size(void *ptr);
387
+ size_t CRYPTO_secure_used(void);
388
+
389
+ void OPENSSL_cleanse(void *ptr, size_t len);
390
+
391
+ #ifndef OPENSSL_NO_CRYPTO_MDEBUG
392
+ /*
393
+ * The following can be used to detect memory leaks in the library. If
394
+ * used, it turns on malloc checking
395
+ */
396
+ #define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */
397
+ #define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */
398
+ #define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */
399
+ #define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */
400
+
401
+ /* max allowed length for value of OPENSSL_MALLOC_FAILURES env var. */
402
+ #define CRYPTO_MEM_CHECK_MAX_FS 256
403
+
404
+ void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount);
405
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
406
+ #define OPENSSL_mem_debug_push(info) \
407
+ CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE)
408
+ #define OPENSSL_mem_debug_pop() \
409
+ CRYPTO_mem_debug_pop()
410
+ #endif
411
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
412
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_set_mem_debug(int flag);
413
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_ctrl(int mode);
414
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_push(const char *info,
415
+ const char *file, int line);
416
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_pop(void);
417
+ OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_malloc(void *addr, size_t num,
418
+ int flag,
419
+ const char *file, int line);
420
+ OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_realloc(void *addr1, void *addr2,
421
+ size_t num, int flag,
422
+ const char *file, int line);
423
+ OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_free(void *addr, int flag,
424
+ const char *file, int line);
425
+ OSSL_DEPRECATEDIN_3_0
426
+ int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void *u),
427
+ void *u);
428
+ #endif
429
+ #ifndef OPENSSL_NO_STDIO
430
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
431
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks_fp(FILE *);
432
+ #endif
433
+ #endif
434
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
435
+ OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks(BIO *bio);
436
+ #endif
437
+ #endif /* OPENSSL_NO_CRYPTO_MDEBUG */
438
+
439
+ /* die if we have to */
440
+ ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line);
441
+ #ifndef OPENSSL_NO_DEPRECATED_1_1_0
442
+ #define OpenSSLDie(f, l, a) OPENSSL_die((a), (f), (l))
443
+ #endif
444
+ #define OPENSSL_assert(e) \
445
+ (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1))
446
+
447
+ int OPENSSL_isservice(void);
448
+
449
+ void OPENSSL_init(void);
450
+ #ifdef OPENSSL_SYS_UNIX
451
+ #ifndef OPENSSL_NO_DEPRECATED_3_0
452
+ OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_prepare(void);
453
+ OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_parent(void);
454
+ OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_child(void);
455
+ #endif
456
+ #endif
457
+
458
+ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result);
459
+ int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec);
460
+ int OPENSSL_gmtime_diff(int *pday, int *psec,
461
+ const struct tm *from, const struct tm *to);
462
+
463
+ /*
464
+ * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal.
465
+ * It takes an amount of time dependent on |len|, but independent of the
466
+ * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements
467
+ * into a defined order as the return value when a != b is undefined, other
468
+ * than to be non-zero.
469
+ */
470
+ int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len);
471
+
472
+ /* Standard initialisation options */
473
+ #define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L
474
+ #define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L
475
+ #define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L
476
+ #define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L
477
+ #define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L
478
+ #define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L
479
+ #define OPENSSL_INIT_LOAD_CONFIG 0x00000040L
480
+ #define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L
481
+ #define OPENSSL_INIT_ASYNC 0x00000100L
482
+ #define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L
483
+ #define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L
484
+ #define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L
485
+ #define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L
486
+ #define OPENSSL_INIT_ENGINE_CAPI 0x00002000L
487
+ #define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L
488
+ #define OPENSSL_INIT_ENGINE_AFALG 0x00008000L
489
+ /* FREE: 0x00010000L */
490
+ #define OPENSSL_INIT_ATFORK 0x00020000L
491
+ /* OPENSSL_INIT_BASE_ONLY 0x00040000L */
492
+ #define OPENSSL_INIT_NO_ATEXIT 0x00080000L
493
+ /* OPENSSL_INIT flag range 0x03f00000 reserved for OPENSSL_init_ssl() */
494
+ /* FREE: 0x04000000L */
495
+ /* FREE: 0x08000000L */
496
+ /* FREE: 0x10000000L */
497
+ /* FREE: 0x20000000L */
498
+ /* FREE: 0x40000000L */
499
+ /* FREE: 0x80000000L */
500
+ /* Max OPENSSL_INIT flag value is 0x80000000 */
501
+
502
+ /* openssl and dasync not counted as builtin */
503
+ #define OPENSSL_INIT_ENGINE_ALL_BUILTIN \
504
+ (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \
505
+ | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | OPENSSL_INIT_ENGINE_PADLOCK)
506
+
507
+ /* Library initialisation functions */
508
+ void OPENSSL_cleanup(void);
509
+ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
510
+ int OPENSSL_atexit(void (*handler)(void));
511
+ void OPENSSL_thread_stop(void);
512
+ void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx);
513
+
514
+ /* Low-level control of initialization */
515
+ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void);
516
+ #ifndef OPENSSL_NO_STDIO
517
+ int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
518
+ const char *config_filename);
519
+ void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings,
520
+ unsigned long flags);
521
+ int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings,
522
+ const char *config_appname);
523
+ #endif
524
+ void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings);
525
+
526
+ #if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG)
527
+ #if defined(_WIN32)
528
+ #if defined(BASETYPES) || defined(_WINDEF_H)
529
+ /* application has to include <windows.h> in order to use this */
530
+ typedef DWORD CRYPTO_THREAD_LOCAL;
531
+ typedef DWORD CRYPTO_THREAD_ID;
532
+
533
+ typedef LONG CRYPTO_ONCE;
534
+ #define CRYPTO_ONCE_STATIC_INIT 0
535
+ #endif
536
+ #else
537
+ #if defined(__TANDEM) && defined(_SPT_MODEL_)
538
+ #define SPT_THREAD_SIGNAL 1
539
+ #define SPT_THREAD_AWARE 1
540
+ #include <spthread.h>
541
+ #else
542
+ #include <pthread.h>
543
+ #endif
544
+ typedef pthread_once_t CRYPTO_ONCE;
545
+ typedef pthread_key_t CRYPTO_THREAD_LOCAL;
546
+ typedef pthread_t CRYPTO_THREAD_ID;
547
+
548
+ #define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT
549
+ #endif
550
+ #endif
551
+
552
+ #if !defined(CRYPTO_ONCE_STATIC_INIT)
553
+ typedef unsigned int CRYPTO_ONCE;
554
+ typedef unsigned int CRYPTO_THREAD_LOCAL;
555
+ typedef unsigned int CRYPTO_THREAD_ID;
556
+ #define CRYPTO_ONCE_STATIC_INIT 0
557
+ #endif
558
+
559
+ int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void));
560
+
561
+ int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *));
562
+ void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key);
563
+ int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val);
564
+ int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key);
565
+
566
+ CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void);
567
+ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b);
568
+
569
+ OSSL_LIB_CTX *OSSL_LIB_CTX_new(void);
570
+ OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle,
571
+ const OSSL_DISPATCH *in);
572
+ OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle,
573
+ const OSSL_DISPATCH *in);
574
+ int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file);
575
+ void OSSL_LIB_CTX_free(OSSL_LIB_CTX *);
576
+ OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void);
577
+ OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx);
578
+ int OSSL_LIB_CTX_get_conf_diagnostics(OSSL_LIB_CTX *ctx);
579
+ void OSSL_LIB_CTX_set_conf_diagnostics(OSSL_LIB_CTX *ctx, int value);
580
+
581
+ void OSSL_sleep(uint64_t millis);
582
+
583
+ void *OSSL_LIB_CTX_get_data(OSSL_LIB_CTX *ctx, int index);
584
+
585
+ #ifdef __cplusplus
586
+ }
587
+ #endif
588
+ #endif