File indexing completed on 2025-01-18 10:05:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef OPENSSL_ERR_H
0013 # define OPENSSL_ERR_H
0014 # pragma once
0015
0016 # include <openssl/macros.h>
0017 # ifndef OPENSSL_NO_DEPRECATED_3_0
0018 # define HEADER_ERR_H
0019 # endif
0020
0021 # include <openssl/e_os2.h>
0022
0023 # ifndef OPENSSL_NO_STDIO
0024 # include <stdio.h>
0025 # include <stdlib.h>
0026 # endif
0027
0028 # include <openssl/types.h>
0029 # include <openssl/bio.h>
0030 # include <openssl/lhash.h>
0031 # include <openssl/cryptoerr_legacy.h>
0032
0033 #ifdef __cplusplus
0034 extern "C" {
0035 #endif
0036
0037 # ifndef OPENSSL_NO_DEPRECATED_3_0
0038 # ifndef OPENSSL_NO_FILENAMES
0039 # define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,fn,ln)
0040 # else
0041 # define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,NULL,0)
0042 # endif
0043 # endif
0044
0045 # include <limits.h>
0046 # include <errno.h>
0047
0048 # define ERR_TXT_MALLOCED 0x01
0049 # define ERR_TXT_STRING 0x02
0050
0051 # if !defined(OPENSSL_NO_DEPRECATED_3_0) || defined(OSSL_FORCE_ERR_STATE)
0052 # define ERR_FLAG_MARK 0x01
0053 # define ERR_FLAG_CLEAR 0x02
0054
0055 # define ERR_NUM_ERRORS 16
0056 struct err_state_st {
0057 int err_flags[ERR_NUM_ERRORS];
0058 int err_marks[ERR_NUM_ERRORS];
0059 unsigned long err_buffer[ERR_NUM_ERRORS];
0060 char *err_data[ERR_NUM_ERRORS];
0061 size_t err_data_size[ERR_NUM_ERRORS];
0062 int err_data_flags[ERR_NUM_ERRORS];
0063 char *err_file[ERR_NUM_ERRORS];
0064 int err_line[ERR_NUM_ERRORS];
0065 char *err_func[ERR_NUM_ERRORS];
0066 int top, bottom;
0067 };
0068 # endif
0069
0070
0071 # define ERR_LIB_NONE 1
0072 # define ERR_LIB_SYS 2
0073 # define ERR_LIB_BN 3
0074 # define ERR_LIB_RSA 4
0075 # define ERR_LIB_DH 5
0076 # define ERR_LIB_EVP 6
0077 # define ERR_LIB_BUF 7
0078 # define ERR_LIB_OBJ 8
0079 # define ERR_LIB_PEM 9
0080 # define ERR_LIB_DSA 10
0081 # define ERR_LIB_X509 11
0082
0083 # define ERR_LIB_ASN1 13
0084 # define ERR_LIB_CONF 14
0085 # define ERR_LIB_CRYPTO 15
0086 # define ERR_LIB_EC 16
0087 # define ERR_LIB_SSL 20
0088
0089
0090
0091
0092
0093 # define ERR_LIB_BIO 32
0094 # define ERR_LIB_PKCS7 33
0095 # define ERR_LIB_X509V3 34
0096 # define ERR_LIB_PKCS12 35
0097 # define ERR_LIB_RAND 36
0098 # define ERR_LIB_DSO 37
0099 # define ERR_LIB_ENGINE 38
0100 # define ERR_LIB_OCSP 39
0101 # define ERR_LIB_UI 40
0102 # define ERR_LIB_COMP 41
0103 # define ERR_LIB_ECDSA 42
0104 # define ERR_LIB_ECDH 43
0105 # define ERR_LIB_OSSL_STORE 44
0106 # define ERR_LIB_FIPS 45
0107 # define ERR_LIB_CMS 46
0108 # define ERR_LIB_TS 47
0109 # define ERR_LIB_HMAC 48
0110
0111 # define ERR_LIB_CT 50
0112 # define ERR_LIB_ASYNC 51
0113 # define ERR_LIB_KDF 52
0114 # define ERR_LIB_SM2 53
0115 # define ERR_LIB_ESS 54
0116 # define ERR_LIB_PROP 55
0117 # define ERR_LIB_CRMF 56
0118 # define ERR_LIB_PROV 57
0119 # define ERR_LIB_CMP 58
0120 # define ERR_LIB_OSSL_ENCODER 59
0121 # define ERR_LIB_OSSL_DECODER 60
0122 # define ERR_LIB_HTTP 61
0123
0124 # define ERR_LIB_USER 128
0125
0126 # ifndef OPENSSL_NO_DEPRECATED_3_0
0127 # define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL)
0128 # define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL)
0129 # define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL)
0130 # define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL)
0131 # define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL)
0132 # define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL)
0133 # define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL)
0134 # define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL)
0135 # define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL)
0136 # define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL)
0137 # define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL)
0138 # define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL)
0139 # define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL)
0140 # define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL)
0141 # define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL)
0142 # define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL)
0143 # define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL)
0144 # define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL)
0145 # define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL)
0146 # define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL)
0147 # define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL)
0148 # define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL)
0149 # define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL)
0150 # define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL)
0151 # define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
0152 # define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL)
0153 # define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL)
0154 # define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL)
0155 # define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL)
0156 # define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL)
0157 # define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL)
0158 # define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL)
0159 # define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL)
0160 # define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL)
0161 # define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL)
0162 # define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL)
0163 # define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL)
0164 # define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL)
0165 # define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL)
0166 # define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL)
0167 # define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL)
0168 # define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL)
0169 # define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL)
0170 # endif
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218 # define ERR_SYSTEM_FLAG ((unsigned int)INT_MAX + 1)
0219 # define ERR_SYSTEM_MASK ((unsigned int)INT_MAX)
0220
0221
0222
0223
0224
0225
0226 # define ERR_LIB_OFFSET 23L
0227 # define ERR_LIB_MASK 0xFF
0228 # define ERR_RFLAGS_OFFSET 18L
0229 # define ERR_RFLAGS_MASK 0x1F
0230 # define ERR_REASON_MASK 0X7FFFFF
0231
0232
0233
0234
0235
0236 # define ERR_RFLAG_FATAL (0x1 << ERR_RFLAGS_OFFSET)
0237 # define ERR_RFLAG_COMMON (0x2 << ERR_RFLAGS_OFFSET)
0238
0239 # define ERR_SYSTEM_ERROR(errcode) (((errcode) & ERR_SYSTEM_FLAG) != 0)
0240
0241 static ossl_unused ossl_inline int ERR_GET_LIB(unsigned long errcode)
0242 {
0243 if (ERR_SYSTEM_ERROR(errcode))
0244 return ERR_LIB_SYS;
0245 return (errcode >> ERR_LIB_OFFSET) & ERR_LIB_MASK;
0246 }
0247
0248 static ossl_unused ossl_inline int ERR_GET_RFLAGS(unsigned long errcode)
0249 {
0250 if (ERR_SYSTEM_ERROR(errcode))
0251 return 0;
0252 return errcode & (ERR_RFLAGS_MASK << ERR_RFLAGS_OFFSET);
0253 }
0254
0255 static ossl_unused ossl_inline int ERR_GET_REASON(unsigned long errcode)
0256 {
0257 if (ERR_SYSTEM_ERROR(errcode))
0258 return errcode & ERR_SYSTEM_MASK;
0259 return errcode & ERR_REASON_MASK;
0260 }
0261
0262 static ossl_unused ossl_inline int ERR_FATAL_ERROR(unsigned long errcode)
0263 {
0264 return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_FATAL) != 0;
0265 }
0266
0267 static ossl_unused ossl_inline int ERR_COMMON_ERROR(unsigned long errcode)
0268 {
0269 return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_COMMON) != 0;
0270 }
0271
0272
0273
0274
0275
0276
0277
0278 # define ERR_PACK(lib,func,reason) \
0279 ( (((unsigned long)(lib) & ERR_LIB_MASK ) << ERR_LIB_OFFSET) | \
0280 (((unsigned long)(reason) & ERR_REASON_MASK)) )
0281
0282 # ifndef OPENSSL_NO_DEPRECATED_3_0
0283 # define SYS_F_FOPEN 0
0284 # define SYS_F_CONNECT 0
0285 # define SYS_F_GETSERVBYNAME 0
0286 # define SYS_F_SOCKET 0
0287 # define SYS_F_IOCTLSOCKET 0
0288 # define SYS_F_BIND 0
0289 # define SYS_F_LISTEN 0
0290 # define SYS_F_ACCEPT 0
0291 # define SYS_F_WSASTARTUP 0
0292 # define SYS_F_OPENDIR 0
0293 # define SYS_F_FREAD 0
0294 # define SYS_F_GETADDRINFO 0
0295 # define SYS_F_GETNAMEINFO 0
0296 # define SYS_F_SETSOCKOPT 0
0297 # define SYS_F_GETSOCKOPT 0
0298 # define SYS_F_GETSOCKNAME 0
0299 # define SYS_F_GETHOSTBYNAME 0
0300 # define SYS_F_FFLUSH 0
0301 # define SYS_F_OPEN 0
0302 # define SYS_F_CLOSE 0
0303 # define SYS_F_IOCTL 0
0304 # define SYS_F_STAT 0
0305 # define SYS_F_FCNTL 0
0306 # define SYS_F_FSTAT 0
0307 # define SYS_F_SENDFILE 0
0308 # endif
0309
0310
0311
0312
0313
0314
0315 # define ERR_R_SYS_LIB (ERR_LIB_SYS | ERR_RFLAG_COMMON)
0316 # define ERR_R_BN_LIB (ERR_LIB_BN | ERR_RFLAG_COMMON)
0317 # define ERR_R_RSA_LIB (ERR_LIB_RSA | ERR_RFLAG_COMMON)
0318 # define ERR_R_DH_LIB (ERR_LIB_DH | ERR_RFLAG_COMMON)
0319 # define ERR_R_EVP_LIB (ERR_LIB_EVP | ERR_RFLAG_COMMON)
0320 # define ERR_R_BUF_LIB (ERR_LIB_BUF | ERR_RFLAG_COMMON)
0321 # define ERR_R_OBJ_LIB (ERR_LIB_OBJ | ERR_RFLAG_COMMON)
0322 # define ERR_R_PEM_LIB (ERR_LIB_PEM | ERR_RFLAG_COMMON)
0323 # define ERR_R_DSA_LIB (ERR_LIB_DSA | ERR_RFLAG_COMMON)
0324 # define ERR_R_X509_LIB (ERR_LIB_X509 | ERR_RFLAG_COMMON)
0325 # define ERR_R_ASN1_LIB (ERR_LIB_ASN1 | ERR_RFLAG_COMMON)
0326 # define ERR_R_CONF_LIB (ERR_LIB_CONF | ERR_RFLAG_COMMON)
0327 # define ERR_R_CRYPTO_LIB (ERR_LIB_CRYPTO | ERR_RFLAG_COMMON)
0328 # define ERR_R_EC_LIB (ERR_LIB_EC | ERR_RFLAG_COMMON)
0329 # define ERR_R_SSL_LIB (ERR_LIB_SSL | ERR_RFLAG_COMMON)
0330 # define ERR_R_BIO_LIB (ERR_LIB_BIO | ERR_RFLAG_COMMON)
0331 # define ERR_R_PKCS7_LIB (ERR_LIB_PKCS7 | ERR_RFLAG_COMMON)
0332 # define ERR_R_X509V3_LIB (ERR_LIB_X509V3 | ERR_RFLAG_COMMON)
0333 # define ERR_R_PKCS12_LIB (ERR_LIB_PKCS12 | ERR_RFLAG_COMMON)
0334 # define ERR_R_RAND_LIB (ERR_LIB_RAND | ERR_RFLAG_COMMON)
0335 # define ERR_R_DSO_LIB (ERR_LIB_DSO | ERR_RFLAG_COMMON)
0336 # define ERR_R_ENGINE_LIB (ERR_LIB_ENGINE | ERR_RFLAG_COMMON)
0337 # define ERR_R_UI_LIB (ERR_LIB_UI | ERR_RFLAG_COMMON)
0338 # define ERR_R_ECDSA_LIB (ERR_LIB_ECDSA | ERR_RFLAG_COMMON)
0339 # define ERR_R_OSSL_STORE_LIB (ERR_LIB_OSSL_STORE | ERR_RFLAG_COMMON)
0340 # define ERR_R_CMS_LIB (ERR_LIB_CMS | ERR_RFLAG_COMMON)
0341 # define ERR_R_TS_LIB (ERR_LIB_TS | ERR_RFLAG_COMMON)
0342 # define ERR_R_CT_LIB (ERR_LIB_CT | ERR_RFLAG_COMMON)
0343 # define ERR_R_PROV_LIB (ERR_LIB_PROV | ERR_RFLAG_COMMON)
0344 # define ERR_R_ESS_LIB (ERR_LIB_ESS | ERR_RFLAG_COMMON)
0345 # define ERR_R_CMP_LIB (ERR_LIB_CMP | ERR_RFLAG_COMMON)
0346 # define ERR_R_OSSL_ENCODER_LIB (ERR_LIB_OSSL_ENCODER | ERR_RFLAG_COMMON)
0347 # define ERR_R_OSSL_DECODER_LIB (ERR_LIB_OSSL_DECODER | ERR_RFLAG_COMMON)
0348
0349
0350 # define ERR_R_FATAL (ERR_RFLAG_FATAL|ERR_RFLAG_COMMON)
0351 # define ERR_R_MALLOC_FAILURE (256|ERR_R_FATAL)
0352 # define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (257|ERR_R_FATAL)
0353 # define ERR_R_PASSED_NULL_PARAMETER (258|ERR_R_FATAL)
0354 # define ERR_R_INTERNAL_ERROR (259|ERR_R_FATAL)
0355 # define ERR_R_DISABLED (260|ERR_R_FATAL)
0356 # define ERR_R_INIT_FAIL (261|ERR_R_FATAL)
0357 # define ERR_R_PASSED_INVALID_ARGUMENT (262|ERR_RFLAG_COMMON)
0358 # define ERR_R_OPERATION_FAIL (263|ERR_R_FATAL)
0359 # define ERR_R_INVALID_PROVIDER_FUNCTIONS (264|ERR_R_FATAL)
0360 # define ERR_R_INTERRUPTED_OR_CANCELLED (265|ERR_RFLAG_COMMON)
0361 # define ERR_R_NESTED_ASN1_ERROR (266|ERR_RFLAG_COMMON)
0362 # define ERR_R_MISSING_ASN1_EOS (267|ERR_RFLAG_COMMON)
0363 # define ERR_R_UNSUPPORTED (268|ERR_RFLAG_COMMON)
0364 # define ERR_R_FETCH_FAILED (269|ERR_RFLAG_COMMON)
0365 # define ERR_R_INVALID_PROPERTY_DEFINITION (270|ERR_RFLAG_COMMON)
0366 # define ERR_R_UNABLE_TO_GET_READ_LOCK (271|ERR_R_FATAL)
0367 # define ERR_R_UNABLE_TO_GET_WRITE_LOCK (272|ERR_R_FATAL)
0368
0369 typedef struct ERR_string_data_st {
0370 unsigned long error;
0371 const char *string;
0372 } ERR_STRING_DATA;
0373
0374 DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA);
0375 #define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk))
0376 #define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh))
0377 #define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh))
0378 #define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr)))
0379 #define lh_ERR_STRING_DATA_delete(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_delete(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr)))
0380 #define lh_ERR_STRING_DATA_retrieve(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_retrieve(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr)))
0381 #define lh_ERR_STRING_DATA_error(lh) OPENSSL_LH_error(ossl_check_ERR_STRING_DATA_lh_type(lh))
0382 #define lh_ERR_STRING_DATA_num_items(lh) OPENSSL_LH_num_items(ossl_check_ERR_STRING_DATA_lh_type(lh))
0383 #define lh_ERR_STRING_DATA_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out)
0384 #define lh_ERR_STRING_DATA_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out)
0385 #define lh_ERR_STRING_DATA_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out)
0386 #define lh_ERR_STRING_DATA_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh))
0387 #define lh_ERR_STRING_DATA_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh), dl)
0388 #define lh_ERR_STRING_DATA_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_doallfunc_type(dfn))
0389
0390
0391
0392 #define ERR_MAX_DATA_SIZE 1024
0393
0394
0395 void ERR_new(void);
0396 void ERR_set_debug(const char *file, int line, const char *func);
0397 void ERR_set_error(int lib, int reason, const char *fmt, ...);
0398 void ERR_vset_error(int lib, int reason, const char *fmt, va_list args);
0399
0400
0401 # define ERR_raise(lib, reason) ERR_raise_data((lib),(reason),NULL)
0402 # define ERR_raise_data \
0403 (ERR_new(), \
0404 ERR_set_debug(OPENSSL_FILE,OPENSSL_LINE,OPENSSL_FUNC), \
0405 ERR_set_error)
0406
0407 # ifndef OPENSSL_NO_DEPRECATED_3_0
0408
0409 # define ERR_put_error(lib, func, reason, file, line) \
0410 (ERR_new(), \
0411 ERR_set_debug((file), (line), OPENSSL_FUNC), \
0412 ERR_set_error((lib), (reason), NULL))
0413 # endif
0414
0415 void ERR_set_error_data(char *data, int flags);
0416
0417 unsigned long ERR_get_error(void);
0418 unsigned long ERR_get_error_all(const char **file, int *line,
0419 const char **func,
0420 const char **data, int *flags);
0421 # ifndef OPENSSL_NO_DEPRECATED_3_0
0422 OSSL_DEPRECATEDIN_3_0
0423 unsigned long ERR_get_error_line(const char **file, int *line);
0424 OSSL_DEPRECATEDIN_3_0
0425 unsigned long ERR_get_error_line_data(const char **file, int *line,
0426 const char **data, int *flags);
0427 #endif
0428 unsigned long ERR_peek_error(void);
0429 unsigned long ERR_peek_error_line(const char **file, int *line);
0430 unsigned long ERR_peek_error_func(const char **func);
0431 unsigned long ERR_peek_error_data(const char **data, int *flags);
0432 unsigned long ERR_peek_error_all(const char **file, int *line,
0433 const char **func,
0434 const char **data, int *flags);
0435 # ifndef OPENSSL_NO_DEPRECATED_3_0
0436 OSSL_DEPRECATEDIN_3_0
0437 unsigned long ERR_peek_error_line_data(const char **file, int *line,
0438 const char **data, int *flags);
0439 # endif
0440 unsigned long ERR_peek_last_error(void);
0441 unsigned long ERR_peek_last_error_line(const char **file, int *line);
0442 unsigned long ERR_peek_last_error_func(const char **func);
0443 unsigned long ERR_peek_last_error_data(const char **data, int *flags);
0444 unsigned long ERR_peek_last_error_all(const char **file, int *line,
0445 const char **func,
0446 const char **data, int *flags);
0447 # ifndef OPENSSL_NO_DEPRECATED_3_0
0448 OSSL_DEPRECATEDIN_3_0
0449 unsigned long ERR_peek_last_error_line_data(const char **file, int *line,
0450 const char **data, int *flags);
0451 # endif
0452
0453 void ERR_clear_error(void);
0454
0455 char *ERR_error_string(unsigned long e, char *buf);
0456 void ERR_error_string_n(unsigned long e, char *buf, size_t len);
0457 const char *ERR_lib_error_string(unsigned long e);
0458 # ifndef OPENSSL_NO_DEPRECATED_3_0
0459 OSSL_DEPRECATEDIN_3_0 const char *ERR_func_error_string(unsigned long e);
0460 # endif
0461 const char *ERR_reason_error_string(unsigned long e);
0462
0463 void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u),
0464 void *u);
0465 # ifndef OPENSSL_NO_STDIO
0466 void ERR_print_errors_fp(FILE *fp);
0467 # endif
0468 void ERR_print_errors(BIO *bp);
0469
0470 void ERR_add_error_data(int num, ...);
0471 void ERR_add_error_vdata(int num, va_list args);
0472 void ERR_add_error_txt(const char *sepr, const char *txt);
0473 void ERR_add_error_mem_bio(const char *sep, BIO *bio);
0474
0475 int ERR_load_strings(int lib, ERR_STRING_DATA *str);
0476 int ERR_load_strings_const(const ERR_STRING_DATA *str);
0477 int ERR_unload_strings(int lib, ERR_STRING_DATA *str);
0478
0479 #ifndef OPENSSL_NO_DEPRECATED_1_1_0
0480 # define ERR_load_crypto_strings() \
0481 OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
0482 # define ERR_free_strings() while(0) continue
0483 #endif
0484 #ifndef OPENSSL_NO_DEPRECATED_1_1_0
0485 OSSL_DEPRECATEDIN_1_1_0 void ERR_remove_thread_state(void *);
0486 #endif
0487 #ifndef OPENSSL_NO_DEPRECATED_1_0_0
0488 OSSL_DEPRECATEDIN_1_0_0 void ERR_remove_state(unsigned long pid);
0489 #endif
0490 #ifndef OPENSSL_NO_DEPRECATED_3_0
0491 OSSL_DEPRECATEDIN_3_0 ERR_STATE *ERR_get_state(void);
0492 #endif
0493
0494 int ERR_get_next_error_library(void);
0495
0496 int ERR_set_mark(void);
0497 int ERR_pop_to_mark(void);
0498 int ERR_clear_last_mark(void);
0499 int ERR_count_to_mark(void);
0500 int ERR_pop(void);
0501
0502 ERR_STATE *OSSL_ERR_STATE_new(void);
0503 void OSSL_ERR_STATE_save(ERR_STATE *es);
0504 void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es);
0505 void OSSL_ERR_STATE_restore(const ERR_STATE *es);
0506 void OSSL_ERR_STATE_free(ERR_STATE *es);
0507
0508 #ifdef __cplusplus
0509 }
0510 #endif
0511
0512 #endif