Skip to content

Commit 192c66c

Browse files
authored
Add more OpenSSL function addresses and add function declarations (#80)
* Add more OpenSSL function addresses * Add OpenSSL function declarations
1 parent 7890ffd commit 192c66c

File tree

5 files changed

+253
-4
lines changed

5 files changed

+253
-4
lines changed

Spore ModAPI/SourceCode/DLL/AddressesOpenSSL.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ namespace Addresses(OpenSSL)
1111
DefineAddress(SSL_ctrl, SelectAddress(0x0117f0e0, 0x0117c960));
1212
DefineAddress(SSL_CTX_ctrl, SelectAddress(0x0117dca0, 0x0117b520));
1313
DefineAddress(SSL_CTX_free, SelectAddress(0x0117e1b0, 0x0117ba30));
14+
DefineAddress(SSL_CTX_load_verify_locations, SelectAddress(0x0117eb90, 0x0117c410));
1415
DefineAddress(SSL_CTX_new, SelectAddress(0x0117f200, 0x0117ca80));
1516
DefineAddress(SSL_CTX_set_cipher_list, SelectAddress(0x0117df20, 0x0117b7a0));
1617
DefineAddress(SSL_CTX_set_tmp_dh_callback, SelectAddress(0x0117ebc0, 0x0117c440));
@@ -34,8 +35,6 @@ namespace Addresses(OpenSSL)
3435
DefineAddress(SSLv23_method, SelectAddress(0x01185960, 0x011831f0));
3536
DefineAddress(SSLv23_server_method, SelectAddress(0x01185930, 0x011831c0));
3637

37-
DefineAddress(sk_SSL_CIPHER_free, SelectAddress(0x01180560, 0x0117ddd0));
38-
//DefineAddress(ssl23_read, SelectAddress(0x0, 0x011a0420)); // TODO?
3938
DefineAddress(ssl_cert_free, SelectAddress(0x01197300, 0x01194b90));
4039
DefineAddress(ssl_clear_bad_session, SelectAddress(0x01184680, 0x01181f10));
4140
DefineAddress(ssl_clear_cipher_ctx, SelectAddress(0x0117ea20, 0x0117c2a0));
@@ -44,7 +43,13 @@ namespace Addresses(OpenSSL)
4443
DefineAddress(ssl_load_ciphers, SelectAddress(0x01195610, 0x01192eb0));
4544
DefineAddress(ssl_sess_cert_free, SelectAddress(0x01197440, 0x01194cd0));
4645
DefineAddress(ssleay_rand_add, SelectAddress(0x01188050, 0x011858c0));
47-
//DefineAddress(ssleay_rand_seed, SelectAddress(0x0, 0x01185c10)); // TODO?
46+
47+
DefineAddress(ERR_clear_error, SelectAddress(0x011835d0, 0x01180e60));
48+
DefineAddress(ERR_error_string_n, SelectAddress(0x01183640, 0x01180ed0));
49+
DefineAddress(ERR_get_state, SelectAddress(0x01183060, 0x011808f0));
50+
DefineAddress(ERR_print_errors_cb, SelectAddress(0x011d1300, 0x011cec10));
51+
DefineAddress(ERR_put_error, SelectAddress(0x011834e0, 0x01180d70));
52+
DefineAddress(ERR_set_error_data, SelectAddress(0x01183170, 0x01180a00));
4853

4954
DefineAddress(OPENSSL_add_all_algorithms_noconf, SelectAddress(0x01185970, 0x01183200));
5055
DefineAddress(OpenSSL_add_all_ciphers, SelectAddress(0x011ab3d0, 0x011a8c70));
@@ -54,7 +59,6 @@ namespace Addresses(OpenSSL)
5459
DefineAddress(OPENSSL_showfatal, SelectAddress(0x01183b80, 0x01181410));
5560
DefineAddress(OpenSSLDie, SelectAddress(0x01183ca0, 0x01181530));
5661

57-
//DefineAddress(BIO_callback_ctrl, SelectAddress(0x0, 0x01177330)); // TODO?
5862
DefineAddress(BIO_ctrl, SelectAddress(0x01179a00, 0x011772a0));
5963
DefineAddress(BIO_f_buffer, SelectAddress(0x01199100, 0x01196990));
6064
DefineAddress(BIO_free, SelectAddress(0x011796b0, 0x01176f50));
@@ -83,6 +87,7 @@ namespace Addresses(OpenSSL)
8387
DefineAddress(CRYPTO_set_locking_callback, SelectAddress(0x01183a70, 0x01181300));
8488
DefineAddress(CRYPTO_set_mem_functions, SelectAddress(0x01185af0, 0x01183380));
8589

90+
DefineAddress(sk_free, SelectAddress(0x01180560, 0x0117ddd0));
8691
DefineAddress(sk_X509_NAME_pop_free, SelectAddress(0x011807e0, 0x0117e050));
8792
DefineAddress(i2d_X509, SelectAddress(0x0117f700, 0x0117cf80));
8893
DefineAddress(X509_free, SelectAddress(0x0117f730, 0x0117cfb0));
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/****************************************************************************
2+
* Copyright (C) 2024 Rosalie Wanders
3+
*
4+
* This file is part of Spore ModAPI.
5+
*
6+
* Spore ModAPI is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* This program is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18+
****************************************************************************/
19+
#include <Spore\OpenSSL.h>
20+
21+
namespace OpenSSL
22+
{
23+
auto_STATIC_METHOD(OpenSSL, int, SSL_accept, Args(SSL* ssl), Args(ssl));
24+
auto_STATIC_METHOD(OpenSSL, int, SSL_clear, Args(SSL* ssl), Args(ssl));
25+
auto_STATIC_METHOD(OpenSSL, int, SSL_connect, Args(SSL* ssl), Args(ssl));
26+
auto_STATIC_METHOD(OpenSSL, long, SSL_ctrl, Args(SSL* ssl, int cmd, long larg, void* parg), Args(ssl, cmd, larg, parg));
27+
auto_STATIC_METHOD(OpenSSL, long, SSL_CTX_ctrl, Args(SSL_CTX* ctx, int cmd, long larg, void* parg), Args(ctx, cmd, larg, parg));
28+
auto_STATIC_METHOD(OpenSSL, void, SSL_CTX_free, Args(SSL_CTX* ctx), Args(ctx));
29+
auto_STATIC_METHOD(OpenSSL, int, SSL_CTX_load_verify_locations, Args(SSL_CTX* ctx, const char* CAfile, const char* CApath), Args(ctx, CAfile, CApath));
30+
auto_STATIC_METHOD(OpenSSL, SSL_CTX*, SSL_CTX_new, Args(SSL_METHOD* meth), Args(meth));
31+
auto_STATIC_METHOD(OpenSSL, int, SSL_CTX_set_cipher_list, Args(SSL_CTX* ctx, const char* str), Args(ctx, str));
32+
auto_STATIC_METHOD(OpenSSL, void, SSL_CTX_set_tmp_dh_callback, Args(SSL_CTX* ctx, DH* (*dh)(SSL* ssl, int is_export, int keylength)), Args(ctx, dh));
33+
auto_STATIC_METHOD(OpenSSL, void, SSL_CTX_set_verify, Args(SSL_CTX* ctx, int mode, int (*callback)(int, X509_STORE_CTX*)), Args(ctx, mode, callback));
34+
auto_STATIC_METHOD(OpenSSL, void, SSL_CTX_set_verify_depth, Args(SSL_CTX* ctx, int depth), Args(ctx, depth));
35+
auto_STATIC_METHOD(OpenSSL, void, SSL_free, Args(SSL* ssl), Args(ssl));
36+
auto_STATIC_METHOD(OpenSSL, SSL_SESSION*, SSL_get1_session, Args(SSL* ssl), Args(ssl));
37+
auto_STATIC_METHOD(OpenSSL, int, SSL_get_error, Args(const SSL* s, int ret_code), Args(s, ret_code));
38+
auto_STATIC_METHOD(OpenSSL, X509*, SSL_get_peer_certificate, Args(const SSL* s), Args(s));
39+
auto_STATIC_METHOD(OpenSSL, int, SSL_get_shutdown, Args(const SSL* ssl), Args(ssl));
40+
auto_STATIC_METHOD(OpenSSL, int, SSL_library_init, Args(void), Args());
41+
auto_STATIC_METHOD(OpenSSL, SSL*, SSL_new, Args(SSL_CTX* ctx), Args(ctx));
42+
auto_STATIC_METHOD(OpenSSL, int, SSL_read, Args(SSL* ssl, void* buf, int num), Args(ssl, buf, num));
43+
auto_STATIC_METHOD(OpenSSL, void, SSL_SESSION_free, Args(SSL_SESSION* ses), Args(ses));
44+
auto_STATIC_METHOD(OpenSSL, SSL_SESSION*, SSL_SESSION_new, Args(void), Args());
45+
auto_STATIC_METHOD(OpenSSL, void, SSL_set_bio, Args(SSL* s, BIO* rbio, BIO* wbio), Args(s, rbio, wbio));
46+
auto_STATIC_METHOD(OpenSSL, int, SSL_set_session, Args(SSL* to, SSL_SESSION* session), Args(to, session));
47+
auto_STATIC_METHOD(OpenSSL, int, SSL_shutdown, Args(SSL* s), Args(s));
48+
auto_STATIC_METHOD(OpenSSL, int, SSL_write, Args(SSL* ssl, const void* buf, int num), Args(ssl, buf, num));
49+
auto_STATIC_METHOD(OpenSSL, SSL_METHOD*, SSLv23_client_method, Args(void), Args());
50+
auto_STATIC_METHOD(OpenSSL, SSL_METHOD*, SSLv23_method, Args(void), Args());
51+
auto_STATIC_METHOD(OpenSSL, SSL_METHOD*, SSLv23_server_method, Args(void), Args());
52+
53+
auto_STATIC_METHOD(OpenSSL, void, ssl_cert_free, Args(CERT* c), Args(c));
54+
auto_STATIC_METHOD(OpenSSL, int, ssl_clear_bad_session, Args(SSL* s), Args(s));
55+
auto_STATIC_METHOD(OpenSSL, void, ssl_clear_cipher_ctx, Args(SSL* s), Args(s));
56+
auto_STATIC_METHOD(OpenSSL, int, ssl_get_new_session, Args(SSL* s, int session), Args(s, session));
57+
auto_STATIC_METHOD(OpenSSL, int, ssl_init_wbio_buffer, Args(SSL* s, int push), Args(s, push));
58+
auto_STATIC_METHOD(OpenSSL, void, ssl_load_ciphers, Args(void), Args());
59+
auto_STATIC_METHOD(OpenSSL, void, ssl_sess_cert_free, Args(SESS_CERT* sc), Args(sc));
60+
auto_STATIC_METHOD(OpenSSL, void, ssleay_rand_add, Args(const void* buf, int num, double add), Args(buf, num, add));
61+
62+
auto_STATIC_METHOD(OpenSSL, void, ERR_clear_error, Args(void), Args());
63+
auto_STATIC_METHOD(OpenSSL, void, ERR_error_string_n, Args(unsigned long e, char* buf, size_t len), Args(e, buf, len));
64+
auto_STATIC_METHOD(OpenSSL, ERR_STATE*, ERR_get_state, Args(void), Args());
65+
auto_STATIC_METHOD(OpenSSL, void, ERR_print_errors_cb, Args(ERR_print_errors_cb_func cb, void* u), Args(cb, u));
66+
auto_STATIC_METHOD(OpenSSL, void, ERR_put_error, Args(int lib, int func, int reason, const char* file, int line), Args(lib, func, reason, file, line));
67+
auto_STATIC_METHOD(OpenSSL, void, ERR_set_error_data, Args(char* data, int flags), Args(data, flags));
68+
69+
auto_STATIC_METHOD(OpenSSL, void, OPENSSL_add_all_algorithms_noconf, Args(void), Args());
70+
auto_STATIC_METHOD(OpenSSL, void, OpenSSL_add_all_ciphers, Args(void), Args());
71+
auto_STATIC_METHOD(OpenSSL, void, OpenSSL_add_all_digests, Args(void), Args());
72+
auto_STATIC_METHOD(OpenSSL, void, OPENSSL_cleanse, Args(void* ptr, size_t len), Args(ptr, len));
73+
auto_STATIC_METHOD(OpenSSL, void, OPENSSL_free, Args(void* ptr), Args(ptr));
74+
// TODO: auto_STATIC_METHOD(OpenSSL, void, OPENSSL_showfatal, Args(const char* fmta, ...), Args(fmta, __VA_ARGS__));
75+
auto_STATIC_METHOD(OpenSSL, void, OpenSSLDie, Args(const char* file, int line, const char* assertion), Args(file, line, assertion));
76+
77+
auto_STATIC_METHOD(OpenSSL, long, BIO_ctrl, Args(BIO* b, int cmd, long larg, void* parg), Args(b, cmd, larg, parg));
78+
auto_STATIC_METHOD(OpenSSL, BIO_METHOD*, BIO_f_buffer, Args(void), Args());
79+
auto_STATIC_METHOD(OpenSSL, int, BIO_free, Args(BIO* a), Args(a));
80+
auto_STATIC_METHOD(OpenSSL, void, BIO_free_all, Args(BIO* bio), Args(bio));
81+
auto_STATIC_METHOD(OpenSSL, int, BIO_gets, Args(BIO* b, char* in, int inl), Args(b, in, inl));
82+
auto_STATIC_METHOD(OpenSSL, long, BIO_int_ctrl, Args(BIO* b, int cmd, long larg, int iarg), Args(b, cmd, larg, iarg));
83+
auto_STATIC_METHOD(OpenSSL, BIO*, BIO_new, Args(BIO_METHOD* method), Args(method));
84+
auto_STATIC_METHOD(OpenSSL, BIO*, BIO_new_file, Args(const char* filename, const char* mode), Args(filename, mode));
85+
auto_STATIC_METHOD(OpenSSL, BIO*, BIO_new_mem_buf, Args(void* buf, int len), Args(buf, len));
86+
auto_STATIC_METHOD(OpenSSL, BIO*, BIO_pop, Args(BIO* b), Args(b));
87+
auto_STATIC_METHOD(OpenSSL, BIO*, BIO_push, Args(BIO* b, BIO* append), Args(b, append));
88+
auto_STATIC_METHOD(OpenSSL, int, BIO_puts, Args(BIO* bp, const char* buf), Args(bp, buf));
89+
auto_STATIC_METHOD(OpenSSL, int, BIO_read, Args(BIO* b, void* data, int len), Args(b, data, len));
90+
auto_STATIC_METHOD(OpenSSL, int, BIO_write, Args(BIO* b, const void* data, int len), Args(b, data, len));
91+
92+
auto_STATIC_METHOD(OpenSSL, int, CRYPTO_add_lock, Args(int* pointer, int amount, int type, const char* file, int line), Args(pointer, amount, type, file, line));
93+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_free_ex_data, Args(int class_index, void* obj, CRYPTO_EX_DATA* ad), Args(class_index, obj, ad));
94+
auto_STATIC_METHOD(OpenSSL, CRYPTO_dynlock_value*, CRYPTO_get_dynlock_value, Args(int i), Args(i));
95+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_lock, Args(int mode, int type, const char* file, int line), Args(mode, type, file, line));
96+
auto_STATIC_METHOD(OpenSSL, void*, CRYPTO_malloc, Args(int num, const char* file, int line), Args(num, file, line));
97+
auto_STATIC_METHOD(OpenSSL, int, CRYPTO_num_locks, Args(void), Args());
98+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_set_dynlock_create_callback, Args(CRYPTO_dynlock_value* (*func)(const char* file, int line)), Args(func));
99+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_set_dynlock_destroy_callback, Args(void (*func)(CRYPTO_dynlock_value* l, const char* file, int line)), Args(func));
100+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_set_dynlock_lock_callback, Args(void (*func)(int mode, CRYPTO_dynlock_value* l, const char* file, int line)), Args(func));
101+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_set_id_callback, Args(unsigned long (*func)(void)), Args(func));
102+
auto_STATIC_METHOD(OpenSSL, void, CRYPTO_set_locking_callback, Args(void (*func)(int mode, int type, const char* file, int line)), Args(func));
103+
auto_STATIC_METHOD(OpenSSL, int, CRYPTO_set_mem_functions, Args(void* (*m)(size_t), void* (*r)(void*, size_t), void (*f)(void*)), Args(m, r, f));
104+
105+
// TODO: auto_STATIC_METHOD(OpenSSL, void, sk_free, Args(STACK* st), Args(st));
106+
// TODO: sk_X509_NAME_pop_free
107+
auto_STATIC_METHOD(OpenSSL, int, i2d_X509, Args(X509* x, unsigned char** out), Args(x, out));
108+
auto_STATIC_METHOD(OpenSSL, void, X509_free, Args(X509* a), Args(a));
109+
auto_STATIC_METHOD(OpenSSL, X509_LOOKUP_METHOD*, X509_LOOKUP_file, Args(void), Args());
110+
auto_STATIC_METHOD(OpenSSL, X509_LOOKUP_METHOD*, X509_LOOKUP_hash_dir, Args(void), Args());
111+
// TODO: X509_LOOKUP_load_file
112+
auto_STATIC_METHOD(OpenSSL, X509_LOOKUP*, X509_STORE_add_lookup, Args(X509_STORE* v, X509_LOOKUP_METHOD* m), Args(v, m));
113+
auto_STATIC_METHOD(OpenSSL, int, X509_STORE_load_locations, Args(X509_STORE* ctx, const char* file, const char* dir), Args(ctx, file, dir));
114+
auto_STATIC_METHOD(OpenSSL, void, X509_VERIFY_PARAM_free, Args(X509_VERIFY_PARAM* param), Args(param));
115+
}

Spore ModAPI/Spore ModAPI.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,7 @@
998998
<ClCompile Include="SourceCode\Graphics\ThumbnailManager.cpp" />
999999
<ClCompile Include="SourceCode\Graphics\RenderTargets.cpp" />
10001000
<ClCompile Include="SourceCode\Graphics\GeneratedMesh.cpp" />
1001+
<ClCompile Include="SourceCode\OpenSSL.cpp" />
10011002
<ClCompile Include="SourceCode\Pollinator\Pollinator.cpp" />
10021003
<ClCompile Include="SourceCode\RenderWare\Raster.cpp" />
10031004
<ClCompile Include="SourceCode\RenderWare\RenderWare.cpp" />

Spore ModAPI/Spore ModAPI.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2735,6 +2735,9 @@
27352735
<ClCompile Include="SourceCode\DLL\AddressesOpenSSL.cpp">
27362736
<Filter>Source Files</Filter>
27372737
</ClCompile>
2738+
<ClCompile Include="SourceCode\OpenSSL.cpp">
2739+
<Filter>Source Files</Filter>
2740+
</ClCompile>
27382741
</ItemGroup>
27392742
<ItemGroup>
27402743
<Natvis Include="EASTL.natvis" />

Spore ModAPI/Spore/OpenSSL.h

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,123 @@
2121

2222
#include <Spore\Internal.h>
2323

24+
namespace OpenSSL
25+
{
26+
typedef void SSL;
27+
typedef void SSL_CTX;
28+
typedef void SSL_METHOD;
29+
typedef void DH;
30+
typedef void X509_STORE_CTX;
31+
typedef void SSL_SESSION;
32+
typedef void X509;
33+
typedef void BIO;
34+
typedef void CERT;
35+
typedef void SESS_CERT;
36+
typedef void ERR_STATE;
37+
typedef void BIO_METHOD;
38+
typedef void CRYPTO_EX_DATA;
39+
typedef void CRYPTO_dynlock_value;
40+
//typedef void STACK;
41+
typedef void X509_LOOKUP_METHOD;
42+
typedef void X509_LOOKUP;
43+
typedef void X509_STORE;
44+
typedef void X509_VERIFY_PARAM;
45+
46+
int SSL_accept(SSL* ssl);
47+
int SSL_clear(SSL* ssl);
48+
int SSL_connect(SSL* ssl);
49+
long SSL_ctrl(SSL* ssl,int cmd, long larg, void* parg);
50+
long SSL_CTX_ctrl(SSL_CTX* ctx, int cmd, long larg, void* parg);
51+
void SSL_CTX_free(SSL_CTX* ctx);
52+
int SSL_CTX_load_verify_locations(SSL_CTX* ctx, const char* CAfile, const char* CApath);
53+
SSL_CTX* SSL_CTX_new(SSL_METHOD* meth);
54+
int SSL_CTX_set_cipher_list(SSL_CTX* ctx, const char* str);
55+
void SSL_CTX_set_tmp_dh_callback(SSL_CTX* ctx, DH *(*dh)(SSL* ssl, int is_export, int keylength));
56+
void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, int (*callback)(int, X509_STORE_CTX*));
57+
void SSL_CTX_set_verify_depth(SSL_CTX* ctx, int depth);
58+
void SSL_free(SSL* ssl);
59+
SSL_SESSION* SSL_get1_session(SSL* ssl);
60+
int SSL_get_error(const SSL* s, int ret_code);
61+
X509* SSL_get_peer_certificate(const SSL* s);
62+
int SSL_get_shutdown(const SSL* ssl);
63+
int SSL_library_init(void);
64+
SSL* SSL_new(SSL_CTX* ctx);
65+
int SSL_read(SSL* ssl,void* buf,int num);
66+
void SSL_SESSION_free(SSL_SESSION* ses);
67+
SSL_SESSION* SSL_SESSION_new(void);
68+
void SSL_set_bio(SSL* s, BIO* rbio, BIO* wbio);
69+
int SSL_set_session(SSL* to, SSL_SESSION* session);
70+
int SSL_shutdown(SSL* s);
71+
int SSL_write(SSL* ssl,const void* buf,int num);
72+
SSL_METHOD* SSLv23_client_method(void);
73+
SSL_METHOD* SSLv23_method(void);
74+
SSL_METHOD* SSLv23_server_method(void);
75+
76+
void ssl_cert_free(CERT* c);
77+
int ssl_clear_bad_session(SSL* s);
78+
void ssl_clear_cipher_ctx(SSL* s);
79+
int ssl_get_new_session(SSL* s, int session);
80+
int ssl_init_wbio_buffer(SSL* s, int push);
81+
void ssl_load_ciphers(void);
82+
void ssl_sess_cert_free(SESS_CERT* sc);
83+
void ssleay_rand_add(const void* buf, int num, double add);
84+
85+
typedef int (*ERR_print_errors_cb_func)(const char* str, size_t len, void* u);
86+
void ERR_clear_error(void);
87+
void ERR_error_string_n(unsigned long e, char* buf, size_t len);
88+
ERR_STATE* ERR_get_state(void);
89+
void ERR_print_errors_cb(ERR_print_errors_cb_func cb, void* u);
90+
void ERR_put_error(int lib, int func, int reason, const char* file, int line);
91+
void ERR_set_error_data(char* data, int flags);
92+
93+
void OPENSSL_add_all_algorithms_noconf(void);
94+
void OpenSSL_add_all_ciphers(void);
95+
void OpenSSL_add_all_digests(void);
96+
void OPENSSL_cleanse(void* ptr, size_t len);
97+
void OPENSSL_free(void* ptr);
98+
// TODO: void OPENSSL_showfatal(const char* fmta, ...);
99+
void OpenSSLDie(const char* file, int line, const char* assertion);
100+
101+
long BIO_ctrl(BIO* b, int cmd, long larg, void* parg);
102+
BIO_METHOD* BIO_f_buffer(void);
103+
int BIO_free(BIO* a);
104+
void BIO_free_all(BIO* bio);
105+
int BIO_gets(BIO* b, char* in, int inl);
106+
long BIO_int_ctrl(BIO* b, int cmd, long larg, int iarg);
107+
BIO* BIO_new(BIO_METHOD* method);
108+
BIO* BIO_new_file(const char* filename, const char* mode);
109+
BIO* BIO_new_mem_buf(void* buf, int len);
110+
BIO* BIO_pop(BIO* b);
111+
BIO* BIO_push(BIO* b, BIO* append);
112+
int BIO_puts(BIO* bp, const char* buf);
113+
int BIO_read(BIO* b, void* data, int len);
114+
int BIO_write(BIO* b, const void* data, int len);
115+
116+
int CRYPTO_add_lock(int* pointer, int amount, int type, const char* file, int line);
117+
void CRYPTO_free_ex_data(int class_index, void* obj, CRYPTO_EX_DATA* ad);
118+
CRYPTO_dynlock_value* CRYPTO_get_dynlock_value(int i);
119+
void CRYPTO_lock(int mode, int type, const char* file, int line);
120+
void* CRYPTO_malloc(int num, const char* file, int line);
121+
int CRYPTO_num_locks(void);
122+
void CRYPTO_set_dynlock_create_callback(CRYPTO_dynlock_value* (*func)(const char* file, int line));
123+
void CRYPTO_set_dynlock_destroy_callback(void (*func)(CRYPTO_dynlock_value* l, const char* file, int line));
124+
void CRYPTO_set_dynlock_lock_callback(void (*func)(int mode, CRYPTO_dynlock_value* l, const char* file, int line));
125+
void CRYPTO_set_id_callback(unsigned long (*func)(void));
126+
void CRYPTO_set_locking_callback(void (*func)(int mode, int type, const char* file, int line));
127+
int CRYPTO_set_mem_functions(void* (*m)(size_t), void* (*r)(void*, size_t), void (*f)(void*));
128+
129+
// TODO: void sk_free(STACK* st);
130+
// TODO: sk_X509_NAME_pop_free
131+
int i2d_X509(X509* x, unsigned char** out);
132+
void X509_free(X509* a);
133+
X509_LOOKUP_METHOD* X509_LOOKUP_file(void);
134+
X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void);
135+
// TODO: X509_LOOKUP_load_file
136+
X509_LOOKUP* X509_STORE_add_lookup(X509_STORE* v, X509_LOOKUP_METHOD* m);
137+
int X509_STORE_load_locations(X509_STORE* ctx, const char* file, const char* dir);
138+
void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM* param);
139+
}
140+
24141
namespace Addresses(OpenSSL)
25142
{
26143
DeclareAddress(SSL_accept);
@@ -29,6 +146,7 @@ namespace Addresses(OpenSSL)
29146
DeclareAddress(SSL_ctrl);
30147
DeclareAddress(SSL_CTX_ctrl);
31148
DeclareAddress(SSL_CTX_free);
149+
DeclareAddress(SSL_CTX_load_verify_locations);
32150
DeclareAddress(SSL_CTX_new);
33151
DeclareAddress(SSL_CTX_set_cipher_list);
34152
DeclareAddress(SSL_CTX_set_tmp_dh_callback);
@@ -62,6 +180,13 @@ namespace Addresses(OpenSSL)
62180
DeclareAddress(ssl_sess_cert_free);
63181
DeclareAddress(ssleay_rand_add);
64182

183+
DeclareAddress(ERR_clear_error);
184+
DeclareAddress(ERR_error_string_n);
185+
DeclareAddress(ERR_get_state);
186+
DeclareAddress(ERR_print_errors_cb);
187+
DeclareAddress(ERR_put_error);
188+
DeclareAddress(ERR_set_error_data);
189+
65190
DeclareAddress(OPENSSL_add_all_algorithms_noconf);
66191
DeclareAddress(OpenSSL_add_all_ciphers);
67192
DeclareAddress(OpenSSL_add_all_digests);

0 commit comments

Comments
 (0)