licentivo-launch 0.1.1

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 (143) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +35 -0
  4. data/ext/launch_native/extconf.rb +28 -0
  5. data/lib/licentivo_launch/vendor/licentivo.rb +262 -0
  6. data/lib/licentivo_launch.rb +352 -0
  7. data/vendor/LICENSE +21 -0
  8. data/vendor/NOTICE +17 -0
  9. data/vendor/VERSION +1 -0
  10. data/vendor/c/app.c +33 -0
  11. data/vendor/c/demo.c +77 -0
  12. data/vendor/c/feature_tasks.h +72 -0
  13. data/vendor/c/licentivo.c +382 -0
  14. data/vendor/c/licentivo.h +67 -0
  15. data/vendor/c/quickstart.c +51 -0
  16. data/vendor/c/test_vectors.c +4 -0
  17. data/vendor/c/vendor/Monocypher-LICENCE.md +173 -0
  18. data/vendor/c/vendor/cJSON-LICENSE +20 -0
  19. data/vendor/c/vendor/cJSON.c +3191 -0
  20. data/vendor/c/vendor/cJSON.h +306 -0
  21. data/vendor/c/vendor/monocypher-ed25519.c +500 -0
  22. data/vendor/c/vendor/monocypher-ed25519.h +140 -0
  23. data/vendor/c/vendor/monocypher.c +2956 -0
  24. data/vendor/c/vendor/monocypher.h +321 -0
  25. data/vendor/curl/COPYING.txt +22 -0
  26. data/vendor/curl/bin/libcurl-x64.dll +0 -0
  27. data/vendor/curl/include/brotli/decode.h +409 -0
  28. data/vendor/curl/include/brotli/encode.h +505 -0
  29. data/vendor/curl/include/brotli/port.h +302 -0
  30. data/vendor/curl/include/brotli/shared_dictionary.h +100 -0
  31. data/vendor/curl/include/brotli/types.h +83 -0
  32. data/vendor/curl/include/curl/curl.h +3374 -0
  33. data/vendor/curl/include/curl/curlver.h +77 -0
  34. data/vendor/curl/include/curl/easy.h +123 -0
  35. data/vendor/curl/include/curl/header.h +74 -0
  36. data/vendor/curl/include/curl/mprintf.h +85 -0
  37. data/vendor/curl/include/curl/multi.h +561 -0
  38. data/vendor/curl/include/curl/options.h +70 -0
  39. data/vendor/curl/include/curl/stdcheaders.h +35 -0
  40. data/vendor/curl/include/curl/system.h +399 -0
  41. data/vendor/curl/include/curl/typecheck-gcc.h +964 -0
  42. data/vendor/curl/include/curl/urlapi.h +156 -0
  43. data/vendor/curl/include/curl/websockets.h +98 -0
  44. data/vendor/curl/include/libpsl.h +207 -0
  45. data/vendor/curl/include/libssh2.h +1516 -0
  46. data/vendor/curl/include/libssh2_publickey.h +128 -0
  47. data/vendor/curl/include/libssh2_sftp.h +382 -0
  48. data/vendor/curl/include/nghttp2/nghttp2.h +6878 -0
  49. data/vendor/curl/include/nghttp2/nghttp2ver.h +42 -0
  50. data/vendor/curl/include/nghttp3/nghttp3.h +3704 -0
  51. data/vendor/curl/include/nghttp3/version.h +46 -0
  52. data/vendor/curl/include/ngtcp2/ngtcp2.h +7485 -0
  53. data/vendor/curl/include/ngtcp2/ngtcp2_crypto.h +1071 -0
  54. data/vendor/curl/include/ngtcp2/ngtcp2_crypto_quictls.h +147 -0
  55. data/vendor/curl/include/ngtcp2/version.h +51 -0
  56. data/vendor/curl/include/openssl/aes.h +120 -0
  57. data/vendor/curl/include/openssl/asn1.h +1121 -0
  58. data/vendor/curl/include/openssl/asn1t.h +996 -0
  59. data/vendor/curl/include/openssl/bio.h +716 -0
  60. data/vendor/curl/include/openssl/blowfish.h +106 -0
  61. data/vendor/curl/include/openssl/bn.h +480 -0
  62. data/vendor/curl/include/openssl/buffer.h +102 -0
  63. data/vendor/curl/include/openssl/camellia.h +121 -0
  64. data/vendor/curl/include/openssl/cast.h +99 -0
  65. data/vendor/curl/include/openssl/chacha.h +54 -0
  66. data/vendor/curl/include/openssl/cmac.h +81 -0
  67. data/vendor/curl/include/openssl/cms.h +541 -0
  68. data/vendor/curl/include/openssl/comp.h +7 -0
  69. data/vendor/curl/include/openssl/conf.h +189 -0
  70. data/vendor/curl/include/openssl/crypto.h +458 -0
  71. data/vendor/curl/include/openssl/ct.h +567 -0
  72. data/vendor/curl/include/openssl/curve25519.h +104 -0
  73. data/vendor/curl/include/openssl/des.h +215 -0
  74. data/vendor/curl/include/openssl/dh.h +245 -0
  75. data/vendor/curl/include/openssl/dsa.h +263 -0
  76. data/vendor/curl/include/openssl/dtls1.h +107 -0
  77. data/vendor/curl/include/openssl/ec.h +675 -0
  78. data/vendor/curl/include/openssl/ecdh.h +6 -0
  79. data/vendor/curl/include/openssl/ecdsa.h +6 -0
  80. data/vendor/curl/include/openssl/engine.h +215 -0
  81. data/vendor/curl/include/openssl/err.h +325 -0
  82. data/vendor/curl/include/openssl/evp.h +1288 -0
  83. data/vendor/curl/include/openssl/hkdf.h +65 -0
  84. data/vendor/curl/include/openssl/hmac.h +101 -0
  85. data/vendor/curl/include/openssl/idea.h +99 -0
  86. data/vendor/curl/include/openssl/kdf.h +137 -0
  87. data/vendor/curl/include/openssl/lhash.h +179 -0
  88. data/vendor/curl/include/openssl/md4.h +105 -0
  89. data/vendor/curl/include/openssl/md5.h +99 -0
  90. data/vendor/curl/include/openssl/mlkem.h +236 -0
  91. data/vendor/curl/include/openssl/modes.h +118 -0
  92. data/vendor/curl/include/openssl/obj_mac.h +4646 -0
  93. data/vendor/curl/include/openssl/objects.h +137 -0
  94. data/vendor/curl/include/openssl/ocsp.h +484 -0
  95. data/vendor/curl/include/openssl/opensslconf.h +16 -0
  96. data/vendor/curl/include/openssl/opensslfeatures.h +153 -0
  97. data/vendor/curl/include/openssl/opensslv.h +18 -0
  98. data/vendor/curl/include/openssl/ossl_typ.h +196 -0
  99. data/vendor/curl/include/openssl/pem.h +542 -0
  100. data/vendor/curl/include/openssl/pkcs12.h +284 -0
  101. data/vendor/curl/include/openssl/pkcs7.h +523 -0
  102. data/vendor/curl/include/openssl/poly1305.h +45 -0
  103. data/vendor/curl/include/openssl/posix_time.h +54 -0
  104. data/vendor/curl/include/openssl/rand.h +118 -0
  105. data/vendor/curl/include/openssl/rc2.h +101 -0
  106. data/vendor/curl/include/openssl/rc4.h +88 -0
  107. data/vendor/curl/include/openssl/ripemd.h +107 -0
  108. data/vendor/curl/include/openssl/rsa.h +603 -0
  109. data/vendor/curl/include/openssl/safestack.h +1739 -0
  110. data/vendor/curl/include/openssl/sha.h +190 -0
  111. data/vendor/curl/include/openssl/sm3.h +49 -0
  112. data/vendor/curl/include/openssl/sm4.h +47 -0
  113. data/vendor/curl/include/openssl/srtp.h +148 -0
  114. data/vendor/curl/include/openssl/ssl.h +2336 -0
  115. data/vendor/curl/include/openssl/ssl3.h +441 -0
  116. data/vendor/curl/include/openssl/stack.h +99 -0
  117. data/vendor/curl/include/openssl/tls1.h +764 -0
  118. data/vendor/curl/include/openssl/ts.h +660 -0
  119. data/vendor/curl/include/openssl/txt_db.h +112 -0
  120. data/vendor/curl/include/openssl/ui.h +397 -0
  121. data/vendor/curl/include/openssl/x509.h +1037 -0
  122. data/vendor/curl/include/openssl/x509_vfy.h +464 -0
  123. data/vendor/curl/include/openssl/x509v3.h +1039 -0
  124. data/vendor/curl/include/zconf.h +206 -0
  125. data/vendor/curl/include/zdict.h +481 -0
  126. data/vendor/curl/include/zlib.h +1859 -0
  127. data/vendor/curl/include/zlib_name_mangling.h +8 -0
  128. data/vendor/curl/include/zstd.h +3198 -0
  129. data/vendor/curl/include/zstd_errors.h +107 -0
  130. data/vendor/curl/lib/libcurl.dll.a +0 -0
  131. data/vendor/curl/licenses/brotli/LICENSE.txt +19 -0
  132. data/vendor/curl/licenses/certdata/LICENSE.url +2 -0
  133. data/vendor/curl/licenses/libpsl/COPYING.txt +20 -0
  134. data/vendor/curl/licenses/libressl/COPYING.txt +133 -0
  135. data/vendor/curl/licenses/libssh2/COPYING.txt +43 -0
  136. data/vendor/curl/licenses/nghttp2/COPYING.txt +23 -0
  137. data/vendor/curl/licenses/nghttp3/COPYING.txt +22 -0
  138. data/vendor/curl/licenses/ngtcp2/COPYING.txt +22 -0
  139. data/vendor/curl/licenses/psl/LICENSE.txt +373 -0
  140. data/vendor/curl/licenses/trurl/COPYING.txt +22 -0
  141. data/vendor/curl/licenses/zlibng/LICENSE.md +19 -0
  142. data/vendor/curl/licenses/zstd/LICENSE.txt +30 -0
  143. metadata +205 -0
@@ -0,0 +1,464 @@
1
+ /* $OpenBSD: x509_vfy.h,v 1.71 2025/10/24 11:33:38 tb 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
+ #ifndef HEADER_X509_H
60
+ #include <openssl/x509.h>
61
+ /* openssl/x509.h ends up #include-ing this file at about the only
62
+ * appropriate moment. */
63
+ #endif
64
+
65
+ #ifndef HEADER_X509_VFY_H
66
+ #define HEADER_X509_VFY_H
67
+
68
+ #include <openssl/opensslconf.h>
69
+
70
+ #ifndef OPENSSL_NO_LHASH
71
+ #include <openssl/lhash.h>
72
+ #endif
73
+ #include <openssl/bio.h>
74
+ #include <openssl/crypto.h>
75
+
76
+ #ifdef __cplusplus
77
+ extern "C" {
78
+ #endif
79
+
80
+ /*
81
+ * SSL_CTX -> X509_STORE
82
+ * -> X509_LOOKUP
83
+ * ->X509_LOOKUP_METHOD
84
+ * -> X509_LOOKUP
85
+ * ->X509_LOOKUP_METHOD
86
+ *
87
+ * SSL -> X509_STORE_CTX
88
+ * ->X509_STORE
89
+ *
90
+ * The X509_STORE holds the tables etc for verification stuff.
91
+ * A X509_STORE_CTX is used while validating a single certificate.
92
+ * The X509_STORE has X509_LOOKUPs for looking up certs.
93
+ * The X509_STORE then calls a function to actually verify the
94
+ * certificate chain.
95
+ */
96
+
97
+ typedef enum {
98
+ X509_LU_NONE,
99
+ X509_LU_X509,
100
+ X509_LU_CRL,
101
+ } X509_LOOKUP_TYPE;
102
+
103
+
104
+ DECLARE_STACK_OF(X509_LOOKUP)
105
+ DECLARE_STACK_OF(X509_OBJECT)
106
+ DECLARE_STACK_OF(X509_VERIFY_PARAM)
107
+
108
+ /* XXX - unused in OpenSSL. Can we remove this? */
109
+ typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID;
110
+
111
+
112
+ int X509_STORE_set_depth(X509_STORE *store, int depth);
113
+
114
+ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
115
+
116
+ #define X509_STORE_CTX_set_app_data(ctx,data) \
117
+ X509_STORE_CTX_set_ex_data(ctx,0,data)
118
+ #define X509_STORE_CTX_get_app_data(ctx) \
119
+ X509_STORE_CTX_get_ex_data(ctx,0)
120
+
121
+ #define X509_L_FILE_LOAD 1
122
+ #define X509_L_ADD_DIR 2
123
+ #define X509_L_MEM 3
124
+
125
+ #define X509_LOOKUP_load_file(x,name,type) \
126
+ X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL)
127
+
128
+ #define X509_LOOKUP_add_dir(x,name,type) \
129
+ X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL)
130
+
131
+ #define X509_LOOKUP_add_mem(x,iov,type) \
132
+ X509_LOOKUP_ctrl((x),X509_L_MEM,(const char *)(iov),\
133
+ (long)(type),NULL)
134
+
135
+ #define X509_V_OK 0
136
+ #define X509_V_ERR_UNSPECIFIED 1
137
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
138
+ #define X509_V_ERR_UNABLE_TO_GET_CRL 3
139
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
140
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
141
+ #define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
142
+ #define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
143
+ #define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
144
+ #define X509_V_ERR_CERT_NOT_YET_VALID 9
145
+ #define X509_V_ERR_CERT_HAS_EXPIRED 10
146
+ #define X509_V_ERR_CRL_NOT_YET_VALID 11
147
+ #define X509_V_ERR_CRL_HAS_EXPIRED 12
148
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
149
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
150
+ #define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
151
+ #define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
152
+ #define X509_V_ERR_OUT_OF_MEM 17
153
+ #define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
154
+ #define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
155
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
156
+ #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
157
+ #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22
158
+ #define X509_V_ERR_CERT_REVOKED 23
159
+ #define X509_V_ERR_INVALID_CA 24
160
+ #define X509_V_ERR_PATH_LENGTH_EXCEEDED 25
161
+ #define X509_V_ERR_INVALID_PURPOSE 26
162
+ #define X509_V_ERR_CERT_UNTRUSTED 27
163
+ #define X509_V_ERR_CERT_REJECTED 28
164
+ /* These are 'informational' when looking for issuer cert */
165
+ #define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29
166
+ #define X509_V_ERR_AKID_SKID_MISMATCH 30
167
+ #define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31
168
+ #define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32
169
+
170
+ #define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33
171
+ #define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
172
+ #define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
173
+ #define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
174
+ #define X509_V_ERR_INVALID_NON_CA 37
175
+ #define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
176
+ #define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
177
+ #define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
178
+
179
+ #define X509_V_ERR_INVALID_EXTENSION 41
180
+ #define X509_V_ERR_INVALID_POLICY_EXTENSION 42
181
+ #define X509_V_ERR_NO_EXPLICIT_POLICY 43
182
+ #define X509_V_ERR_DIFFERENT_CRL_SCOPE 44
183
+ #define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45
184
+
185
+ #define X509_V_ERR_UNNESTED_RESOURCE 46
186
+
187
+ #define X509_V_ERR_PERMITTED_VIOLATION 47
188
+ #define X509_V_ERR_EXCLUDED_VIOLATION 48
189
+ #define X509_V_ERR_SUBTREE_MINMAX 49
190
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51
191
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52
192
+ #define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53
193
+ #define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54
194
+
195
+ /* The application is not happy */
196
+ #define X509_V_ERR_APPLICATION_VERIFICATION 50
197
+
198
+ /* Host, email and IP check errors */
199
+ #define X509_V_ERR_HOSTNAME_MISMATCH 62
200
+ #define X509_V_ERR_EMAIL_MISMATCH 63
201
+ #define X509_V_ERR_IP_ADDRESS_MISMATCH 64
202
+
203
+ /* Caller error */
204
+ #define X509_V_ERR_INVALID_CALL 65
205
+ /* Issuer lookup error */
206
+ #define X509_V_ERR_STORE_LOOKUP 66
207
+
208
+ /* Security level errors */
209
+ #define X509_V_ERR_EE_KEY_TOO_SMALL 67
210
+ #define X509_V_ERR_CA_KEY_TOO_SMALL 68
211
+ #define X509_V_ERR_CA_MD_TOO_WEAK 69
212
+
213
+ /* Certificate verify flags */
214
+
215
+ /* Deprecated in 1.1.0, has no effect. Various FFI bindings still expose it. */
216
+ #define X509_V_FLAG_CB_ISSUER_CHECK 0x0
217
+ /* Use check time instead of current time */
218
+ #define X509_V_FLAG_USE_CHECK_TIME 0x2
219
+ /* Lookup CRLs */
220
+ #define X509_V_FLAG_CRL_CHECK 0x4
221
+ /* Lookup CRLs for whole chain */
222
+ #define X509_V_FLAG_CRL_CHECK_ALL 0x8
223
+ /* Ignore unhandled critical extensions */
224
+ #define X509_V_FLAG_IGNORE_CRITICAL 0x10
225
+ /* Disable workarounds for broken certificates */
226
+ #define X509_V_FLAG_X509_STRICT 0x20
227
+ /* Enable proxy certificate validation */
228
+ #define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
229
+ /* Does nothing as its functionality has been enabled by default */
230
+ #define X509_V_FLAG_POLICY_CHECK 0x80
231
+ /* Policy variable require-explicit-policy */
232
+ #define X509_V_FLAG_EXPLICIT_POLICY 0x100
233
+ /* Policy variable inhibit-any-policy */
234
+ #define X509_V_FLAG_INHIBIT_ANY 0x200
235
+ /* Policy variable inhibit-policy-mapping */
236
+ #define X509_V_FLAG_INHIBIT_MAP 0x400
237
+ /* Notify callback that policy is OK */
238
+ #define X509_V_FLAG_NOTIFY_POLICY 0x800
239
+ /* Extended CRL features such as indirect CRLs, alternate CRL signing keys */
240
+ #define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
241
+ /* Delta CRL support */
242
+ #define X509_V_FLAG_USE_DELTAS 0x2000
243
+ /* Check selfsigned CA signature */
244
+ #define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000
245
+ /* Use trusted store first */
246
+ #define X509_V_FLAG_TRUSTED_FIRST 0x8000
247
+ /* Allow partial chains if at least one certificate is in trusted store */
248
+ #define X509_V_FLAG_PARTIAL_CHAIN 0x80000
249
+
250
+ /* If the initial chain is not trusted, do not attempt to build an alternative
251
+ * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
252
+ * will force the behaviour to match that of previous versions. */
253
+ #define X509_V_FLAG_NO_ALT_CHAINS 0x100000
254
+
255
+ /* Do not check certificate or CRL validity against current time. */
256
+ #define X509_V_FLAG_NO_CHECK_TIME 0x200000
257
+
258
+ /* Force the use of the legacy certificate verification */
259
+ #define X509_V_FLAG_LEGACY_VERIFY 0x400000
260
+
261
+ #define X509_VP_FLAG_DEFAULT 0x1
262
+ #define X509_VP_FLAG_OVERWRITE 0x2
263
+ #define X509_VP_FLAG_RESET_FLAGS 0x4
264
+ #define X509_VP_FLAG_LOCKED 0x8
265
+ #define X509_VP_FLAG_ONCE 0x10
266
+
267
+ /*
268
+ * Obsolete internal use: mask of policy related options.
269
+ * This should really go away.
270
+ */
271
+ #define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \
272
+ | X509_V_FLAG_EXPLICIT_POLICY \
273
+ | X509_V_FLAG_INHIBIT_ANY \
274
+ | X509_V_FLAG_INHIBIT_MAP)
275
+
276
+ X509_OBJECT *X509_OBJECT_new(void);
277
+ void X509_OBJECT_free(X509_OBJECT *a);
278
+ int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
279
+ X509_NAME *name);
280
+ X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,
281
+ X509_LOOKUP_TYPE type, X509_NAME *name);
282
+ X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x);
283
+ X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a);
284
+ X509 *X509_OBJECT_get0_X509(const X509_OBJECT *xo);
285
+ X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo);
286
+
287
+ X509_STORE *X509_STORE_new(void);
288
+ void X509_STORE_free(X509_STORE *v);
289
+ int X509_STORE_up_ref(X509_STORE *x);
290
+ #define X509_STORE_get1_certs X509_STORE_CTX_get1_certs
291
+ #define X509_STORE_get1_crls X509_STORE_CTX_get1_crls
292
+ STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm);
293
+ STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm);
294
+ STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *xs);
295
+ STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs);
296
+ void *X509_STORE_get_ex_data(X509_STORE *xs, int idx);
297
+ int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data);
298
+
299
+ #define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \
300
+ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \
301
+ (newf), (dupf), (freef))
302
+
303
+ int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
304
+ int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
305
+ int X509_STORE_set_trust(X509_STORE *ctx, int trust);
306
+ int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm);
307
+ X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx);
308
+
309
+ typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
310
+
311
+ X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *);
312
+
313
+ void X509_STORE_set_verify_cb(X509_STORE *ctx,
314
+ int (*verify_cb)(int, X509_STORE_CTX *));
315
+ #define X509_STORE_set_verify_cb_func(ctx, func) \
316
+ X509_STORE_set_verify_cb((ctx), (func))
317
+
318
+ typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx,
319
+ X509 *subject, X509 *issuer);
320
+
321
+ X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *store);
322
+ void X509_STORE_set_check_issued(X509_STORE *store,
323
+ X509_STORE_CTX_check_issued_fn check_issued);
324
+ X509_STORE_CTX_check_issued_fn
325
+ X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx);
326
+
327
+ X509_STORE_CTX *X509_STORE_CTX_new(void);
328
+
329
+ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
330
+
331
+ void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
332
+ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
333
+ X509 *x509, STACK_OF(X509) *chain);
334
+ X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
335
+ STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *xs);
336
+ X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *xs);
337
+ STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx);
338
+ void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
339
+ void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
340
+ void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
341
+ void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
342
+
343
+ X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, const X509_LOOKUP_METHOD *m);
344
+
345
+ const X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
346
+ const X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
347
+ const X509_LOOKUP_METHOD *X509_LOOKUP_mem(void);
348
+
349
+ int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
350
+ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
351
+
352
+ int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
353
+ X509_NAME *name, X509_OBJECT *ret);
354
+ #define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject
355
+ X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,
356
+ X509_LOOKUP_TYPE type, X509_NAME *name);
357
+
358
+ int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
359
+ long argl, char **ret);
360
+
361
+ int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type);
362
+ int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type);
363
+ int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type);
364
+
365
+ void X509_LOOKUP_free(X509_LOOKUP *ctx);
366
+
367
+ int X509_STORE_load_locations(X509_STORE *ctx,
368
+ const char *file, const char *dir);
369
+ int X509_STORE_load_mem(X509_STORE *ctx, void *buf, int len);
370
+ int X509_STORE_set_default_paths(X509_STORE *ctx);
371
+
372
+ int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
373
+ CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
374
+ int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx,int idx,void *data);
375
+ void * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx,int idx);
376
+ int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
377
+ void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s);
378
+ int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
379
+ void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth);
380
+ X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
381
+ void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x);
382
+ X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx);
383
+ X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx);
384
+ X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx);
385
+ STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
386
+ STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);
387
+ void X509_STORE_CTX_set_cert(X509_STORE_CTX *c,X509 *x);
388
+ void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK_OF(X509) *sk);
389
+ void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c,STACK_OF(X509_CRL) *sk);
390
+ int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
391
+ int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
392
+ void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
393
+ void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
394
+ time_t t);
395
+ void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
396
+ int (*X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx))(X509_STORE_CTX *);
397
+ void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
398
+ int (*verify)(X509_STORE_CTX *));
399
+ int (*X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx))(int, X509_STORE_CTX *);
400
+ void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
401
+ int (*verify_cb)(int, X509_STORE_CTX *));
402
+
403
+ typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *);
404
+
405
+ void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify);
406
+ X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx);
407
+ #define X509_STORE_set_verify_func(ctx, func) \
408
+ X509_STORE_set_verify((ctx), (func))
409
+
410
+ int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx);
411
+
412
+ X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx);
413
+ void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
414
+ int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);
415
+
416
+ /* X509_VERIFY_PARAM functions */
417
+
418
+ X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
419
+ void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
420
+ int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
421
+ const X509_VERIFY_PARAM *from);
422
+ int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
423
+ const X509_VERIFY_PARAM *from);
424
+ int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name);
425
+ int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags);
426
+ int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
427
+ unsigned long flags);
428
+ unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param);
429
+ int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose);
430
+ int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust);
431
+ void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
432
+ void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level);
433
+ time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param);
434
+ void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
435
+ int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
436
+ ASN1_OBJECT *policy);
437
+ int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param,
438
+ STACK_OF(ASN1_OBJECT) *policies);
439
+ int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
440
+ int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, const char *name,
441
+ size_t namelen);
442
+ int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, const char *name,
443
+ size_t namelen);
444
+ unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param);
445
+ void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
446
+ unsigned int flags);
447
+ char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param);
448
+ int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, const char *email,
449
+ size_t emaillen);
450
+ int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, const unsigned char *ip,
451
+ size_t iplen);
452
+ int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc);
453
+ const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param);
454
+ const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
455
+ int X509_VERIFY_PARAM_get_count(void);
456
+
457
+ int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
458
+ const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
459
+ void X509_VERIFY_PARAM_table_cleanup(void);
460
+
461
+ #ifdef __cplusplus
462
+ }
463
+ #endif
464
+ #endif