Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit 7fe2fdf

Browse files
author
Ian Macphail
committed
[[ Android ]] Fix crash on 32-bit Android devices when initializing OpenSSL
This patch fixes a crash on 32-bit Android devices when calling the function OPENSSL_init_ssl, due to the change of signature from versions 1.1.0g to 1.1.1g (int param changed to uint64_t param)
1 parent a33214f commit 7fe2fdf

File tree

2 files changed

+207
-172
lines changed

2 files changed

+207
-172
lines changed

libopenssl/ssl.stubs

Lines changed: 104 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
crypto ./revsecurity ./revsecurity ./revsecurity
2+
# OpenSSL 1.1.1g
3+
4+
# <openssl/conf.h>
25
OPENSSL_config: (pointer) -> ()
3-
OPENSSL_init_crypto: (integer, pointer) -> (integer)
46

7+
# <openssl/crypto.h>
8+
OPENSSL_init_crypto: (integer64, pointer) -> (integer)
9+
10+
CRYPTO_malloc: (integer) -> (pointer)
11+
CRYPTO_free: (pointer) -> ()
12+
13+
# <openssl/evp.h>
514
EVP_CipherInit: (pointer, pointer, pointer, pointer, integer) -> (integer)
615
EVP_CipherUpdate: (pointer, pointer, pointer, pointer, integer) -> (integer)
716
EVP_CipherFinal: (pointer, pointer, pointer) -> (integer)
@@ -12,6 +21,33 @@ crypto ./revsecurity ./revsecurity ./revsecurity
1221
EVP_PKEY_free: (pointer) -> ()
1322
EVP_PKEY_get1_RSA: (pointer) -> (pointer)
1423

24+
EVP_rc4: () -> (pointer)
25+
EVP_sha1: () -> (pointer)
26+
EVP_add_digest: (pointer) -> (integer)
27+
EVP_DigestInit: (pointer, pointer) -> (integer)
28+
EVP_DigestUpdate: (pointer, pointer, integer) -> (integer)
29+
EVP_DigestFinal: (pointer, pointer, pointer) -> (integer)
30+
EVP_DecryptInit: (pointer, pointer, pointer, pointer) -> (integer)
31+
EVP_DecryptUpdate: (pointer, pointer, pointer, pointer, integer) -> (integer)
32+
EVP_DecryptFinal: (pointer, pointer, pointer) -> (integer)
33+
34+
EVP_PKEY_new: () -> (pointer)
35+
EVP_PKEY_assign: (pointer, integer, pointer) -> (pointer)
36+
37+
EVP_CIPHER_key_length: (pointer) -> (integer)
38+
EVP_CIPHER_CTX_new: () -> (pointer)
39+
EVP_CIPHER_CTX_free: (pointer) -> ()
40+
EVP_CIPHER_CTX_key_length: (pointer) -> (integer)
41+
EVP_CIPHER_CTX_block_size: (pointer) -> (integer)
42+
EVP_CIPHER_CTX_reset: (pointer) -> ()
43+
44+
EVP_MD_CTX_new: () -> (pointer)
45+
EVP_MD_CTX_free: (pointer) -> ()
46+
47+
BIO_f_md: () -> (pointer)
48+
BIO_f_base64: () -> (pointer)
49+
50+
# <openssl/error.h>
1551
ERR_error_string: (integer, pointer) -> (pointer)
1652
ERR_error_string_n: (integer, pointer, integer) -> ()
1753
ERR_get_error: () -> (integer)
@@ -20,18 +56,14 @@ crypto ./revsecurity ./revsecurity ./revsecurity
2056
ERR_reason_error_string: (integer) -> (pointer)
2157
ERR_remove_state: (integer) -> ()
2258

59+
# <openssl/rand.h>
2360
RAND_seed: (pointer, integer) -> ()
2461
RAND_bytes: (pointer, integer) -> (integer)
2562

26-
X509_CRL_free: (pointer) -> ()
63+
# <openssl/x509.h>
2764
X509_EXTENSION_get_object: (pointer) -> (pointer)
2865
X509_NAME_oneline: (pointer, pointer, integer) -> (pointer)
2966
X509_NAME_get_text_by_NID: (pointer, integer, pointer, integer) -> (integer)
30-
X509_STORE_add_cert: (pointer, pointer) -> (integer)
31-
X509_STORE_add_crl: (pointer, pointer) -> (integer)
32-
X509_STORE_CTX_get_error: (pointer) -> (integer)
33-
X509_STORE_CTX_get_error_depth: (pointer) -> (integer)
34-
X509_STORE_CTX_get_current_cert: (pointer) -> (pointer)
3567
X509_verify_cert_error_string: (integer) -> (pointer)
3668
X509_get_issuer_name: (pointer) -> (pointer)
3769
X509_get_subject_name: (pointer) -> (pointer)
@@ -40,18 +72,37 @@ crypto ./revsecurity ./revsecurity ./revsecurity
4072
X509_get_pubkey: (pointer) -> (pointer)
4173
X509_get_ext: (pointer, integer) -> (pointer)
4274
X509_check_private_key: (pointer, pointer) -> (integer)
75+
4376
X509_free: (pointer) -> ()
44-
77+
X509_CRL_free: (pointer) -> ()
78+
d2i_X509: (pointer, pointer, integer) -> (pointer)
79+
i2d_X509: (pointer, pointer) -> (integer)
80+
d2i_X509_bio: (pointer, pointer) -> (pointer)
81+
d2i_X509_CRL: (pointer, pointer, integer) -> (pointer)
82+
d2i_PUBKEY_bio: (pointer, pointer) -> (pointer)
83+
d2i_PrivateKey_bio: (pointer, pointer) -> (pointer)
84+
85+
# <openssl/x509_vfy.h>
86+
X509_STORE_add_cert: (pointer, pointer) -> (integer)
87+
X509_STORE_add_crl: (pointer, pointer) -> (integer)
88+
X509_STORE_CTX_get_error: (pointer) -> (integer)
89+
X509_STORE_CTX_get_error_depth: (pointer) -> (integer)
90+
X509_STORE_CTX_get_current_cert: (pointer) -> (pointer)
4591
X509_STORE_load_locations: (pointer, pointer, pointer) -> (integer)
4692
X509_STORE_set_flags: (pointer, integer) -> (integer)
4793

94+
# <openssl/x509v3.h>
4895
X509V3_EXT_get: (pointer) -> (pointer)
4996

97+
GENERAL_NAMES_free: (pointer) -> ()
98+
99+
# <openssl/pem.h>
50100
PEM_read_bio_X509_AUX: (pointer, pointer, pointer, pointer) -> (pointer)
51101
PEM_read_bio_PUBKEY: (pointer, pointer, pointer, pointer) -> (pointer)
52102
PEM_read_bio_RSAPublicKey: (pointer, pointer, pointer, pointer) -> (pointer)
53103
PEM_read_bio_PrivateKey: (pointer, pointer, pointer, pointer) -> (pointer)
54104

105+
# <openssl/objects.h>
55106
OBJ_obj2nid: (pointer) -> (integer)
56107
OBJ_nid2sn: (pointer) -> (integer)
57108
OBJ_nid2obj: (integer) -> (pointer)
@@ -60,48 +111,45 @@ crypto ./revsecurity ./revsecurity ./revsecurity
60111
OBJ_create: (pointer, pointer, pointer) -> (integer)
61112
? OBJ_NAME_do_all_sorted: (integer, pointer, pointer) -> ()
62113

114+
# <openssl/rsa.h>
115+
RSA_new: () -> (pointer)
63116
RSA_free: (pointer) -> ()
64117
RSA_private_decrypt: (integer, pointer, pointer, pointer, integer) -> (integer)
65118
RSA_public_encrypt: (integer, pointer, pointer, pointer, integer) -> (integer)
66119
RSA_private_encrypt: (integer, pointer, pointer, pointer, integer) -> (integer)
67120
RSA_public_decrypt: (integer, pointer, pointer, pointer, integer) -> (integer)
68121
RSA_size: (pointer) -> (integer)
69122

70-
d2i_X509: (pointer, pointer, integer) -> (pointer)
71-
d2i_X509_bio: (pointer, pointer) -> (pointer)
72-
73-
d2i_X509_CRL: (pointer, pointer, integer) -> (pointer)
74-
75-
d2i_PUBKEY_bio: (pointer, pointer) -> (pointer)
76-
77-
d2i_PrivateKey_bio: (pointer, pointer) -> (pointer)
78-
79-
i2d_PKCS7: (pointer, pointer) -> (integer)
80-
d2i_PKCS7: (pointer, pointer, integer) -> (pointer)
81-
d2i_PKCS7_bio: (pointer, pointer) -> (pointer)
82-
83-
i2d_PKCS7_SIGNER_INFO: (pointer, pointer) -> (integer)
123+
RSA_set0_crt_params: (pointer, pointer, pointer, pointer) -> (integer)
124+
RSA_set0_factors: (pointer, pointer, pointer) -> (integer)
125+
RSA_set0_key: (pointer, pointer, pointer, pointer) -> (integer)
84126

85-
i2d_X509: (pointer, pointer) -> (integer)
86-
127+
# <openssl/pkcs7.h>
87128
PKCS7_dataInit: (pointer, pointer) -> (pointer)
88129
PKCS7_dataFinal: (pointer, pointer) -> (integer)
89-
PKCS7_new: () -> (pointer)
90130
PKCS7_content_new: (pointer, integer) -> (integer)
91131
PKCS7_add_certificate: (pointer, pointer) -> (integer)
92132
PKCS7_add_attribute: (pointer, integer, integer, pointer) -> (integer)
93133
PKCS7_add_signed_attribute: (pointer, integer, integer, pointer) -> (integer)
94134
PKCS7_add_signature: (pointer, pointer, pointer, pointer) -> (pointer)
95135
PKCS7_set_type: (pointer, integer) -> (pointer)
136+
137+
PKCS7_new: () -> (pointer)
96138
PKCS7_free: (pointer) -> ()
139+
i2d_PKCS7: (pointer, pointer) -> (integer)
140+
d2i_PKCS7: (pointer, pointer, integer) -> (pointer)
141+
d2i_PKCS7_bio: (pointer, pointer) -> (pointer)
142+
i2d_PKCS7_SIGNER_INFO: (pointer, pointer) -> (integer)
97143

144+
# <openssl/stack.h>
98145
OPENSSL_sk_num: (pointer) -> (integer)
99146
OPENSSL_sk_value: (pointer, integer) -> (pointer)
100147
OPENSSL_sk_new: (pointer) -> (pointer)
101148
OPENSSL_sk_free: (pointer) -> ()
102149
OPENSSL_sk_push: (pointer, pointer) -> (integer)
103150
OPENSSL_sk_pop: (pointer) -> (pointer)
104151

152+
# <openssl/bio.h>
105153
BIO_new_file: (pointer, pointer) -> (pointer)
106154
BIO_read: (pointer, pointer, integer) -> (integer)
107155
BIO_write: (pointer, pointer, integer) -> (integer)
@@ -111,13 +159,9 @@ crypto ./revsecurity ./revsecurity ./revsecurity
111159
BIO_free: (pointer) -> (integer)
112160
BIO_new_mem_buf: (pointer, integer) -> (pointer)
113161
BIO_ctrl: (pointer, integer, integer, pointer) -> (integer)
114-
BIO_f_md: () -> (pointer)
115-
BIO_f_base64: () -> (pointer)
116162
BIO_free_all: (pointer) -> (integer)
117-
118-
CRYPTO_malloc: (integer) -> (pointer)
119-
CRYPTO_free: (pointer) -> ()
120-
163+
164+
# <openssl/ans1.h>
121165
ASN1_item_d2i: (pointer, pointer, integer, pointer) -> (pointer)
122166
ASN1_item_i2d: (pointer, pointer, pointer) -> (integer)
123167
ASN1_item_new: (pointer) -> (pointer)
@@ -150,45 +194,18 @@ crypto ./revsecurity ./revsecurity ./revsecurity
150194
ASN1_OBJECT_it: () -> (pointer)
151195
ASN1_NULL_it: () -> (pointer)
152196

197+
# <openssl/bn.h>
153198
BN_new: () -> (pointer)
154199
BN_free: (pointer) -> ()
155200
BN_set_word: (pointer, integer) -> (integer)
156201
BN_bin2bn: (pointer, integer, pointer) -> (pointer)
157202

203+
# <openssl/dh.h>
158204
DH_free: (pointer) -> ()
159205
DH_new: () -> (pointer)
160206
DH_set0_pqg: (pointer, pointer, pointer, pointer) -> (integer)
161207

162-
EVP_rc4: () -> (pointer)
163-
EVP_sha1: () -> (pointer)
164-
EVP_add_digest: (pointer) -> (integer)
165-
EVP_DigestInit: (pointer, pointer) -> (integer)
166-
EVP_DigestUpdate: (pointer, pointer, integer) -> (integer)
167-
EVP_DigestFinal: (pointer, pointer, pointer) -> (integer)
168-
EVP_DecryptInit: (pointer, pointer, pointer, pointer) -> (integer)
169-
EVP_DecryptUpdate: (pointer, pointer, pointer, pointer, integer) -> (integer)
170-
EVP_DecryptFinal: (pointer, pointer, pointer) -> (integer)
171-
172-
EVP_PKEY_new: () -> (pointer)
173-
EVP_PKEY_assign: (pointer, integer, pointer) -> (pointer)
174-
175-
EVP_CIPHER_key_length: (pointer) -> (integer)
176-
EVP_CIPHER_CTX_new: () -> (pointer)
177-
EVP_CIPHER_CTX_free: (pointer) -> ()
178-
EVP_CIPHER_CTX_key_length: (pointer) -> (integer)
179-
EVP_CIPHER_CTX_block_size: (pointer) -> (integer)
180-
EVP_CIPHER_CTX_reset: (pointer) -> ()
181-
182-
EVP_MD_CTX_new: () -> (pointer)
183-
EVP_MD_CTX_free: (pointer) -> ()
184-
185-
RSA_new: () -> (pointer)
186-
RSA_set0_crt_params: (pointer, pointer, pointer, pointer) -> (integer)
187-
RSA_set0_factors: (pointer, pointer, pointer) -> (integer)
188-
RSA_set0_key: (pointer, pointer, pointer, pointer) -> (integer)
189-
190-
GENERAL_NAMES_free: (pointer) -> ()
191-
208+
# <openssl/engine.h>
192209
ENGINE_by_id: (pointer) -> (pointer)
193210
ENGINE_finish: (pointer) -> (integer)
194211
ENGINE_free: (pointer) -> (integer)
@@ -197,7 +214,8 @@ crypto ./revsecurity ./revsecurity ./revsecurity
197214

198215
ssl ./revsecurity ./revsecurity ./revsecurity
199216

200-
OPENSSL_init_ssl: (integer, pointer) -> (integer)
217+
# <openssl/ssl.h>
218+
OPENSSL_init_ssl: (integer64, pointer) -> (integer)
201219

202220
SSL_new: (pointer) -> (pointer)
203221
SSL_free: (pointer) -> ()
@@ -213,42 +231,42 @@ ssl ./revsecurity ./revsecurity ./revsecurity
213231
SSL_set_accept_state: (pointer) -> ()
214232
SSL_get_peer_certificate: (pointer) -> (pointer)
215233
SSL_get_verify_result: (pointer) -> (integer)
216-
217234
SSL_get_peer_cert_chain: (pointer) -> (pointer)
218-
219-
SSL_CTX_set_default_verify_paths: (pointer) -> (integer)
220-
SSL_CTX_load_verify_locations: (pointer, pointer, pointer) -> (integer)
221-
SSL_CTX_set_verify: (pointer, integer, pointer) -> ()
222-
SSL_CTX_set_verify_depth: (pointer, integer) -> ()
223-
SSL_CTX_new: (pointer) -> (pointer)
224-
SSL_CTX_free: (pointer) -> ()
225-
SSL_CTX_get_cert_store: (pointer) -> (pointer)
226-
227-
TLS_method: () -> (pointer)
228-
229-
TLSv1_client_method: () -> (pointer)
230-
TLSv1_server_method: () -> (pointer)
231-
SSL_CIPHER_get_name: (pointer) -> (pointer)
232-
SSL_CTX_check_private_key: (pointer) -> (integer)
233-
SSL_CTX_ctrl: (pointer, integer, integer, pointer) -> (integer)
234-
SSL_CTX_set_cipher_list: (pointer, pointer) -> (integer)
235-
SSL_CTX_set_session_id_context: (pointer, pointer, integer) -> (integer)
236-
SSL_CTX_use_certificate_file: (pointer, pointer, integer) -> (integer)
237-
SSL_CTX_use_PrivateKey_file: (pointer, pointer, integer) -> (integer)
238-
SSL_SESSION_set_timeout: (pointer, integer) -> (integer)
239235
SSL_get_current_cipher: (pointer) -> (pointer)
240236
SSL_get_fd: (pointer) -> (integer)
241237
SSL_get_session: (pointer) -> (pointer)
242238
SSL_get_shared_ciphers: (pointer, pointer, integer) -> (pointer)
243239
SSL_pending: (pointer) -> (integer)
244240
SSL_set_quiet_shutdown: (pointer, integer) -> ()
245-
SSL_CTX_set_options: (pointer, integer) -> (integer)
246241
SSL_set_options: (pointer, integer) -> (integer)
247-
SSL_CTX_use_certificate_chain_file: (pointer, pointer) -> (integer)
248242
SSL_check_private_key: (pointer) -> (integer)
249243
SSL_ctrl: (pointer, integer, integer, pointer) -> (integer)
250244
SSL_set_ex_data: (pointer, integer, pointer) -> (integer)
251245
SSL_set_verify: (pointer, integer, pointer) -> ()
252246
SSL_use_PrivateKey: (pointer, pointer) -> (integer)
253247
SSL_use_PrivateKey_file: (pointer, pointer, integer) -> (integer)
254248
SSL_use_certificate_file: (pointer, pointer, integer) -> (integer)
249+
250+
SSL_CTX_new: (pointer) -> (pointer)
251+
SSL_CTX_free: (pointer) -> ()
252+
SSL_CTX_set_default_verify_paths: (pointer) -> (integer)
253+
SSL_CTX_load_verify_locations: (pointer, pointer, pointer) -> (integer)
254+
SSL_CTX_set_verify: (pointer, integer, pointer) -> ()
255+
SSL_CTX_set_verify_depth: (pointer, integer) -> ()
256+
SSL_CTX_get_cert_store: (pointer) -> (pointer)
257+
SSL_CTX_check_private_key: (pointer) -> (integer)
258+
SSL_CTX_ctrl: (pointer, integer, integer, pointer) -> (integer)
259+
SSL_CTX_set_cipher_list: (pointer, pointer) -> (integer)
260+
SSL_CTX_set_session_id_context: (pointer, pointer, integer) -> (integer)
261+
SSL_CTX_set_options: (pointer, integer) -> (integer)
262+
SSL_CTX_use_certificate_file: (pointer, pointer, integer) -> (integer)
263+
SSL_CTX_use_PrivateKey_file: (pointer, pointer, integer) -> (integer)
264+
SSL_CTX_use_certificate_chain_file: (pointer, pointer) -> (integer)
265+
266+
SSL_CIPHER_get_name: (pointer) -> (pointer)
267+
SSL_SESSION_set_timeout: (pointer, integer) -> (integer)
268+
269+
TLS_method: () -> (pointer)
270+
271+
TLSv1_client_method: () -> (pointer)
272+
TLSv1_server_method: () -> (pointer)

0 commit comments

Comments
 (0)