404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.216.188.136: ~ $
/*
 * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
 *
 * Licensed under the OpenSSL license (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */

/*
 * Header for dynamic hash table routines Author - Eric Young
 */

#ifndef HEADER_LHASH_H
# define HEADER_LHASH_H

# include <openssl/e_os2.h>
# include <openssl/bio.h>

#ifdef  __cplusplus
extern "C" {
#endif

typedef struct lhash_node_st OPENSSL_LH_NODE;
typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *);
typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *);
typedef void (*OPENSSL_LH_DOALL_FUNC) (void *);
typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *);
typedef struct lhash_st OPENSSL_LHASH;

/*
 * Macros for declaring and implementing type-safe wrappers for LHASH
 * callbacks. This way, callbacks can be provided to LHASH structures without
 * function pointer casting and the macro-defined callbacks provide
 * per-variable casting before deferring to the underlying type-specific
 * callbacks. NB: It is possible to place a "static" in front of both the
 * DECLARE and IMPLEMENT macros if the functions are strictly internal.
 */

/* First: "hash" functions */
# define DECLARE_LHASH_HASH_FN(name, o_type) \
        unsigned long name##_LHASH_HASH(const void *);
# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \
        unsigned long name##_LHASH_HASH(const void *arg) { \
                const o_type *a = arg; \
                return name##_hash(a); }
# define LHASH_HASH_FN(name) name##_LHASH_HASH

/* Second: "compare" functions */
# define DECLARE_LHASH_COMP_FN(name, o_type) \
        int name##_LHASH_COMP(const void *, const void *);
# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \
        int name##_LHASH_COMP(const void *arg1, const void *arg2) { \
                const o_type *a = arg1;             \
                const o_type *b = arg2; \
                return name##_cmp(a,b); }
# define LHASH_COMP_FN(name) name##_LHASH_COMP

/* Fourth: "doall_arg" functions */
# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \
        void name##_LHASH_DOALL_ARG(void *, void *);
# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \
        void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \
                o_type *a = arg1; \
                a_type *b = arg2; \
                name##_doall_arg(a, b); }
# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG


# define LH_LOAD_MULT    256

int OPENSSL_LH_error(OPENSSL_LHASH *lh);
OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c);
void OPENSSL_LH_free(OPENSSL_LHASH *lh);
void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data);
void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data);
void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data);
void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func);
void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg);
unsigned long OPENSSL_LH_strhash(const char *c);
unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh);
unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh);
void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load);

# ifndef OPENSSL_NO_STDIO
void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp);
void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp);
void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp);
# endif
void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out);
void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out);
void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out);

# if OPENSSL_API_COMPAT < 0x10100000L
#  define _LHASH OPENSSL_LHASH
#  define LHASH_NODE OPENSSL_LH_NODE
#  define lh_error OPENSSL_LH_error
#  define lh_new OPENSSL_LH_new
#  define lh_free OPENSSL_LH_free
#  define lh_insert OPENSSL_LH_insert
#  define lh_delete OPENSSL_LH_delete
#  define lh_retrieve OPENSSL_LH_retrieve
#  define lh_doall OPENSSL_LH_doall
#  define lh_doall_arg OPENSSL_LH_doall_arg
#  define lh_strhash OPENSSL_LH_strhash
#  define lh_num_items OPENSSL_LH_num_items
#  ifndef OPENSSL_NO_STDIO
#   define lh_stats OPENSSL_LH_stats
#   define lh_node_stats OPENSSL_LH_node_stats
#   define lh_node_usage_stats OPENSSL_LH_node_usage_stats
#  endif
#  define lh_stats_bio OPENSSL_LH_stats_bio
#  define lh_node_stats_bio OPENSSL_LH_node_stats_bio
#  define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio
# endif

/* Type checking... */

# define LHASH_OF(type) struct lhash_st_##type

# define DEFINE_LHASH_OF(type) \
    LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \
    static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \
                                                                   int (*cfn)(const type *, const type *)) \
    { \
        return (LHASH_OF(type) *) \
            OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \
    } \
    static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \
    { \
        OPENSSL_LH_free((OPENSSL_LHASH *)lh); \
    } \
    static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \
    { \
        return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \
    } \
    static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \
    { \
        return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \
    } \
    static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \
    { \
        return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \
    } \
    static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \
    { \
        return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \
    } \
    static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \
    { \
        return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \
    } \
    static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
    { \
        OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \
    } \
    static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
    { \
        OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \
    } \
    static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \
    { \
        OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \
    } \
    static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \
    { \
        return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \
    } \
    static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \
    { \
        OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \
    } \
    static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \
                                                          void (*doall)(type *)) \
    { \
        OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \
    } \
    LHASH_OF(type)

#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \
    int_implement_lhash_doall(type, argtype, const type)

#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \
    int_implement_lhash_doall(type, argtype, type)

#define int_implement_lhash_doall(type, argtype, cbargtype) \
    static ossl_unused ossl_inline void \
        lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \
                                   void (*fn)(cbargtype *, argtype *), \
                                   argtype *arg) \
    { \
        OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \
    } \
    LHASH_OF(type)

DEFINE_LHASH_OF(OPENSSL_STRING);
# ifdef _MSC_VER
/*
 * push and pop this warning:
 *   warning C4090: 'function': different 'const' qualifiers
 */
#  pragma warning (push)
#  pragma warning (disable: 4090)
# endif

DEFINE_LHASH_OF(OPENSSL_CSTRING);

# ifdef _MSC_VER
#  pragma warning (pop)
# endif

/*
 * If called without higher optimization (min. -xO3) the Oracle Developer
 * Studio compiler generates code for the defined (static inline) functions
 * above.
 * This would later lead to the linker complaining about missing symbols when
 * this header file is included but the resulting object is not linked against
 * the Crypto library (openssl#6912).
 */
# ifdef __SUNPRO_C
#  pragma weak OPENSSL_LH_new
#  pragma weak OPENSSL_LH_free
#  pragma weak OPENSSL_LH_insert
#  pragma weak OPENSSL_LH_delete
#  pragma weak OPENSSL_LH_retrieve
#  pragma weak OPENSSL_LH_error
#  pragma weak OPENSSL_LH_num_items
#  pragma weak OPENSSL_LH_node_stats_bio
#  pragma weak OPENSSL_LH_node_usage_stats_bio
#  pragma weak OPENSSL_LH_stats_bio
#  pragma weak OPENSSL_LH_get_down_load
#  pragma weak OPENSSL_LH_set_down_load
#  pragma weak OPENSSL_LH_doall
#  pragma weak OPENSSL_LH_doall_arg
# endif /* __SUNPRO_C */

#ifdef  __cplusplus
}
#endif

#endif

Filemanager

Name Type Size Permission Actions
archs Folder 0755
aes.h File 3.27 KB 0644
asn1.h File 32.84 KB 0644
asn1_asm.h File 2.66 KB 0644
asn1_mac.h File 395 B 0644
asn1_no-asm.h File 2.82 KB 0644
asn1err.h File 14.34 KB 0644
asn1t.h File 32.17 KB 0644
asn1t_asm.h File 2.68 KB 0644
asn1t_no-asm.h File 2.84 KB 0644
async.h File 2.34 KB 0644
asyncerr.h File 1.29 KB 0644
bio.h File 34.09 KB 0644
bio_asm.h File 2.64 KB 0644
bio_no-asm.h File 2.8 KB 0644
bioerr.h File 6.25 KB 0644
blowfish.h File 1.8 KB 0644
bn.h File 21.62 KB 0644
bn_conf.h File 100 B 0644
bn_conf_asm.h File 2.88 KB 0644
bn_conf_no-asm.h File 3.05 KB 0644
bnerr.h File 4.85 KB 0644
buffer.h File 1.56 KB 0644
buffererr.h File 820 B 0644
camellia.h File 3.1 KB 0644
cast.h File 1.63 KB 0644
cmac.h File 1.04 KB 0644
cmp_asm.h File 2.64 KB 0644
cmp_no-asm.h File 2.8 KB 0644
cms.h File 16 KB 0644
cms_asm.h File 2.64 KB 0644
cms_no-asm.h File 2.8 KB 0644
cmserr.h File 10.96 KB 0644
comp.h File 1.3 KB 0644
comperr.h File 1.18 KB 0644
conf.h File 5.47 KB 0644
conf_api.h File 1.27 KB 0644
conf_asm.h File 2.66 KB 0644
conf_no-asm.h File 2.82 KB 0644
conferr.h File 3.35 KB 0644
configuration_asm.h File 2.84 KB 0644
configuration_no-asm.h File 3.02 KB 0644
crmf_asm.h File 2.66 KB 0644
crmf_no-asm.h File 2.82 KB 0644
crypto.h File 16.91 KB 0644
crypto_asm.h File 2.7 KB 0644
crypto_no-asm.h File 2.87 KB 0644
cryptoerr.h File 2.21 KB 0644
ct.h File 15.5 KB 0644
ct_asm.h File 2.62 KB 0644
ct_no-asm.h File 2.78 KB 0644
cterr.h File 3.39 KB 0644
des.h File 7.45 KB 0644
dh.h File 13.19 KB 0644
dherr.h File 3.94 KB 0644
dsa.h File 9.82 KB 0644
dsaerr.h File 2.9 KB 0644
dso_conf.h File 102 B 0644
dso_conf_asm.h File 2.9 KB 0644
dso_conf_no-asm.h File 3.08 KB 0644
dtls1.h File 1.54 KB 0644
e_os2.h File 8.71 KB 0644
ebcdic.h File 924 B 0644
ec.h File 62.19 KB 0644
ecdh.h File 358 B 0644
ecdsa.h File 358 B 0644
ecerr.h File 15.45 KB 0644
engine.h File 33.91 KB 0644
engineerr.h File 5.32 KB 0644
err.h File 11 KB 0644
err_asm.h File 2.64 KB 0644
err_no-asm.h File 2.8 KB 0644
ess_asm.h File 2.64 KB 0644
ess_no-asm.h File 2.8 KB 0644
evp.h File 75.14 KB 0644
evperr.h File 11.18 KB 0644
fipskey_asm.h File 2.72 KB 0644
fipskey_no-asm.h File 2.89 KB 0644
hmac.h File 1.55 KB 0644
idea.h File 2.05 KB 0644
kdf.h File 4.22 KB 0644
kdferr.h File 2.07 KB 0644
lhash.h File 9.05 KB 0644
lhash_asm.h File 2.68 KB 0644
lhash_no-asm.h File 2.84 KB 0644
md2.h File 1.03 KB 0644
md4.h File 1.29 KB 0644
md5.h File 1.29 KB 0644
mdc2.h File 1.03 KB 0644
modes.h File 10.23 KB 0644
obj_mac.h File 212.42 KB 0644
objects.h File 6.48 KB 0644
objectserr.h File 1.29 KB 0644
ocsp.h File 14.95 KB 0644
ocsp_asm.h File 2.66 KB 0644
ocsp_no-asm.h File 2.82 KB 0644
ocsperr.h File 3.28 KB 0644
opensslconf.h File 590 B 0644
opensslconf_asm.h File 6.76 KB 0644
opensslconf_no-asm.h File 2.8 KB 0644
opensslv.h File 4.01 KB 0644
opensslv_asm.h File 2.74 KB 0644
opensslv_no-asm.h File 2.91 KB 0644
ossl_typ.h File 6.17 KB 0644
pem.h File 15.11 KB 0644
pem2.h File 415 B 0644
pemerr.h File 5.1 KB 0644
pkcs12.h File 9.64 KB 0644
pkcs12_asm.h File 2.7 KB 0644
pkcs12_no-asm.h File 2.87 KB 0644
pkcs12err.h File 3.66 KB 0644
pkcs7.h File 11.32 KB 0644
pkcs7_asm.h File 2.68 KB 0644
pkcs7_no-asm.h File 2.84 KB 0644
pkcs7err.h File 4.99 KB 0644
rand.h File 2.16 KB 0644
rand_drbg.h File 4.65 KB 0644
randerr.h File 4.52 KB 0644
rc2.h File 1.5 KB 0644
rc4.h File 825 B 0644
rc5.h File 1.94 KB 0644
ripemd.h File 1.21 KB 0644
rsa.h File 21.68 KB 0644
rsaerr.h File 8.86 KB 0644
safestack.h File 7.95 KB 0644
safestack_asm.h File 2.76 KB 0644
safestack_no-asm.h File 2.93 KB 0644
seed.h File 3.4 KB 0644
sha.h File 3.74 KB 0644
srp.h File 3.74 KB 0644
srp_asm.h File 2.64 KB 0644
srp_no-asm.h File 2.8 KB 0644
srtp.h File 1.29 KB 0644
ssl.h File 111.71 KB 0644
ssl2.h File 542 B 0644
ssl3.h File 14.36 KB 0644
ssl_asm.h File 2.64 KB 0644
ssl_no-asm.h File 2.8 KB 0644
sslerr.h File 46.94 KB 0644
stack.h File 3.02 KB 0644
store.h File 10.94 KB 0644
storeerr.h File 4.3 KB 0644
symhacks.h File 1.28 KB 0644
tls1.h File 70.97 KB 0644
ts.h File 21.9 KB 0644
tserr.h File 6.59 KB 0644
txt_db.h File 1.63 KB 0644
ui.h File 15.68 KB 0644
ui_asm.h File 2.62 KB 0644
ui_no-asm.h File 2.78 KB 0644
uierr.h File 2.67 KB 0644
whrlpool.h File 1.34 KB 0644
x509.h File 42.31 KB 0644
x509_asm.h File 2.66 KB 0644
x509_no-asm.h File 2.82 KB 0644
x509_vfy.h File 31.69 KB 0644
x509_vfy_asm.h File 2.74 KB 0644
x509_vfy_no-asm.h File 2.91 KB 0644
x509err.h File 6.64 KB 0644
x509v3.h File 32.66 KB 0644
x509v3_asm.h File 2.7 KB 0644
x509v3_no-asm.h File 2.87 KB 0644
x509v3err.h File 8.69 KB 0644