@annadata/capacitor-mqtt-quic 0.1.0 → 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.
- package/ios/include/nghttp3/nghttp3.h +3295 -0
- package/ios/include/nghttp3/version.h +46 -0
- package/ios/include/ngtcp2/ngtcp2.h +6254 -0
- package/ios/include/ngtcp2/ngtcp2_crypto.h +1037 -0
- package/ios/include/ngtcp2/ngtcp2_crypto_quictls.h +147 -0
- package/ios/include/ngtcp2/version.h +51 -0
- package/ios/include/openssl/aes.h +111 -0
- package/ios/include/openssl/asn1.h +1131 -0
- package/ios/include/openssl/asn1_mac.h +10 -0
- package/ios/include/openssl/asn1err.h +140 -0
- package/ios/include/openssl/asn1t.h +946 -0
- package/ios/include/openssl/async.h +96 -0
- package/ios/include/openssl/asyncerr.h +29 -0
- package/ios/include/openssl/bio.h +887 -0
- package/ios/include/openssl/bioerr.h +65 -0
- package/ios/include/openssl/blowfish.h +78 -0
- package/ios/include/openssl/bn.h +584 -0
- package/ios/include/openssl/bnerr.h +47 -0
- package/ios/include/openssl/buffer.h +62 -0
- package/ios/include/openssl/buffererr.h +25 -0
- package/ios/include/openssl/camellia.h +117 -0
- package/ios/include/openssl/cast.h +71 -0
- package/ios/include/openssl/cmac.h +52 -0
- package/ios/include/openssl/cmp.h +597 -0
- package/ios/include/openssl/cmp_util.h +56 -0
- package/ios/include/openssl/cmperr.h +116 -0
- package/ios/include/openssl/cms.h +493 -0
- package/ios/include/openssl/cmserr.h +124 -0
- package/ios/include/openssl/comp.h +59 -0
- package/ios/include/openssl/comperr.h +31 -0
- package/ios/include/openssl/conf.h +214 -0
- package/ios/include/openssl/conf_api.h +46 -0
- package/ios/include/openssl/conferr.h +52 -0
- package/ios/include/openssl/configuration.h +149 -0
- package/ios/include/openssl/conftypes.h +44 -0
- package/ios/include/openssl/core.h +233 -0
- package/ios/include/openssl/core_dispatch.h +960 -0
- package/ios/include/openssl/core_names.h +561 -0
- package/ios/include/openssl/core_object.h +41 -0
- package/ios/include/openssl/crmf.h +227 -0
- package/ios/include/openssl/crmferr.h +50 -0
- package/ios/include/openssl/crypto.h +558 -0
- package/ios/include/openssl/cryptoerr.h +55 -0
- package/ios/include/openssl/cryptoerr_legacy.h +1466 -0
- package/ios/include/openssl/ct.h +573 -0
- package/ios/include/openssl/cterr.h +45 -0
- package/ios/include/openssl/decoder.h +133 -0
- package/ios/include/openssl/decodererr.h +28 -0
- package/ios/include/openssl/des.h +211 -0
- package/ios/include/openssl/dh.h +335 -0
- package/ios/include/openssl/dherr.h +58 -0
- package/ios/include/openssl/dsa.h +280 -0
- package/ios/include/openssl/dsaerr.h +44 -0
- package/ios/include/openssl/dtls1.h +57 -0
- package/ios/include/openssl/e_os2.h +308 -0
- package/ios/include/openssl/ebcdic.h +39 -0
- package/ios/include/openssl/ec.h +1572 -0
- package/ios/include/openssl/ecdh.h +10 -0
- package/ios/include/openssl/ecdsa.h +10 -0
- package/ios/include/openssl/ecerr.h +104 -0
- package/ios/include/openssl/encoder.h +124 -0
- package/ios/include/openssl/encodererr.h +28 -0
- package/ios/include/openssl/engine.h +833 -0
- package/ios/include/openssl/engineerr.h +63 -0
- package/ios/include/openssl/err.h +504 -0
- package/ios/include/openssl/ess.h +128 -0
- package/ios/include/openssl/esserr.h +32 -0
- package/ios/include/openssl/evp.h +2175 -0
- package/ios/include/openssl/evperr.h +134 -0
- package/ios/include/openssl/fips_names.h +77 -0
- package/ios/include/openssl/fipskey.h +36 -0
- package/ios/include/openssl/hmac.h +62 -0
- package/ios/include/openssl/http.h +109 -0
- package/ios/include/openssl/httperr.h +55 -0
- package/ios/include/openssl/idea.h +82 -0
- package/ios/include/openssl/kdf.h +138 -0
- package/ios/include/openssl/kdferr.h +16 -0
- package/ios/include/openssl/lhash.h +331 -0
- package/ios/include/openssl/macros.h +325 -0
- package/ios/include/openssl/md2.h +56 -0
- package/ios/include/openssl/md4.h +63 -0
- package/ios/include/openssl/md5.h +62 -0
- package/ios/include/openssl/mdc2.h +55 -0
- package/ios/include/openssl/modes.h +219 -0
- package/ios/include/openssl/obj_mac.h +5481 -0
- package/ios/include/openssl/objects.h +183 -0
- package/ios/include/openssl/objectserr.h +28 -0
- package/ios/include/openssl/ocsp.h +483 -0
- package/ios/include/openssl/ocsperr.h +53 -0
- package/ios/include/openssl/opensslconf.h +17 -0
- package/ios/include/openssl/opensslv.h +114 -0
- package/ios/include/openssl/ossl_typ.h +16 -0
- package/ios/include/openssl/param_build.h +63 -0
- package/ios/include/openssl/params.h +160 -0
- package/ios/include/openssl/pem.h +541 -0
- package/ios/include/openssl/pem2.h +19 -0
- package/ios/include/openssl/pemerr.h +58 -0
- package/ios/include/openssl/pkcs12.h +353 -0
- package/ios/include/openssl/pkcs12err.h +45 -0
- package/ios/include/openssl/pkcs7.h +430 -0
- package/ios/include/openssl/pkcs7err.h +63 -0
- package/ios/include/openssl/prov_ssl.h +34 -0
- package/ios/include/openssl/proverr.h +149 -0
- package/ios/include/openssl/provider.h +60 -0
- package/ios/include/openssl/quic.h +19 -0
- package/ios/include/openssl/rand.h +125 -0
- package/ios/include/openssl/randerr.h +69 -0
- package/ios/include/openssl/rc2.h +68 -0
- package/ios/include/openssl/rc4.h +47 -0
- package/ios/include/openssl/rc5.h +79 -0
- package/ios/include/openssl/ripemd.h +59 -0
- package/ios/include/openssl/rsa.h +610 -0
- package/ios/include/openssl/rsaerr.h +107 -0
- package/ios/include/openssl/safestack.h +297 -0
- package/ios/include/openssl/seed.h +113 -0
- package/ios/include/openssl/self_test.h +94 -0
- package/ios/include/openssl/sha.h +138 -0
- package/ios/include/openssl/srp.h +285 -0
- package/ios/include/openssl/srtp.h +56 -0
- package/ios/include/openssl/ssl.h +2671 -0
- package/ios/include/openssl/ssl2.h +30 -0
- package/ios/include/openssl/ssl3.h +347 -0
- package/ios/include/openssl/sslerr.h +348 -0
- package/ios/include/openssl/sslerr_legacy.h +468 -0
- package/ios/include/openssl/stack.h +90 -0
- package/ios/include/openssl/store.h +369 -0
- package/ios/include/openssl/storeerr.h +49 -0
- package/ios/include/openssl/symhacks.h +39 -0
- package/ios/include/openssl/tls1.h +1186 -0
- package/ios/include/openssl/trace.h +312 -0
- package/ios/include/openssl/ts.h +505 -0
- package/ios/include/openssl/tserr.h +67 -0
- package/ios/include/openssl/txt_db.h +63 -0
- package/ios/include/openssl/types.h +239 -0
- package/ios/include/openssl/ui.h +407 -0
- package/ios/include/openssl/uierr.h +38 -0
- package/ios/include/openssl/whrlpool.h +62 -0
- package/ios/include/openssl/x509.h +1279 -0
- package/ios/include/openssl/x509_vfy.h +894 -0
- package/ios/include/openssl/x509err.h +69 -0
- package/ios/include/openssl/x509v3.h +1453 -0
- package/ios/include/openssl/x509v3err.h +93 -0
- package/ios/libs/libcrypto.a +0 -0
- package/ios/libs/libnghttp3.a +0 -0
- package/ios/libs/libngtcp2.a +0 -0
- package/ios/libs/libngtcp2_crypto_quictls.a +0 -0
- package/ios/libs/libssl.a +0 -0
- package/package.json +2 -2
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2001-2022 The OpenSSL Project Authors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
5
|
+
* this file except in compliance with the License. You can obtain a copy
|
|
6
|
+
* in the file LICENSE in the source distribution or at
|
|
7
|
+
* https://www.openssl.org/source/license.html
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Unfortunate workaround to avoid symbol conflict with wincrypt.h
|
|
12
|
+
* See https://github.com/openssl/openssl/issues/9981
|
|
13
|
+
*/
|
|
14
|
+
#ifdef _WIN32
|
|
15
|
+
# define WINCRYPT_USE_SYMBOL_PREFIX
|
|
16
|
+
# undef X509_NAME
|
|
17
|
+
# undef X509_EXTENSIONS
|
|
18
|
+
# undef PKCS7_SIGNER_INFO
|
|
19
|
+
# undef OCSP_REQUEST
|
|
20
|
+
# undef OCSP_RESPONSE
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#ifndef OPENSSL_TYPES_H
|
|
24
|
+
# define OPENSSL_TYPES_H
|
|
25
|
+
|
|
26
|
+
# include <limits.h>
|
|
27
|
+
|
|
28
|
+
# ifdef __cplusplus
|
|
29
|
+
extern "C" {
|
|
30
|
+
# endif
|
|
31
|
+
|
|
32
|
+
# include <openssl/e_os2.h>
|
|
33
|
+
# include <openssl/safestack.h>
|
|
34
|
+
# include <openssl/macros.h>
|
|
35
|
+
|
|
36
|
+
typedef struct ossl_provider_st OSSL_PROVIDER; /* Provider Object */
|
|
37
|
+
|
|
38
|
+
# ifdef NO_ASN1_TYPEDEFS
|
|
39
|
+
# define ASN1_INTEGER ASN1_STRING
|
|
40
|
+
# define ASN1_ENUMERATED ASN1_STRING
|
|
41
|
+
# define ASN1_BIT_STRING ASN1_STRING
|
|
42
|
+
# define ASN1_OCTET_STRING ASN1_STRING
|
|
43
|
+
# define ASN1_PRINTABLESTRING ASN1_STRING
|
|
44
|
+
# define ASN1_T61STRING ASN1_STRING
|
|
45
|
+
# define ASN1_IA5STRING ASN1_STRING
|
|
46
|
+
# define ASN1_UTCTIME ASN1_STRING
|
|
47
|
+
# define ASN1_GENERALIZEDTIME ASN1_STRING
|
|
48
|
+
# define ASN1_TIME ASN1_STRING
|
|
49
|
+
# define ASN1_GENERALSTRING ASN1_STRING
|
|
50
|
+
# define ASN1_UNIVERSALSTRING ASN1_STRING
|
|
51
|
+
# define ASN1_BMPSTRING ASN1_STRING
|
|
52
|
+
# define ASN1_VISIBLESTRING ASN1_STRING
|
|
53
|
+
# define ASN1_UTF8STRING ASN1_STRING
|
|
54
|
+
# define ASN1_BOOLEAN int
|
|
55
|
+
# define ASN1_NULL int
|
|
56
|
+
# else
|
|
57
|
+
typedef struct asn1_string_st ASN1_INTEGER;
|
|
58
|
+
typedef struct asn1_string_st ASN1_ENUMERATED;
|
|
59
|
+
typedef struct asn1_string_st ASN1_BIT_STRING;
|
|
60
|
+
typedef struct asn1_string_st ASN1_OCTET_STRING;
|
|
61
|
+
typedef struct asn1_string_st ASN1_PRINTABLESTRING;
|
|
62
|
+
typedef struct asn1_string_st ASN1_T61STRING;
|
|
63
|
+
typedef struct asn1_string_st ASN1_IA5STRING;
|
|
64
|
+
typedef struct asn1_string_st ASN1_GENERALSTRING;
|
|
65
|
+
typedef struct asn1_string_st ASN1_UNIVERSALSTRING;
|
|
66
|
+
typedef struct asn1_string_st ASN1_BMPSTRING;
|
|
67
|
+
typedef struct asn1_string_st ASN1_UTCTIME;
|
|
68
|
+
typedef struct asn1_string_st ASN1_TIME;
|
|
69
|
+
typedef struct asn1_string_st ASN1_GENERALIZEDTIME;
|
|
70
|
+
typedef struct asn1_string_st ASN1_VISIBLESTRING;
|
|
71
|
+
typedef struct asn1_string_st ASN1_UTF8STRING;
|
|
72
|
+
typedef struct asn1_string_st ASN1_STRING;
|
|
73
|
+
typedef int ASN1_BOOLEAN;
|
|
74
|
+
typedef int ASN1_NULL;
|
|
75
|
+
# endif
|
|
76
|
+
|
|
77
|
+
typedef struct asn1_type_st ASN1_TYPE;
|
|
78
|
+
typedef struct asn1_object_st ASN1_OBJECT;
|
|
79
|
+
typedef struct asn1_string_table_st ASN1_STRING_TABLE;
|
|
80
|
+
|
|
81
|
+
typedef struct ASN1_ITEM_st ASN1_ITEM;
|
|
82
|
+
typedef struct asn1_pctx_st ASN1_PCTX;
|
|
83
|
+
typedef struct asn1_sctx_st ASN1_SCTX;
|
|
84
|
+
|
|
85
|
+
# ifdef BIGNUM
|
|
86
|
+
# undef BIGNUM
|
|
87
|
+
# endif
|
|
88
|
+
|
|
89
|
+
typedef struct bio_st BIO;
|
|
90
|
+
typedef struct bignum_st BIGNUM;
|
|
91
|
+
typedef struct bignum_ctx BN_CTX;
|
|
92
|
+
typedef struct bn_blinding_st BN_BLINDING;
|
|
93
|
+
typedef struct bn_mont_ctx_st BN_MONT_CTX;
|
|
94
|
+
typedef struct bn_recp_ctx_st BN_RECP_CTX;
|
|
95
|
+
typedef struct bn_gencb_st BN_GENCB;
|
|
96
|
+
|
|
97
|
+
typedef struct buf_mem_st BUF_MEM;
|
|
98
|
+
|
|
99
|
+
STACK_OF(BIGNUM);
|
|
100
|
+
STACK_OF(BIGNUM_const);
|
|
101
|
+
|
|
102
|
+
typedef struct err_state_st ERR_STATE;
|
|
103
|
+
|
|
104
|
+
typedef struct evp_cipher_st EVP_CIPHER;
|
|
105
|
+
typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
|
|
106
|
+
typedef struct evp_md_st EVP_MD;
|
|
107
|
+
typedef struct evp_md_ctx_st EVP_MD_CTX;
|
|
108
|
+
typedef struct evp_mac_st EVP_MAC;
|
|
109
|
+
typedef struct evp_mac_ctx_st EVP_MAC_CTX;
|
|
110
|
+
typedef struct evp_pkey_st EVP_PKEY;
|
|
111
|
+
|
|
112
|
+
typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
|
|
113
|
+
|
|
114
|
+
typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
|
|
115
|
+
typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
|
|
116
|
+
|
|
117
|
+
typedef struct evp_keymgmt_st EVP_KEYMGMT;
|
|
118
|
+
|
|
119
|
+
typedef struct evp_kdf_st EVP_KDF;
|
|
120
|
+
typedef struct evp_kdf_ctx_st EVP_KDF_CTX;
|
|
121
|
+
|
|
122
|
+
typedef struct evp_rand_st EVP_RAND;
|
|
123
|
+
typedef struct evp_rand_ctx_st EVP_RAND_CTX;
|
|
124
|
+
|
|
125
|
+
typedef struct evp_keyexch_st EVP_KEYEXCH;
|
|
126
|
+
|
|
127
|
+
typedef struct evp_signature_st EVP_SIGNATURE;
|
|
128
|
+
|
|
129
|
+
typedef struct evp_asym_cipher_st EVP_ASYM_CIPHER;
|
|
130
|
+
|
|
131
|
+
typedef struct evp_kem_st EVP_KEM;
|
|
132
|
+
|
|
133
|
+
typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX;
|
|
134
|
+
|
|
135
|
+
typedef struct hmac_ctx_st HMAC_CTX;
|
|
136
|
+
|
|
137
|
+
typedef struct dh_st DH;
|
|
138
|
+
typedef struct dh_method DH_METHOD;
|
|
139
|
+
|
|
140
|
+
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
|
141
|
+
typedef struct dsa_st DSA;
|
|
142
|
+
typedef struct dsa_method DSA_METHOD;
|
|
143
|
+
# endif
|
|
144
|
+
|
|
145
|
+
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
|
146
|
+
typedef struct rsa_st RSA;
|
|
147
|
+
typedef struct rsa_meth_st RSA_METHOD;
|
|
148
|
+
# endif
|
|
149
|
+
typedef struct rsa_pss_params_st RSA_PSS_PARAMS;
|
|
150
|
+
|
|
151
|
+
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
|
152
|
+
typedef struct ec_key_st EC_KEY;
|
|
153
|
+
typedef struct ec_key_method_st EC_KEY_METHOD;
|
|
154
|
+
# endif
|
|
155
|
+
|
|
156
|
+
typedef struct rand_meth_st RAND_METHOD;
|
|
157
|
+
typedef struct rand_drbg_st RAND_DRBG;
|
|
158
|
+
|
|
159
|
+
typedef struct ssl_dane_st SSL_DANE;
|
|
160
|
+
typedef struct x509_st X509;
|
|
161
|
+
typedef struct X509_algor_st X509_ALGOR;
|
|
162
|
+
typedef struct X509_crl_st X509_CRL;
|
|
163
|
+
typedef struct x509_crl_method_st X509_CRL_METHOD;
|
|
164
|
+
typedef struct x509_revoked_st X509_REVOKED;
|
|
165
|
+
typedef struct X509_name_st X509_NAME;
|
|
166
|
+
typedef struct X509_pubkey_st X509_PUBKEY;
|
|
167
|
+
typedef struct x509_store_st X509_STORE;
|
|
168
|
+
typedef struct x509_store_ctx_st X509_STORE_CTX;
|
|
169
|
+
|
|
170
|
+
typedef struct x509_object_st X509_OBJECT;
|
|
171
|
+
typedef struct x509_lookup_st X509_LOOKUP;
|
|
172
|
+
typedef struct x509_lookup_method_st X509_LOOKUP_METHOD;
|
|
173
|
+
typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM;
|
|
174
|
+
|
|
175
|
+
typedef struct x509_sig_info_st X509_SIG_INFO;
|
|
176
|
+
|
|
177
|
+
typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
|
|
178
|
+
|
|
179
|
+
typedef struct v3_ext_ctx X509V3_CTX;
|
|
180
|
+
typedef struct conf_st CONF;
|
|
181
|
+
typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS;
|
|
182
|
+
|
|
183
|
+
typedef struct ui_st UI;
|
|
184
|
+
typedef struct ui_method_st UI_METHOD;
|
|
185
|
+
|
|
186
|
+
typedef struct engine_st ENGINE;
|
|
187
|
+
typedef struct ssl_st SSL;
|
|
188
|
+
typedef struct ssl_ctx_st SSL_CTX;
|
|
189
|
+
|
|
190
|
+
typedef struct comp_ctx_st COMP_CTX;
|
|
191
|
+
typedef struct comp_method_st COMP_METHOD;
|
|
192
|
+
|
|
193
|
+
typedef struct X509_POLICY_NODE_st X509_POLICY_NODE;
|
|
194
|
+
typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL;
|
|
195
|
+
typedef struct X509_POLICY_TREE_st X509_POLICY_TREE;
|
|
196
|
+
typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE;
|
|
197
|
+
|
|
198
|
+
typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
|
|
199
|
+
typedef struct DIST_POINT_st DIST_POINT;
|
|
200
|
+
typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
|
|
201
|
+
typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
|
|
202
|
+
|
|
203
|
+
typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
|
|
204
|
+
|
|
205
|
+
typedef struct ossl_http_req_ctx_st OSSL_HTTP_REQ_CTX;
|
|
206
|
+
typedef struct ocsp_response_st OCSP_RESPONSE;
|
|
207
|
+
typedef struct ocsp_responder_id_st OCSP_RESPID;
|
|
208
|
+
|
|
209
|
+
typedef struct sct_st SCT;
|
|
210
|
+
typedef struct sct_ctx_st SCT_CTX;
|
|
211
|
+
typedef struct ctlog_st CTLOG;
|
|
212
|
+
typedef struct ctlog_store_st CTLOG_STORE;
|
|
213
|
+
typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX;
|
|
214
|
+
|
|
215
|
+
typedef struct ossl_store_info_st OSSL_STORE_INFO;
|
|
216
|
+
typedef struct ossl_store_search_st OSSL_STORE_SEARCH;
|
|
217
|
+
|
|
218
|
+
typedef struct ossl_lib_ctx_st OSSL_LIB_CTX;
|
|
219
|
+
|
|
220
|
+
typedef struct ossl_dispatch_st OSSL_DISPATCH;
|
|
221
|
+
typedef struct ossl_item_st OSSL_ITEM;
|
|
222
|
+
typedef struct ossl_algorithm_st OSSL_ALGORITHM;
|
|
223
|
+
typedef struct ossl_param_st OSSL_PARAM;
|
|
224
|
+
typedef struct ossl_param_bld_st OSSL_PARAM_BLD;
|
|
225
|
+
|
|
226
|
+
typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata);
|
|
227
|
+
|
|
228
|
+
typedef struct ossl_encoder_st OSSL_ENCODER;
|
|
229
|
+
typedef struct ossl_encoder_ctx_st OSSL_ENCODER_CTX;
|
|
230
|
+
typedef struct ossl_decoder_st OSSL_DECODER;
|
|
231
|
+
typedef struct ossl_decoder_ctx_st OSSL_DECODER_CTX;
|
|
232
|
+
|
|
233
|
+
typedef struct ossl_self_test_st OSSL_SELF_TEST;
|
|
234
|
+
|
|
235
|
+
#ifdef __cplusplus
|
|
236
|
+
}
|
|
237
|
+
#endif
|
|
238
|
+
|
|
239
|
+
#endif /* OPENSSL_TYPES_H */
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* WARNING: do not edit!
|
|
3
|
+
* Generated by Makefile from include/openssl/ui.h.in
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
8
|
+
* this file except in compliance with the License. You can obtain a copy
|
|
9
|
+
* in the file LICENSE in the source distribution or at
|
|
10
|
+
* https://www.openssl.org/source/license.html
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
#ifndef OPENSSL_UI_H
|
|
16
|
+
# define OPENSSL_UI_H
|
|
17
|
+
# pragma once
|
|
18
|
+
|
|
19
|
+
# include <openssl/macros.h>
|
|
20
|
+
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
|
21
|
+
# define HEADER_UI_H
|
|
22
|
+
# endif
|
|
23
|
+
|
|
24
|
+
# include <openssl/opensslconf.h>
|
|
25
|
+
|
|
26
|
+
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
|
|
27
|
+
# include <openssl/crypto.h>
|
|
28
|
+
# endif
|
|
29
|
+
# include <openssl/safestack.h>
|
|
30
|
+
# include <openssl/pem.h>
|
|
31
|
+
# include <openssl/types.h>
|
|
32
|
+
# include <openssl/uierr.h>
|
|
33
|
+
|
|
34
|
+
/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */
|
|
35
|
+
# ifndef OPENSSL_NO_DEPRECATED_3_0
|
|
36
|
+
# ifdef OPENSSL_NO_UI_CONSOLE
|
|
37
|
+
# define OPENSSL_NO_UI
|
|
38
|
+
# endif
|
|
39
|
+
# endif
|
|
40
|
+
|
|
41
|
+
# ifdef __cplusplus
|
|
42
|
+
extern "C" {
|
|
43
|
+
# endif
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* All the following functions return -1 or NULL on error and in some cases
|
|
47
|
+
* (UI_process()) -2 if interrupted or in some other way cancelled. When
|
|
48
|
+
* everything is fine, they return 0, a positive value or a non-NULL pointer,
|
|
49
|
+
* all depending on their purpose.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
/* Creators and destructor. */
|
|
53
|
+
UI *UI_new(void);
|
|
54
|
+
UI *UI_new_method(const UI_METHOD *method);
|
|
55
|
+
void UI_free(UI *ui);
|
|
56
|
+
|
|
57
|
+
/*-
|
|
58
|
+
The following functions are used to add strings to be printed and prompt
|
|
59
|
+
strings to prompt for data. The names are UI_{add,dup}_<function>_string
|
|
60
|
+
and UI_{add,dup}_input_boolean.
|
|
61
|
+
|
|
62
|
+
UI_{add,dup}_<function>_string have the following meanings:
|
|
63
|
+
add add a text or prompt string. The pointers given to these
|
|
64
|
+
functions are used verbatim, no copying is done.
|
|
65
|
+
dup make a copy of the text or prompt string, then add the copy
|
|
66
|
+
to the collection of strings in the user interface.
|
|
67
|
+
<function>
|
|
68
|
+
The function is a name for the functionality that the given
|
|
69
|
+
string shall be used for. It can be one of:
|
|
70
|
+
input use the string as data prompt.
|
|
71
|
+
verify use the string as verification prompt. This
|
|
72
|
+
is used to verify a previous input.
|
|
73
|
+
info use the string for informational output.
|
|
74
|
+
error use the string for error output.
|
|
75
|
+
Honestly, there's currently no difference between info and error for the
|
|
76
|
+
moment.
|
|
77
|
+
|
|
78
|
+
UI_{add,dup}_input_boolean have the same semantics for "add" and "dup",
|
|
79
|
+
and are typically used when one wants to prompt for a yes/no response.
|
|
80
|
+
|
|
81
|
+
All of the functions in this group take a UI and a prompt string.
|
|
82
|
+
The string input and verify addition functions also take a flag argument,
|
|
83
|
+
a buffer for the result to end up with, a minimum input size and a maximum
|
|
84
|
+
input size (the result buffer MUST be large enough to be able to contain
|
|
85
|
+
the maximum number of characters). Additionally, the verify addition
|
|
86
|
+
functions takes another buffer to compare the result against.
|
|
87
|
+
The boolean input functions take an action description string (which should
|
|
88
|
+
be safe to ignore if the expected user action is obvious, for example with
|
|
89
|
+
a dialog box with an OK button and a Cancel button), a string of acceptable
|
|
90
|
+
characters to mean OK and to mean Cancel. The two last strings are checked
|
|
91
|
+
to make sure they don't have common characters. Additionally, the same
|
|
92
|
+
flag argument as for the string input is taken, as well as a result buffer.
|
|
93
|
+
The result buffer is required to be at least one byte long. Depending on
|
|
94
|
+
the answer, the first character from the OK or the Cancel character strings
|
|
95
|
+
will be stored in the first byte of the result buffer. No NUL will be
|
|
96
|
+
added, so the result is *not* a string.
|
|
97
|
+
|
|
98
|
+
On success, the all return an index of the added information. That index
|
|
99
|
+
is useful when retrieving results with UI_get0_result(). */
|
|
100
|
+
int UI_add_input_string(UI *ui, const char *prompt, int flags,
|
|
101
|
+
char *result_buf, int minsize, int maxsize);
|
|
102
|
+
int UI_dup_input_string(UI *ui, const char *prompt, int flags,
|
|
103
|
+
char *result_buf, int minsize, int maxsize);
|
|
104
|
+
int UI_add_verify_string(UI *ui, const char *prompt, int flags,
|
|
105
|
+
char *result_buf, int minsize, int maxsize,
|
|
106
|
+
const char *test_buf);
|
|
107
|
+
int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
|
|
108
|
+
char *result_buf, int minsize, int maxsize,
|
|
109
|
+
const char *test_buf);
|
|
110
|
+
int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,
|
|
111
|
+
const char *ok_chars, const char *cancel_chars,
|
|
112
|
+
int flags, char *result_buf);
|
|
113
|
+
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
|
|
114
|
+
const char *ok_chars, const char *cancel_chars,
|
|
115
|
+
int flags, char *result_buf);
|
|
116
|
+
int UI_add_info_string(UI *ui, const char *text);
|
|
117
|
+
int UI_dup_info_string(UI *ui, const char *text);
|
|
118
|
+
int UI_add_error_string(UI *ui, const char *text);
|
|
119
|
+
int UI_dup_error_string(UI *ui, const char *text);
|
|
120
|
+
|
|
121
|
+
/* These are the possible flags. They can be or'ed together. */
|
|
122
|
+
/* Use to have echoing of input */
|
|
123
|
+
# define UI_INPUT_FLAG_ECHO 0x01
|
|
124
|
+
/*
|
|
125
|
+
* Use a default password. Where that password is found is completely up to
|
|
126
|
+
* the application, it might for example be in the user data set with
|
|
127
|
+
* UI_add_user_data(). It is not recommended to have more than one input in
|
|
128
|
+
* each UI being marked with this flag, or the application might get
|
|
129
|
+
* confused.
|
|
130
|
+
*/
|
|
131
|
+
# define UI_INPUT_FLAG_DEFAULT_PWD 0x02
|
|
132
|
+
|
|
133
|
+
/*-
|
|
134
|
+
* The user of these routines may want to define flags of their own. The core
|
|
135
|
+
* UI won't look at those, but will pass them on to the method routines. They
|
|
136
|
+
* must use higher bits so they don't get confused with the UI bits above.
|
|
137
|
+
* UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good
|
|
138
|
+
* example of use is this:
|
|
139
|
+
*
|
|
140
|
+
* #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE)
|
|
141
|
+
*
|
|
142
|
+
*/
|
|
143
|
+
# define UI_INPUT_FLAG_USER_BASE 16
|
|
144
|
+
|
|
145
|
+
/*-
|
|
146
|
+
* The following function helps construct a prompt.
|
|
147
|
+
* phrase_desc is a textual short description of the phrase to enter,
|
|
148
|
+
* for example "pass phrase", and
|
|
149
|
+
* object_name is the name of the object
|
|
150
|
+
* (which might be a card name or a file name) or NULL.
|
|
151
|
+
* The returned string shall always be allocated on the heap with
|
|
152
|
+
* OPENSSL_malloc(), and need to be free'd with OPENSSL_free().
|
|
153
|
+
*
|
|
154
|
+
* If the ui_method doesn't contain a pointer to a user-defined prompt
|
|
155
|
+
* constructor, a default string is built, looking like this:
|
|
156
|
+
*
|
|
157
|
+
* "Enter {phrase_desc} for {object_name}:"
|
|
158
|
+
*
|
|
159
|
+
* So, if phrase_desc has the value "pass phrase" and object_name has
|
|
160
|
+
* the value "foo.key", the resulting string is:
|
|
161
|
+
*
|
|
162
|
+
* "Enter pass phrase for foo.key:"
|
|
163
|
+
*/
|
|
164
|
+
char *UI_construct_prompt(UI *ui_method,
|
|
165
|
+
const char *phrase_desc, const char *object_name);
|
|
166
|
+
|
|
167
|
+
/*
|
|
168
|
+
* The following function is used to store a pointer to user-specific data.
|
|
169
|
+
* Any previous such pointer will be returned and replaced.
|
|
170
|
+
*
|
|
171
|
+
* For callback purposes, this function makes a lot more sense than using
|
|
172
|
+
* ex_data, since the latter requires that different parts of OpenSSL or
|
|
173
|
+
* applications share the same ex_data index.
|
|
174
|
+
*
|
|
175
|
+
* Note that the UI_OpenSSL() method completely ignores the user data. Other
|
|
176
|
+
* methods may not, however.
|
|
177
|
+
*/
|
|
178
|
+
void *UI_add_user_data(UI *ui, void *user_data);
|
|
179
|
+
/*
|
|
180
|
+
* Alternatively, this function is used to duplicate the user data.
|
|
181
|
+
* This uses the duplicator method function. The destroy function will
|
|
182
|
+
* be used to free the user data in this case.
|
|
183
|
+
*/
|
|
184
|
+
int UI_dup_user_data(UI *ui, void *user_data);
|
|
185
|
+
/* We need a user data retrieving function as well. */
|
|
186
|
+
void *UI_get0_user_data(UI *ui);
|
|
187
|
+
|
|
188
|
+
/* Return the result associated with a prompt given with the index i. */
|
|
189
|
+
const char *UI_get0_result(UI *ui, int i);
|
|
190
|
+
int UI_get_result_length(UI *ui, int i);
|
|
191
|
+
|
|
192
|
+
/* When all strings have been added, process the whole thing. */
|
|
193
|
+
int UI_process(UI *ui);
|
|
194
|
+
|
|
195
|
+
/*
|
|
196
|
+
* Give a user interface parameterised control commands. This can be used to
|
|
197
|
+
* send down an integer, a data pointer or a function pointer, as well as be
|
|
198
|
+
* used to get information from a UI.
|
|
199
|
+
*/
|
|
200
|
+
int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void));
|
|
201
|
+
|
|
202
|
+
/* The commands */
|
|
203
|
+
/*
|
|
204
|
+
* Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the
|
|
205
|
+
* OpenSSL error stack before printing any info or added error messages and
|
|
206
|
+
* before any prompting.
|
|
207
|
+
*/
|
|
208
|
+
# define UI_CTRL_PRINT_ERRORS 1
|
|
209
|
+
/*
|
|
210
|
+
* Check if a UI_process() is possible to do again with the same instance of
|
|
211
|
+
* a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0
|
|
212
|
+
* if not.
|
|
213
|
+
*/
|
|
214
|
+
# define UI_CTRL_IS_REDOABLE 2
|
|
215
|
+
|
|
216
|
+
/* Some methods may use extra data */
|
|
217
|
+
# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg)
|
|
218
|
+
# define UI_get_app_data(s) UI_get_ex_data(s,0)
|
|
219
|
+
|
|
220
|
+
# define UI_get_ex_new_index(l, p, newf, dupf, freef) \
|
|
221
|
+
CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef)
|
|
222
|
+
int UI_set_ex_data(UI *r, int idx, void *arg);
|
|
223
|
+
void *UI_get_ex_data(const UI *r, int idx);
|
|
224
|
+
|
|
225
|
+
/* Use specific methods instead of the built-in one */
|
|
226
|
+
void UI_set_default_method(const UI_METHOD *meth);
|
|
227
|
+
const UI_METHOD *UI_get_default_method(void);
|
|
228
|
+
const UI_METHOD *UI_get_method(UI *ui);
|
|
229
|
+
const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth);
|
|
230
|
+
|
|
231
|
+
# ifndef OPENSSL_NO_UI_CONSOLE
|
|
232
|
+
|
|
233
|
+
/* The method with all the built-in thingies */
|
|
234
|
+
UI_METHOD *UI_OpenSSL(void);
|
|
235
|
+
|
|
236
|
+
# endif
|
|
237
|
+
|
|
238
|
+
/*
|
|
239
|
+
* NULL method. Literally does nothing, but may serve as a placeholder
|
|
240
|
+
* to avoid internal default.
|
|
241
|
+
*/
|
|
242
|
+
const UI_METHOD *UI_null(void);
|
|
243
|
+
|
|
244
|
+
/* ---------- For method writers ---------- */
|
|
245
|
+
/*-
|
|
246
|
+
A method contains a number of functions that implement the low level
|
|
247
|
+
of the User Interface. The functions are:
|
|
248
|
+
|
|
249
|
+
an opener This function starts a session, maybe by opening
|
|
250
|
+
a channel to a tty, or by opening a window.
|
|
251
|
+
a writer This function is called to write a given string,
|
|
252
|
+
maybe to the tty, maybe as a field label in a
|
|
253
|
+
window.
|
|
254
|
+
a flusher This function is called to flush everything that
|
|
255
|
+
has been output so far. It can be used to actually
|
|
256
|
+
display a dialog box after it has been built.
|
|
257
|
+
a reader This function is called to read a given prompt,
|
|
258
|
+
maybe from the tty, maybe from a field in a
|
|
259
|
+
window. Note that it's called with all string
|
|
260
|
+
structures, not only the prompt ones, so it must
|
|
261
|
+
check such things itself.
|
|
262
|
+
a closer This function closes the session, maybe by closing
|
|
263
|
+
the channel to the tty, or closing the window.
|
|
264
|
+
|
|
265
|
+
All these functions are expected to return:
|
|
266
|
+
|
|
267
|
+
0 on error.
|
|
268
|
+
1 on success.
|
|
269
|
+
-1 on out-of-band events, for example if some prompting has
|
|
270
|
+
been canceled (by pressing Ctrl-C, for example). This is
|
|
271
|
+
only checked when returned by the flusher or the reader.
|
|
272
|
+
|
|
273
|
+
The way this is used, the opener is first called, then the writer for all
|
|
274
|
+
strings, then the flusher, then the reader for all strings and finally the
|
|
275
|
+
closer. Note that if you want to prompt from a terminal or other command
|
|
276
|
+
line interface, the best is to have the reader also write the prompts
|
|
277
|
+
instead of having the writer do it. If you want to prompt from a dialog
|
|
278
|
+
box, the writer can be used to build up the contents of the box, and the
|
|
279
|
+
flusher to actually display the box and run the event loop until all data
|
|
280
|
+
has been given, after which the reader only grabs the given data and puts
|
|
281
|
+
them back into the UI strings.
|
|
282
|
+
|
|
283
|
+
All method functions take a UI as argument. Additionally, the writer and
|
|
284
|
+
the reader take a UI_STRING.
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
/*
|
|
288
|
+
* The UI_STRING type is the data structure that contains all the needed info
|
|
289
|
+
* about a string or a prompt, including test data for a verification prompt.
|
|
290
|
+
*/
|
|
291
|
+
typedef struct ui_string_st UI_STRING;
|
|
292
|
+
|
|
293
|
+
SKM_DEFINE_STACK_OF_INTERNAL(UI_STRING, UI_STRING, UI_STRING)
|
|
294
|
+
#define sk_UI_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_UI_STRING_sk_type(sk))
|
|
295
|
+
#define sk_UI_STRING_value(sk, idx) ((UI_STRING *)OPENSSL_sk_value(ossl_check_const_UI_STRING_sk_type(sk), (idx)))
|
|
296
|
+
#define sk_UI_STRING_new(cmp) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new(ossl_check_UI_STRING_compfunc_type(cmp)))
|
|
297
|
+
#define sk_UI_STRING_new_null() ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_null())
|
|
298
|
+
#define sk_UI_STRING_new_reserve(cmp, n) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_reserve(ossl_check_UI_STRING_compfunc_type(cmp), (n)))
|
|
299
|
+
#define sk_UI_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_UI_STRING_sk_type(sk), (n))
|
|
300
|
+
#define sk_UI_STRING_free(sk) OPENSSL_sk_free(ossl_check_UI_STRING_sk_type(sk))
|
|
301
|
+
#define sk_UI_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_UI_STRING_sk_type(sk))
|
|
302
|
+
#define sk_UI_STRING_delete(sk, i) ((UI_STRING *)OPENSSL_sk_delete(ossl_check_UI_STRING_sk_type(sk), (i)))
|
|
303
|
+
#define sk_UI_STRING_delete_ptr(sk, ptr) ((UI_STRING *)OPENSSL_sk_delete_ptr(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)))
|
|
304
|
+
#define sk_UI_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))
|
|
305
|
+
#define sk_UI_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))
|
|
306
|
+
#define sk_UI_STRING_pop(sk) ((UI_STRING *)OPENSSL_sk_pop(ossl_check_UI_STRING_sk_type(sk)))
|
|
307
|
+
#define sk_UI_STRING_shift(sk) ((UI_STRING *)OPENSSL_sk_shift(ossl_check_UI_STRING_sk_type(sk)))
|
|
308
|
+
#define sk_UI_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_UI_STRING_sk_type(sk),ossl_check_UI_STRING_freefunc_type(freefunc))
|
|
309
|
+
#define sk_UI_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), (idx))
|
|
310
|
+
#define sk_UI_STRING_set(sk, idx, ptr) ((UI_STRING *)OPENSSL_sk_set(ossl_check_UI_STRING_sk_type(sk), (idx), ossl_check_UI_STRING_type(ptr)))
|
|
311
|
+
#define sk_UI_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))
|
|
312
|
+
#define sk_UI_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))
|
|
313
|
+
#define sk_UI_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), pnum)
|
|
314
|
+
#define sk_UI_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_UI_STRING_sk_type(sk))
|
|
315
|
+
#define sk_UI_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_UI_STRING_sk_type(sk))
|
|
316
|
+
#define sk_UI_STRING_dup(sk) ((STACK_OF(UI_STRING) *)OPENSSL_sk_dup(ossl_check_const_UI_STRING_sk_type(sk)))
|
|
317
|
+
#define sk_UI_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(UI_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_UI_STRING_sk_type(sk), ossl_check_UI_STRING_copyfunc_type(copyfunc), ossl_check_UI_STRING_freefunc_type(freefunc)))
|
|
318
|
+
#define sk_UI_STRING_set_cmp_func(sk, cmp) ((sk_UI_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_compfunc_type(cmp)))
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
/*
|
|
322
|
+
* The different types of strings that are currently supported. This is only
|
|
323
|
+
* needed by method authors.
|
|
324
|
+
*/
|
|
325
|
+
enum UI_string_types {
|
|
326
|
+
UIT_NONE = 0,
|
|
327
|
+
UIT_PROMPT, /* Prompt for a string */
|
|
328
|
+
UIT_VERIFY, /* Prompt for a string and verify */
|
|
329
|
+
UIT_BOOLEAN, /* Prompt for a yes/no response */
|
|
330
|
+
UIT_INFO, /* Send info to the user */
|
|
331
|
+
UIT_ERROR /* Send an error message to the user */
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/* Create and manipulate methods */
|
|
335
|
+
UI_METHOD *UI_create_method(const char *name);
|
|
336
|
+
void UI_destroy_method(UI_METHOD *ui_method);
|
|
337
|
+
int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui));
|
|
338
|
+
int UI_method_set_writer(UI_METHOD *method,
|
|
339
|
+
int (*writer) (UI *ui, UI_STRING *uis));
|
|
340
|
+
int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui));
|
|
341
|
+
int UI_method_set_reader(UI_METHOD *method,
|
|
342
|
+
int (*reader) (UI *ui, UI_STRING *uis));
|
|
343
|
+
int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui));
|
|
344
|
+
int UI_method_set_data_duplicator(UI_METHOD *method,
|
|
345
|
+
void *(*duplicator) (UI *ui, void *ui_data),
|
|
346
|
+
void (*destructor)(UI *ui, void *ui_data));
|
|
347
|
+
int UI_method_set_prompt_constructor(UI_METHOD *method,
|
|
348
|
+
char *(*prompt_constructor) (UI *ui,
|
|
349
|
+
const char
|
|
350
|
+
*phrase_desc,
|
|
351
|
+
const char
|
|
352
|
+
*object_name));
|
|
353
|
+
int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data);
|
|
354
|
+
int (*UI_method_get_opener(const UI_METHOD *method)) (UI *);
|
|
355
|
+
int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *);
|
|
356
|
+
int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *);
|
|
357
|
+
int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *);
|
|
358
|
+
int (*UI_method_get_closer(const UI_METHOD *method)) (UI *);
|
|
359
|
+
char *(*UI_method_get_prompt_constructor(const UI_METHOD *method))
|
|
360
|
+
(UI *, const char *, const char *);
|
|
361
|
+
void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *);
|
|
362
|
+
void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *);
|
|
363
|
+
const void *UI_method_get_ex_data(const UI_METHOD *method, int idx);
|
|
364
|
+
|
|
365
|
+
/*
|
|
366
|
+
* The following functions are helpers for method writers to access relevant
|
|
367
|
+
* data from a UI_STRING.
|
|
368
|
+
*/
|
|
369
|
+
|
|
370
|
+
/* Return type of the UI_STRING */
|
|
371
|
+
enum UI_string_types UI_get_string_type(UI_STRING *uis);
|
|
372
|
+
/* Return input flags of the UI_STRING */
|
|
373
|
+
int UI_get_input_flags(UI_STRING *uis);
|
|
374
|
+
/* Return the actual string to output (the prompt, info or error) */
|
|
375
|
+
const char *UI_get0_output_string(UI_STRING *uis);
|
|
376
|
+
/*
|
|
377
|
+
* Return the optional action string to output (the boolean prompt
|
|
378
|
+
* instruction)
|
|
379
|
+
*/
|
|
380
|
+
const char *UI_get0_action_string(UI_STRING *uis);
|
|
381
|
+
/* Return the result of a prompt */
|
|
382
|
+
const char *UI_get0_result_string(UI_STRING *uis);
|
|
383
|
+
int UI_get_result_string_length(UI_STRING *uis);
|
|
384
|
+
/*
|
|
385
|
+
* Return the string to test the result against. Only useful with verifies.
|
|
386
|
+
*/
|
|
387
|
+
const char *UI_get0_test_string(UI_STRING *uis);
|
|
388
|
+
/* Return the required minimum size of the result */
|
|
389
|
+
int UI_get_result_minsize(UI_STRING *uis);
|
|
390
|
+
/* Return the required maximum size of the result */
|
|
391
|
+
int UI_get_result_maxsize(UI_STRING *uis);
|
|
392
|
+
/* Set the result of a UI_STRING. */
|
|
393
|
+
int UI_set_result(UI *ui, UI_STRING *uis, const char *result);
|
|
394
|
+
int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len);
|
|
395
|
+
|
|
396
|
+
/* A couple of popular utility functions */
|
|
397
|
+
int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt,
|
|
398
|
+
int verify);
|
|
399
|
+
int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,
|
|
400
|
+
int verify);
|
|
401
|
+
UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag);
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
# ifdef __cplusplus
|
|
405
|
+
}
|
|
406
|
+
# endif
|
|
407
|
+
#endif
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Generated by util/mkerr.pl DO NOT EDIT
|
|
3
|
+
* Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
6
|
+
* this file except in compliance with the License. You can obtain a copy
|
|
7
|
+
* in the file LICENSE in the source distribution or at
|
|
8
|
+
* https://www.openssl.org/source/license.html
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef OPENSSL_UIERR_H
|
|
12
|
+
# define OPENSSL_UIERR_H
|
|
13
|
+
# pragma once
|
|
14
|
+
|
|
15
|
+
# include <openssl/opensslconf.h>
|
|
16
|
+
# include <openssl/symhacks.h>
|
|
17
|
+
# include <openssl/cryptoerr_legacy.h>
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* UI reason codes.
|
|
23
|
+
*/
|
|
24
|
+
# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104
|
|
25
|
+
# define UI_R_INDEX_TOO_LARGE 102
|
|
26
|
+
# define UI_R_INDEX_TOO_SMALL 103
|
|
27
|
+
# define UI_R_NO_RESULT_BUFFER 105
|
|
28
|
+
# define UI_R_PROCESSING_ERROR 107
|
|
29
|
+
# define UI_R_RESULT_TOO_LARGE 100
|
|
30
|
+
# define UI_R_RESULT_TOO_SMALL 101
|
|
31
|
+
# define UI_R_SYSASSIGN_ERROR 109
|
|
32
|
+
# define UI_R_SYSDASSGN_ERROR 110
|
|
33
|
+
# define UI_R_SYSQIOW_ERROR 111
|
|
34
|
+
# define UI_R_UNKNOWN_CONTROL_COMMAND 106
|
|
35
|
+
# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108
|
|
36
|
+
# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112
|
|
37
|
+
|
|
38
|
+
#endif
|