404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.129.23.179: ~ $
/*
 * Copyright 1999-2019 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
 */

#ifndef HEADER_SAFESTACK_H
# define HEADER_SAFESTACK_H

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

#ifdef __cplusplus
extern "C" {
#endif

# define STACK_OF(type) struct stack_st_##type

# define SKM_DEFINE_STACK_OF(t1, t2, t3) \
    STACK_OF(t1); \
    typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \
    typedef void (*sk_##t1##_freefunc)(t3 *a); \
    typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \
    static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \
    { \
        return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \
    { \
        return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \
    } \
    static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \
    { \
        return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \
    } \
    static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \
    { \
        return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \
    } \
    static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \
    { \
        return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \
    { \
        return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \
    } \
    static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \
    { \
        OPENSSL_sk_free((OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \
    { \
        OPENSSL_sk_zero((OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \
    { \
        return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \
    { \
        return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \
                                           (const void *)ptr); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \
    { \
        return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \
    { \
        return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \
    { \
        return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \
    { \
        return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \
    { \
        OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \
    { \
        return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \
    } \
    static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \
    { \
        return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \
    { \
        return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \
    { \
        return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \
    } \
    static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \
    { \
        OPENSSL_sk_sort((OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \
    { \
        return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \
    { \
        return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \
    } \
    static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \
                                                    sk_##t1##_copyfunc copyfunc, \
                                                    sk_##t1##_freefunc freefunc) \
    { \
        return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \
                                            (OPENSSL_sk_copyfunc)copyfunc, \
                                            (OPENSSL_sk_freefunc)freefunc); \
    } \
    static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \
    { \
        return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \
    }

# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2)
# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t)
# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \
            SKM_DEFINE_STACK_OF(t1, const t2, t2)
# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t)

/*-
 * Strings are special: normally an lhash entry will point to a single
 * (somewhat) mutable object. In the case of strings:
 *
 * a) Instead of a single char, there is an array of chars, NUL-terminated.
 * b) The string may have be immutable.
 *
 * So, they need their own declarations. Especially important for
 * type-checking tools, such as Deputy.
 *
 * In practice, however, it appears to be hard to have a const
 * string. For now, I'm settling for dealing with the fact it is a
 * string at all.
 */
typedef char *OPENSSL_STRING;
typedef const char *OPENSSL_CSTRING;

/*-
 * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but
 * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned
 * above, instead of a single char each entry is a NUL-terminated array of
 * chars. So, we have to implement STRING specially for STACK_OF. This is
 * dealt with in the autogenerated macros below.
 */
DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char)
DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char)

/*
 * Similarly, we sometimes use a block of characters, NOT nul-terminated.
 * These should also be distinguished from "normal" stacks.
 */
typedef void *OPENSSL_BLOCK;
DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)

/*
 * 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_sk_num
#  pragma weak OPENSSL_sk_value
#  pragma weak OPENSSL_sk_new
#  pragma weak OPENSSL_sk_new_null
#  pragma weak OPENSSL_sk_new_reserve
#  pragma weak OPENSSL_sk_reserve
#  pragma weak OPENSSL_sk_free
#  pragma weak OPENSSL_sk_zero
#  pragma weak OPENSSL_sk_delete
#  pragma weak OPENSSL_sk_delete_ptr
#  pragma weak OPENSSL_sk_push
#  pragma weak OPENSSL_sk_unshift
#  pragma weak OPENSSL_sk_pop
#  pragma weak OPENSSL_sk_shift
#  pragma weak OPENSSL_sk_pop_free
#  pragma weak OPENSSL_sk_insert
#  pragma weak OPENSSL_sk_set
#  pragma weak OPENSSL_sk_find
#  pragma weak OPENSSL_sk_find_ex
#  pragma weak OPENSSL_sk_sort
#  pragma weak OPENSSL_sk_is_sorted
#  pragma weak OPENSSL_sk_dup
#  pragma weak OPENSSL_sk_deep_copy
#  pragma weak OPENSSL_sk_set_cmp_func
# 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