1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "cf_mock.h"
17 #include "cf_log.h"
18
19 using namespace std;
20 using namespace testing::ext;
21
22 using namespace CFMock;
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 int __real_OPENSSL_sk_num(const OPENSSL_STACK *st);
29 void *__real_OPENSSL_sk_value(const OPENSSL_STACK *st, int i);
30 BIO *__real_BIO_new_mem_buf(const void *buf, int len);
31 CfResult __real_HcfX509CertificateCreate(const CfEncodingBlob *inStream, HcfX509Certificate **returnObj);
32 OPENSSL_STACK *__real_OPENSSL_sk_new_null(void);
33 int __real_i2d_X509(X509 *a, unsigned char **out);
34 int __real_X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
35 X509_STORE_CTX *__real_X509_STORE_CTX_new(void);
36 X509_STORE *__real_X509_STORE_new(void);
37 int __real_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) * chain);
38 int __real_X509_verify_cert(X509_STORE_CTX *ctx);
39 int __real_i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp);
40 void *__real_X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx);
41 int __real_i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out);
42 int __real_i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out);
43 CfResult __real_DeepCopyDataToBlob(const unsigned char *data, uint32_t len, CfBlob *outBlob);
44 ASN1_TIME *__real_ASN1_TIME_new(void);
45 EVP_PKEY *__real_X509_get_pubkey(X509 *x);
46 ASN1_OBJECT *__real_OBJ_nid2obj(int n);
47 int __real_OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);
48 BIGNUM *__real_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
49 const ASN1_INTEGER *__real_X509_get0_serialNumber(const X509 *x);
50 int __real_i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out);
51 int __real_ASN1_TIME_normalize(ASN1_TIME *s);
52 ASN1_TIME *__real_X509_getm_notBefore(const X509 *x);
53 ASN1_TIME *__real_X509_getm_notAfter(const X509 *x);
54 void __real_X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, const void **ppval, const X509_ALGOR *algor);
55 ASN1_TYPE *__real_ASN1_TYPE_new(void);
56 int __real_ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value);
57 int __real_i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out);
58 long __real_ASN1_INTEGER_get(const ASN1_INTEGER *a);
59 const unsigned char *__real_ASN1_STRING_get0_data(const ASN1_STRING *x);
60 int __real_i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out);
61 X509_EXTENSION *__real_X509_get_ext(const X509 *x, X509_EXTENSION *loc);
62 void *__real_X509V3_EXT_d2i(X509_EXTENSION *ext);
63 void *__real_GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
64 int __real_X509_verify(X509 *a, EVP_PKEY *r);
65 CfResult __real_DeepCopyBlobToBlob(const CfBlob *inBlob, CfBlob **outBlob);
66 char *__real_X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
67 int __real_OPENSSL_sk_push(OPENSSL_STACK *st, const int data);
68 int __real_i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out);
69 int __real_i2d_X509_CRL(X509_CRL *a, unsigned char **out);
70 OPENSSL_STACK *__real_OPENSSL_sk_deep_copy(const OPENSSL_STACK *, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f);
71 int __real_OBJ_obj2nid(const ASN1_OBJECT *o);
72 X509 *__real_X509_dup(X509 *x509);
73 int __real_i2d_X509_EXTENSIONS(X509_EXTENSIONS *a, unsigned char **out);
74 int __real_X509_check_host(X509 *x, const char *chk, size_t chklen, unsigned int flags, char **peername);
75 OCSP_REQUEST *__real_OCSP_REQUEST_new(void);
76 X509_CRL *__real_X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout);
77 struct stack_st_OPENSSL_STRING *__real_X509_get1_ocsp(X509 *x);
78 int __real_OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost, char **pport, int *pport_num,
79 char **ppath, char **pquery, char **pfrag);
80 int __real_X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen);
81 const char *__real_OBJ_nid2sn(int n);
82 int __real_ASN1_STRING_length(const ASN1_STRING *x);
83 CfResult __real_DeepCopyDataToOut(const char *data, uint32_t len, CfBlob *out);
84 char *__real_CRYPTO_strdup(const char *str, const char *file, int line);
85 X509_NAME *__real_X509_NAME_new(void);
86 int __real_OBJ_txt2nid(const char *s);
87 int __real_X509_NAME_add_entry_by_NID(
88 X509_NAME *name, int nid, int type, const unsigned char *bytes, int len, int loc, int set);
89 BIO *__real_BIO_new(const BIO_METHOD *type);
90 int __real_X509_print(BIO *bp, X509 *x);
91 long __real_BIO_ctrl(BIO *bp, int cmd, long larg, void *parg);
92 int __real_i2d_X509_bio(BIO *bp, X509 *x509);
93 int __real_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca);
94 bool __real_CheckIsSelfSigned(const X509 *cert);
95 #ifdef __cplusplus
96 }
97 #endif
98
99 static bool g_mockTagX509Openssl = false;
100
101 static bool g_mockTagX509HcfCert = false;
102
GetInstance(void)103 NiceMock<X509OpensslMock> &X509OpensslMock::GetInstance(void)
104 {
105 static NiceMock<X509OpensslMock> gX509OpensslMock;
106 return gX509OpensslMock;
107 }
108
SetMockFunDefaultBehaviorPartOne(void)109 void X509OpensslMock::SetMockFunDefaultBehaviorPartOne(void)
110 {
111 ON_CALL(*this, X509_dup).WillByDefault([this](X509 *x509) { return __real_X509_dup(x509); });
112
113 ON_CALL(*this, i2d_X509_EXTENSIONS).WillByDefault([this](X509_EXTENSIONS *a, unsigned char **out) {
114 return __real_i2d_X509_EXTENSIONS(a, out);
115 });
116
117 ON_CALL(*this, OBJ_obj2nid).WillByDefault([this](const ASN1_OBJECT *o) { return __real_OBJ_obj2nid(o); });
118
119 ON_CALL(*this, OPENSSL_sk_deep_copy)
120 .WillByDefault([this](const OPENSSL_STACK *st, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f) {
121 return __real_OPENSSL_sk_deep_copy(st, c, f);
122 });
123
124 ON_CALL(*this, i2d_X509_CRL).WillByDefault([this](X509_CRL *a, unsigned char **out) {
125 return __real_i2d_X509_CRL(a, out);
126 });
127
128 ON_CALL(*this, i2d_X509_REVOKED).WillByDefault([this](X509_REVOKED *a, unsigned char **out) {
129 return __real_i2d_X509_REVOKED(a, out);
130 });
131
132 ON_CALL(*this, OPENSSL_sk_push).WillByDefault([this](OPENSSL_STACK *st, const int data) {
133 return __real_OPENSSL_sk_push(st, data);
134 });
135
136 ON_CALL(*this, X509_NAME_oneline).WillByDefault([this](const X509_NAME *a, char *buf, int size) {
137 return __real_X509_NAME_oneline(a, buf, size);
138 });
139
140 ON_CALL(*this, DeepCopyBlobToBlob).WillByDefault([this](const CfBlob *inBlob, CfBlob **outBlob) {
141 return __real_DeepCopyBlobToBlob(inBlob, outBlob);
142 });
143
144 ON_CALL(*this, X509_verify).WillByDefault([this](X509 *a, EVP_PKEY *r) { return __real_X509_verify(a, r); });
145
146 ON_CALL(*this, GENERAL_NAME_get0_value).WillByDefault([this](const GENERAL_NAME *a, int *ptype) {
147 return __real_GENERAL_NAME_get0_value(a, ptype);
148 });
149
150 ON_CALL(*this, X509V3_EXT_d2i).WillByDefault([this](X509_EXTENSION *ext) { return __real_X509V3_EXT_d2i(ext); });
151
152 ON_CALL(*this, X509_get_ext).WillByDefault([this](const X509 *x, X509_EXTENSION *loc) {
153 return __real_X509_get_ext(x, loc);
154 });
155
156 ON_CALL(*this, i2d_GENERAL_NAME).WillByDefault([this](GENERAL_NAME *a, unsigned char **out) {
157 return __real_i2d_GENERAL_NAME(a, out);
158 });
159
160 ON_CALL(*this, ASN1_STRING_get0_data).WillByDefault([this](const ASN1_STRING *x) {
161 return __real_ASN1_STRING_get0_data(x);
162 });
163
164 ON_CALL(*this, ASN1_INTEGER_get).WillByDefault([this](const ASN1_INTEGER *a) {
165 return __real_ASN1_INTEGER_get(a);
166 });
167 }
168
SetMockFunDefaultBehaviorPartTwo(void)169 void X509OpensslMock::SetMockFunDefaultBehaviorPartTwo(void)
170 {
171 ON_CALL(*this, i2d_ASN1_TYPE).WillByDefault([this](ASN1_TYPE *a, unsigned char **out) {
172 return __real_i2d_ASN1_TYPE(a, out);
173 });
174
175 ON_CALL(*this, ASN1_TYPE_set1).WillByDefault([this](ASN1_TYPE *a, int type, const void *value) {
176 return __real_ASN1_TYPE_set1(a, type, value);
177 });
178
179 ON_CALL(*this, ASN1_TYPE_new).WillByDefault([this](void) { return __real_ASN1_TYPE_new(); });
180 ON_CALL(*this, ASN1_TIME_normalize).WillByDefault([this](ASN1_TIME *s) { return __real_ASN1_TIME_normalize(s); });
181 ON_CALL(*this, X509_getm_notBefore).WillByDefault([this](const X509 *x) { return __real_X509_getm_notBefore(x); });
182 ON_CALL(*this, X509_getm_notAfter).WillByDefault([this](const X509 *x) { return __real_X509_getm_notAfter(x); });
183 ON_CALL(*this, X509_ALGOR_get0)
184 .WillByDefault([this](const ASN1_OBJECT **paobj, int *pptype, const void **ppval, const X509_ALGOR *algor) {
185 return __real_X509_ALGOR_get0(paobj, pptype, ppval, algor);
186 });
187
188 ON_CALL(*this, OPENSSL_sk_num).WillByDefault([this](const OPENSSL_STACK *st) { return __real_OPENSSL_sk_num(st); });
189
190 ON_CALL(*this, BIO_new_mem_buf).WillByDefault([this](const void *buf, int len) {
191 return __real_BIO_new_mem_buf(buf, len);
192 });
193
194 ON_CALL(*this, i2d_X509).WillByDefault([this](X509 *a, unsigned char **out) { return __real_i2d_X509(a, out); });
195
196 ON_CALL(*this, X509_verify_cert).WillByDefault([this](X509_STORE_CTX *ctx) {
197 return __real_X509_verify_cert(ctx);
198 });
199
200 ON_CALL(*this, HcfX509CertificateCreate)
201 .WillByDefault([this](const CfEncodingBlob *inStream, HcfX509Certificate **returnObj) {
202 return __real_HcfX509CertificateCreate(inStream, returnObj);
203 });
204
205 ON_CALL(*this, OPENSSL_sk_new_null).WillByDefault([this](void) { return __real_OPENSSL_sk_new_null(); });
206
207 ON_CALL(*this, X509_STORE_CTX_new).WillByDefault([this](void) { return __real_X509_STORE_CTX_new(); });
208
209 ON_CALL(*this, X509_STORE_new).WillByDefault([this](void) { return __real_X509_STORE_new(); });
210
211 ON_CALL(*this, X509_STORE_CTX_init)
212 .WillByDefault([this](X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) * chain) {
213 return __real_X509_STORE_CTX_init(ctx, store, x509, chain);
214 });
215
216 ON_CALL(*this, X509_STORE_add_cert).WillByDefault([this](X509_STORE *ctx, X509 *x) {
217 return __real_X509_STORE_add_cert(ctx, x);
218 });
219
220 ON_CALL(*this, OPENSSL_sk_value).WillByDefault([this](const OPENSSL_STACK *st, int i) {
221 return __real_OPENSSL_sk_value(st, i);
222 });
223
224 ON_CALL(*this, i2d_PUBKEY).WillByDefault([this](EVP_PKEY *a, unsigned char **pp) {
225 return __real_i2d_PUBKEY(a, pp);
226 });
227 }
228
SetMockFunDefaultBehaviorPartThree(void)229 void X509OpensslMock::SetMockFunDefaultBehaviorPartThree(void)
230 {
231 ON_CALL(*this, X509_get_ext_d2i).WillByDefault([this](const X509 *x, int nid, int *crit, int *idx) {
232 return __real_X509_get_ext_d2i(x, nid, crit, idx);
233 });
234
235 ON_CALL(*this, i2d_ASN1_OCTET_STRING).WillByDefault([this](ASN1_OCTET_STRING *a, unsigned char **out) {
236 return __real_i2d_ASN1_OCTET_STRING(a, out);
237 });
238
239 ON_CALL(*this, i2d_AUTHORITY_KEYID).WillByDefault([this](AUTHORITY_KEYID *a, unsigned char **out) {
240 return __real_i2d_AUTHORITY_KEYID(a, out);
241 });
242
243 ON_CALL(*this, DeepCopyDataToBlob).WillByDefault([this](const unsigned char *data, uint32_t len, CfBlob *outBlob) {
244 return __real_DeepCopyDataToBlob(data, len, outBlob);
245 });
246
247 ON_CALL(*this, ASN1_TIME_new).WillByDefault([this](void) { return __real_ASN1_TIME_new(); });
248
249 ON_CALL(*this, X509_get_pubkey).WillByDefault([this](X509 *x) { return __real_X509_get_pubkey(x); });
250
251 ON_CALL(*this, OBJ_nid2obj).WillByDefault([this](int n) { return __real_OBJ_nid2obj(n); });
252
253 ON_CALL(*this, OBJ_obj2txt).WillByDefault([this](char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) {
254 return __real_OBJ_obj2txt(buf, buf_len, a, no_name);
255 });
256
257 ON_CALL(*this, BN_bin2bn).WillByDefault([this](const unsigned char *s, int len, BIGNUM *ret) {
258 return __real_BN_bin2bn(s, len, ret);
259 });
260
261 ON_CALL(*this, X509_get0_serialNumber).WillByDefault([this](const X509 *x) {
262 return __real_X509_get0_serialNumber(x);
263 });
264
265 ON_CALL(*this, i2d_ASN1_INTEGER).WillByDefault([this](ASN1_INTEGER *a, unsigned char **out) {
266 return __real_i2d_ASN1_INTEGER(a, out);
267 });
268
269 ON_CALL(*this, X509_check_host)
270 .WillByDefault([this](X509 *x, const char *chk, size_t chklen, unsigned int flags, char **peername) {
271 return __real_X509_check_host(x, chk, chklen, flags, peername);
272 });
273
274 ON_CALL(*this, OCSP_REQUEST_new).WillByDefault([this](void) { return __real_OCSP_REQUEST_new(); });
275
276 ON_CALL(*this, X509_CRL_load_http).WillByDefault([this](const char *url, BIO *bio, BIO *rbio, int timeout) {
277 return __real_X509_CRL_load_http(url, bio, rbio, timeout);
278 });
279
280 ON_CALL(*this, X509_get1_ocsp).WillByDefault([this](X509 *x) { return __real_X509_get1_ocsp(x); });
281 }
282
SetMockFunDefaultBehaviorPartFour(void)283 void X509OpensslMock::SetMockFunDefaultBehaviorPartFour(void)
284 {
285 ON_CALL(*this, OSSL_HTTP_parse_url)
286 .WillByDefault([this](const char *url, int *pssl, char **puser, char **phost, char **pport, int *pport_num,
287 char **ppath, char **pquery, char **pfrag) {
288 return __real_OSSL_HTTP_parse_url(url, pssl, puser, phost, pport, pport_num, ppath, pquery, pfrag);
289 });
290 ON_CALL(*this, X509_NAME_get0_der)
291 .WillByDefault([this](X509_NAME *nm, const unsigned char **pder, size_t *pderlen) {
292 return __real_X509_NAME_get0_der(nm, pder, pderlen);
293 });
294
295 ON_CALL(*this, OBJ_nid2sn).WillByDefault([this](int n) { return __real_OBJ_nid2sn(n); });
296
297 ON_CALL(*this, ASN1_STRING_length).WillByDefault([this](const ASN1_STRING *x) {
298 return __real_ASN1_STRING_length(x);
299 });
300
301 ON_CALL(*this, DeepCopyDataToOut).WillByDefault([this](const char *data, uint32_t len, CfBlob *out) {
302 return __real_DeepCopyDataToOut(data, len, out);
303 });
304
305 ON_CALL(*this, CRYPTO_strdup).WillByDefault([this](const char *str, const char *file, int line) {
306 return __real_CRYPTO_strdup(str, file, line);
307 });
308
309 ON_CALL(*this, X509_NAME_new).WillByDefault([this](void) { return __real_X509_NAME_new(); });
310
311 ON_CALL(*this, OBJ_txt2nid).WillByDefault([this](const char *s) { return __real_OBJ_txt2nid(s); });
312
313 ON_CALL(*this, X509_NAME_add_entry_by_NID)
314 .WillByDefault(
315 [this](X509_NAME *name, int nid, int type, const unsigned char *bytes, int len, int loc, int set) {
316 return __real_X509_NAME_add_entry_by_NID(name, nid, type, bytes, len, loc, set);
317 });
318
319 ON_CALL(*this, BIO_new).WillByDefault([this](const BIO_METHOD *type) { return __real_BIO_new(type); });
320
321 ON_CALL(*this, X509_print).WillByDefault([this](BIO *bp, X509 *x) { return __real_X509_print(bp, x); });
322
323 ON_CALL(*this, BIO_ctrl).WillByDefault([this](BIO *bp, int cmd, long larg, void *parg) {
324 return __real_BIO_ctrl(bp, cmd, larg, parg);
325 });
326
327 ON_CALL(*this, i2d_X509_bio).WillByDefault([this](BIO *bp, X509 *x509) { return __real_i2d_X509_bio(bp, x509); });
328
329 ON_CALL(*this, PKCS12_parse)
330 .WillByDefault([this](PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca) {
331 return __real_PKCS12_parse(p12, pass, pkey, cert, ca);
332 });
333
334 ON_CALL(*this, CheckIsSelfSigned).WillByDefault([this](const X509 *cert) {
335 return __real_CheckIsSelfSigned(cert);
336 });
337 }
338
X509OpensslMock()339 X509OpensslMock::X509OpensslMock()
340 {
341 SetMockFunDefaultBehaviorPartOne();
342 SetMockFunDefaultBehaviorPartTwo();
343 SetMockFunDefaultBehaviorPartThree();
344 SetMockFunDefaultBehaviorPartFour();
345 }
346
~X509OpensslMock()347 X509OpensslMock::~X509OpensslMock() {}
348
SetMockFlag(bool flag)349 void X509OpensslMock::SetMockFlag(bool flag)
350 {
351 g_mockTagX509Openssl = flag;
352 }
353
SetHcfMockFlag(bool flag)354 void X509OpensslMock::SetHcfMockFlag(bool flag)
355 {
356 g_mockTagX509HcfCert = flag;
357 }
358
GetMockFlag(void)359 bool X509OpensslMock::GetMockFlag(void)
360 {
361 return g_mockTagX509Openssl;
362 }
363
364 #ifdef __cplusplus
365 extern "C" {
366 #endif
367
__wrap_i2d_X509_EXTENSIONS(X509_EXTENSIONS * a,unsigned char ** out)368 int __wrap_i2d_X509_EXTENSIONS(X509_EXTENSIONS *a, unsigned char **out)
369 {
370 if (g_mockTagX509Openssl) {
371 CF_LOG_I("X509OpensslMock i2d_X509_EXTENSIONS");
372 return X509OpensslMock::GetInstance().i2d_X509_EXTENSIONS(a, out);
373 } else {
374 return __real_i2d_X509_EXTENSIONS(a, out);
375 }
376 }
377
__wrap_OPENSSL_sk_num(const OPENSSL_STACK * st)378 int __wrap_OPENSSL_sk_num(const OPENSSL_STACK *st)
379 {
380 if (g_mockTagX509Openssl) {
381 CF_LOG_I("X509OpensslMock OPENSSL_sk_num");
382 return X509OpensslMock::GetInstance().OPENSSL_sk_num(st);
383 } else {
384 return __real_OPENSSL_sk_num(st);
385 }
386 }
387
__wrap_X509_getm_notBefore(const X509 * x)388 ASN1_TIME *__wrap_X509_getm_notBefore(const X509 *x)
389 {
390 if (g_mockTagX509Openssl) {
391 CF_LOG_I("X509OpensslMock X509_getm_notBefore");
392 return X509OpensslMock::GetInstance().X509_getm_notBefore(x);
393 } else {
394 return __real_X509_getm_notBefore(x);
395 }
396 }
397
__wrap_X509_getm_notAfter(const X509 * x)398 ASN1_TIME *__wrap_X509_getm_notAfter(const X509 *x)
399 {
400 if (g_mockTagX509Openssl) {
401 CF_LOG_I("X509OpensslMock X509_getm_notAfter");
402 return X509OpensslMock::GetInstance().X509_getm_notAfter(x);
403 } else {
404 return __real_X509_getm_notAfter(x);
405 }
406 }
407
__wrap_X509_NAME_oneline(const X509_NAME * a,char * buf,int size)408 char *__wrap_X509_NAME_oneline(const X509_NAME *a, char *buf, int size)
409 {
410 if (g_mockTagX509Openssl) {
411 CF_LOG_I("X509OpensslMock X509_NAME_oneline");
412 return X509OpensslMock::GetInstance().X509_NAME_oneline(a, buf, size);
413 } else {
414 return __real_X509_NAME_oneline(a, buf, size);
415 }
416 }
417
__wrap_i2d_X509(X509 * a,unsigned char ** out)418 int __wrap_i2d_X509(X509 *a, unsigned char **out)
419 {
420 if (g_mockTagX509Openssl) {
421 CF_LOG_I("X509OpensslMock i2d_X509");
422 return X509OpensslMock::GetInstance().i2d_X509(a, out);
423 } else {
424 return __real_i2d_X509(a, out);
425 }
426 }
427
__wrap_BIO_new_mem_buf(const void * buf,int len)428 BIO *__wrap_BIO_new_mem_buf(const void *buf, int len)
429 {
430 if (g_mockTagX509Openssl) {
431 CF_LOG_I("X509OpensslMock BIO_new_mem_buf");
432 return X509OpensslMock::GetInstance().BIO_new_mem_buf(buf, len);
433 } else {
434 return __real_BIO_new_mem_buf(buf, len);
435 }
436 }
437
__wrap_OPENSSL_sk_value(const OPENSSL_STACK * st,int i)438 void *__wrap_OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
439 {
440 if (g_mockTagX509Openssl) {
441 CF_LOG_I("X509OpensslMock OPENSSL_sk_value");
442 return X509OpensslMock::GetInstance().OPENSSL_sk_value(st, i);
443 } else {
444 return __real_OPENSSL_sk_value(st, i);
445 }
446 }
447
__wrap_HcfX509CertificateCreate(const CfEncodingBlob * inStream,HcfX509Certificate ** returnObj)448 CfResult __wrap_HcfX509CertificateCreate(const CfEncodingBlob *inStream, HcfX509Certificate **returnObj)
449 {
450 if (g_mockTagX509Openssl) {
451 CF_LOG_I("X509OpensslMock HcfX509CertificateCreate");
452 return X509OpensslMock::GetInstance().HcfX509CertificateCreate(inStream, returnObj);
453 } else {
454 return __real_HcfX509CertificateCreate(inStream, returnObj);
455 }
456 }
457
__wrap_OPENSSL_sk_new_null(void)458 OPENSSL_STACK *__wrap_OPENSSL_sk_new_null(void)
459 {
460 if (g_mockTagX509Openssl) {
461 CF_LOG_I("X509OpensslMock OPENSSL_sk_new_null");
462 return X509OpensslMock::GetInstance().OPENSSL_sk_new_null();
463 } else {
464 return __real_OPENSSL_sk_new_null();
465 }
466 }
467
__wrap_X509_STORE_add_cert(X509_STORE * ctx,X509 * x)468 int __wrap_X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
469 {
470 if (g_mockTagX509Openssl) {
471 CF_LOG_I("X509OpensslMock X509_STORE_add_cert");
472 return X509OpensslMock::GetInstance().X509_STORE_add_cert(ctx, x);
473 } else {
474 return __real_X509_STORE_add_cert(ctx, x);
475 }
476 }
477
__wrap_X509_STORE_CTX_new(void)478 X509_STORE_CTX *__wrap_X509_STORE_CTX_new(void)
479 {
480 if (g_mockTagX509Openssl) {
481 CF_LOG_I("X509OpensslMock X509_STORE_CTX_new");
482 return X509OpensslMock::GetInstance().X509_STORE_CTX_new();
483 } else {
484 return __real_X509_STORE_CTX_new();
485 }
486 }
487
__wrap_X509_STORE_new(void)488 X509_STORE *__wrap_X509_STORE_new(void)
489 {
490 if (g_mockTagX509Openssl) {
491 CF_LOG_I("X509OpensslMock X509_STORE_new");
492 return X509OpensslMock::GetInstance().X509_STORE_new();
493 } else {
494 return __real_X509_STORE_new();
495 }
496 }
497
__wrap_X509_STORE_CTX_init(X509_STORE_CTX * ctx,X509_STORE * store,X509 * x509,STACK_OF (X509)* chain)498 int __wrap_X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) * chain)
499 {
500 if (g_mockTagX509Openssl) {
501 CF_LOG_I("X509OpensslMock X509_STORE_CTX_init");
502 return X509OpensslMock::GetInstance().X509_STORE_CTX_init(ctx, store, x509, chain);
503 } else {
504 return __real_X509_STORE_CTX_init(ctx, store, x509, chain);
505 }
506 }
507
__wrap_X509_verify_cert(X509_STORE_CTX * ctx)508 int __wrap_X509_verify_cert(X509_STORE_CTX *ctx)
509 {
510 if (g_mockTagX509Openssl) {
511 CF_LOG_I("X509OpensslMock X509_verify_cert");
512 return X509OpensslMock::GetInstance().X509_verify_cert(ctx);
513 } else {
514 return __real_X509_verify_cert(ctx);
515 }
516 }
517
__wrap_i2d_PUBKEY(EVP_PKEY * a,unsigned char ** pp)518 int __wrap_i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
519 {
520 if (g_mockTagX509Openssl) {
521 CF_LOG_I("X509OpensslMock i2d_PUBKEY");
522 return X509OpensslMock::GetInstance().i2d_PUBKEY(a, pp);
523 } else {
524 return __real_i2d_PUBKEY(a, pp);
525 }
526 }
527
__wrap_X509_get_ext_d2i(const X509 * x,int nid,int * crit,int * idx)528 void *__wrap_X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx)
529 {
530 if (g_mockTagX509Openssl) {
531 CF_LOG_I("X509OpensslMock X509_get_ext_d2i");
532 return X509OpensslMock::GetInstance().X509_get_ext_d2i(x, nid, crit, idx);
533 } else {
534 return __real_X509_get_ext_d2i(x, nid, crit, idx);
535 }
536 }
537
__wrap_i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING * a,unsigned char ** out)538 int __wrap_i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out)
539 {
540 if (g_mockTagX509Openssl) {
541 CF_LOG_I("X509OpensslMock i2d_ASN1_OCTET_STRING");
542 return X509OpensslMock::GetInstance().i2d_ASN1_OCTET_STRING(a, out);
543 } else {
544 return __real_i2d_ASN1_OCTET_STRING(a, out);
545 }
546 }
547
__wrap_i2d_AUTHORITY_KEYID(AUTHORITY_KEYID * a,unsigned char ** out)548 int __wrap_i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out)
549 {
550 if (g_mockTagX509Openssl) {
551 CF_LOG_I("X509OpensslMock i2d_AUTHORITY_KEYID");
552 return X509OpensslMock::GetInstance().i2d_AUTHORITY_KEYID(a, out);
553 } else {
554 return __real_i2d_AUTHORITY_KEYID(a, out);
555 }
556 }
557
__wrap_DeepCopyDataToBlob(const unsigned char * data,uint32_t len,CfBlob * outBlob)558 CfResult __wrap_DeepCopyDataToBlob(const unsigned char *data, uint32_t len, CfBlob *outBlob)
559 {
560 if (g_mockTagX509Openssl) {
561 CF_LOG_I("X509OpensslMock DeepCopyDataToBlob");
562 return X509OpensslMock::GetInstance().DeepCopyDataToBlob(data, len, outBlob);
563 } else {
564 return __real_DeepCopyDataToBlob(data, len, outBlob);
565 }
566 }
567
__wrap_ASN1_TIME_new(void)568 ASN1_TIME *__wrap_ASN1_TIME_new(void)
569 {
570 if (g_mockTagX509Openssl) {
571 CF_LOG_I("X509OpensslMock ASN1_TIME_new");
572 return X509OpensslMock::GetInstance().ASN1_TIME_new();
573 } else {
574 return __real_ASN1_TIME_new();
575 }
576 }
577
__wrap_X509_get0_serialNumber(const X509 * x)578 const ASN1_INTEGER *__wrap_X509_get0_serialNumber(const X509 *x)
579 {
580 if (g_mockTagX509Openssl) {
581 CF_LOG_I("X509OpensslMock X509_get0_serialNumber");
582 return X509OpensslMock::GetInstance().X509_get0_serialNumber(x);
583 } else {
584 return __real_X509_get0_serialNumber(x);
585 }
586 }
587
__wrap_i2d_ASN1_INTEGER(ASN1_INTEGER * a,unsigned char ** out)588 int __wrap_i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out)
589 {
590 if (g_mockTagX509Openssl) {
591 CF_LOG_I("X509OpensslMock i2d_ASN1_INTEGER");
592 return X509OpensslMock::GetInstance().i2d_ASN1_INTEGER(a, out);
593 } else {
594 return __real_i2d_ASN1_INTEGER(a, out);
595 }
596 }
597
__wrap_X509_get_pubkey(X509 * x)598 EVP_PKEY *__wrap_X509_get_pubkey(X509 *x)
599 {
600 if (g_mockTagX509Openssl) {
601 CF_LOG_I("X509OpensslMock X509_get_pubkey");
602 return X509OpensslMock::GetInstance().X509_get_pubkey(x);
603 } else {
604 return __real_X509_get_pubkey(x);
605 }
606 }
607
__wrap_OBJ_nid2obj(int n)608 ASN1_OBJECT *__wrap_OBJ_nid2obj(int n)
609 {
610 if (g_mockTagX509Openssl) {
611 CF_LOG_I("X509OpensslMock OBJ_nid2obj");
612 return X509OpensslMock::GetInstance().OBJ_nid2obj(n);
613 } else {
614 return __real_OBJ_nid2obj(n);
615 }
616 }
617
__wrap_OBJ_obj2txt(char * buf,int buf_len,const ASN1_OBJECT * a,int no_name)618 int __wrap_OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
619 {
620 if (g_mockTagX509Openssl) {
621 CF_LOG_I("X509OpensslMock OBJ_obj2txt");
622 return X509OpensslMock::GetInstance().OBJ_obj2txt(buf, buf_len, a, no_name);
623 } else {
624 return __real_OBJ_obj2txt(buf, buf_len, a, no_name);
625 }
626 }
627
__wrap_BN_bin2bn(const unsigned char * s,int len,BIGNUM * ret)628 BIGNUM *__wrap_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
629 {
630 if (g_mockTagX509Openssl) {
631 CF_LOG_I("X509OpensslMock BN_bin2bn");
632 return X509OpensslMock::GetInstance().BN_bin2bn(s, len, ret);
633 } else {
634 return __real_BN_bin2bn(s, len, ret);
635 }
636 }
637
__wrap_ASN1_TIME_normalize(ASN1_TIME * s)638 int __wrap_ASN1_TIME_normalize(ASN1_TIME *s)
639 {
640 if (g_mockTagX509Openssl) {
641 CF_LOG_I("X509OpensslMock ASN1_TIME_normalize");
642 return X509OpensslMock::GetInstance().ASN1_TIME_normalize(s);
643 } else {
644 return __real_ASN1_TIME_normalize(s);
645 }
646 }
647
__wrap_X509_ALGOR_get0(const ASN1_OBJECT ** paobj,int * pptype,const void ** ppval,const X509_ALGOR * algor)648 void __wrap_X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, const void **ppval, const X509_ALGOR *algor)
649 {
650 if (g_mockTagX509Openssl) {
651 CF_LOG_I("X509OpensslMock X509_ALGOR_get0");
652 return X509OpensslMock::GetInstance().X509_ALGOR_get0(paobj, pptype, ppval, algor);
653 } else {
654 return __real_X509_ALGOR_get0(paobj, pptype, ppval, algor);
655 }
656 }
657
__wrap_ASN1_TYPE_new(void)658 ASN1_TYPE *__wrap_ASN1_TYPE_new(void)
659 {
660 if (g_mockTagX509Openssl) {
661 CF_LOG_I("X509OpensslMock ASN1_TYPE_new");
662 return X509OpensslMock::GetInstance().ASN1_TYPE_new();
663 } else {
664 return __real_ASN1_TYPE_new();
665 }
666 }
667
__wrap_ASN1_TYPE_set1(ASN1_TYPE * a,int type,const void * value)668 int __wrap_ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
669 {
670 if (g_mockTagX509Openssl) {
671 CF_LOG_I("X509OpensslMock ASN1_TYPE_set1");
672 return X509OpensslMock::GetInstance().ASN1_TYPE_set1(a, type, value);
673 } else {
674 return __real_ASN1_TYPE_set1(a, type, value);
675 }
676 }
677
__wrap_i2d_ASN1_TYPE(ASN1_TYPE * a,unsigned char ** out)678 int __wrap_i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out)
679 {
680 if (g_mockTagX509Openssl) {
681 CF_LOG_I("X509OpensslMock i2d_ASN1_TYPE");
682 return X509OpensslMock::GetInstance().i2d_ASN1_TYPE(a, out);
683 } else {
684 return __real_i2d_ASN1_TYPE(a, out);
685 }
686 }
687
__wrap_ASN1_INTEGER_get(const ASN1_INTEGER * a)688 long __wrap_ASN1_INTEGER_get(const ASN1_INTEGER *a)
689 {
690 if (g_mockTagX509Openssl) {
691 CF_LOG_I("X509OpensslMock ASN1_INTEGER_get");
692 return X509OpensslMock::GetInstance().ASN1_INTEGER_get(a);
693 } else {
694 return __real_ASN1_INTEGER_get(a);
695 }
696 }
697
__wrap_ASN1_STRING_get0_data(const ASN1_STRING * x)698 const unsigned char *__wrap_ASN1_STRING_get0_data(const ASN1_STRING *x)
699 {
700 if (g_mockTagX509Openssl) {
701 CF_LOG_I("X509OpensslMock ASN1_STRING_get0_data");
702 return X509OpensslMock::GetInstance().ASN1_STRING_get0_data(x);
703 } else {
704 return __real_ASN1_STRING_get0_data(x);
705 }
706 }
707
__wrap_i2d_GENERAL_NAME(GENERAL_NAME * a,unsigned char ** out)708 int __wrap_i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out)
709 {
710 if (g_mockTagX509Openssl) {
711 CF_LOG_I("X509OpensslMock i2d_GENERAL_NAME");
712 return X509OpensslMock::GetInstance().i2d_GENERAL_NAME(a, out);
713 } else {
714 return __real_i2d_GENERAL_NAME(a, out);
715 }
716 }
717
__wrap_X509_get_ext(const X509 * x,X509_EXTENSION * loc)718 X509_EXTENSION *__wrap_X509_get_ext(const X509 *x, X509_EXTENSION *loc)
719 {
720 if (g_mockTagX509Openssl) {
721 CF_LOG_I("X509OpensslMock X509_get_ext");
722 return X509OpensslMock::GetInstance().X509_get_ext(x, loc);
723 } else {
724 return __real_X509_get_ext(x, loc);
725 }
726 }
727
__wrap_X509V3_EXT_d2i(X509_EXTENSION * ext)728 void *__wrap_X509V3_EXT_d2i(X509_EXTENSION *ext)
729 {
730 if (g_mockTagX509Openssl) {
731 CF_LOG_I("X509OpensslMock X509V3_EXT_d2i");
732 return X509OpensslMock::GetInstance().X509V3_EXT_d2i(ext);
733 } else {
734 return __real_X509V3_EXT_d2i(ext);
735 }
736 }
737
__wrap_GENERAL_NAME_get0_value(const GENERAL_NAME * a,int * ptype)738 void *__wrap_GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype)
739 {
740 if (g_mockTagX509Openssl) {
741 CF_LOG_I("X509OpensslMock GENERAL_NAME_get0_value");
742 return X509OpensslMock::GetInstance().GENERAL_NAME_get0_value(a, ptype);
743 } else {
744 return __real_GENERAL_NAME_get0_value(a, ptype);
745 }
746 }
747
__wrap_X509_verify(X509 * a,EVP_PKEY * r)748 int __wrap_X509_verify(X509 *a, EVP_PKEY *r)
749 {
750 if (g_mockTagX509Openssl) {
751 CF_LOG_I("X509OpensslMock X509_verify");
752 return X509OpensslMock::GetInstance().X509_verify(a, r);
753 } else {
754 return __real_X509_verify(a, r);
755 }
756 }
757
__wrap_DeepCopyBlobToBlob(const CfBlob * inBlob,CfBlob ** outBlob)758 CfResult __wrap_DeepCopyBlobToBlob(const CfBlob *inBlob, CfBlob **outBlob)
759 {
760 if (g_mockTagX509Openssl) {
761 CF_LOG_I("X509OpensslMock DeepCopyBlobToBlob");
762 return X509OpensslMock::GetInstance().DeepCopyBlobToBlob(inBlob, outBlob);
763 } else {
764 return __real_DeepCopyBlobToBlob(inBlob, outBlob);
765 }
766 }
767
__wrap_OPENSSL_sk_push(OPENSSL_STACK * st,const int data)768 int __wrap_OPENSSL_sk_push(OPENSSL_STACK *st, const int data)
769 {
770 if (g_mockTagX509Openssl) {
771 CF_LOG_I("X509OpensslMock OPENSSL_sk_push");
772 return X509OpensslMock::GetInstance().OPENSSL_sk_push(st, data);
773 } else {
774 return __real_OPENSSL_sk_push(st, data);
775 }
776 }
777
__wrap_i2d_X509_REVOKED(X509_REVOKED * a,unsigned char ** out)778 int __wrap_i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out)
779 {
780 if (g_mockTagX509Openssl) {
781 CF_LOG_I("X509OpensslMock i2d_X509_REVOKED");
782 return X509OpensslMock::GetInstance().i2d_X509_REVOKED(a, out);
783 } else {
784 return __real_i2d_X509_REVOKED(a, out);
785 }
786 }
787
__wrap_i2d_X509_CRL(X509_CRL * a,unsigned char ** out)788 int __wrap_i2d_X509_CRL(X509_CRL *a, unsigned char **out)
789 {
790 if (g_mockTagX509Openssl) {
791 CF_LOG_I("X509OpensslMock i2d_X509_CRL");
792 return X509OpensslMock::GetInstance().i2d_X509_CRL(a, out);
793 } else {
794 return __real_i2d_X509_CRL(a, out);
795 }
796 }
797
__wrap_OPENSSL_sk_deep_copy(const OPENSSL_STACK * st,OPENSSL_sk_copyfunc c,OPENSSL_sk_freefunc f)798 OPENSSL_STACK *__wrap_OPENSSL_sk_deep_copy(const OPENSSL_STACK *st, OPENSSL_sk_copyfunc c, OPENSSL_sk_freefunc f)
799 {
800 if (g_mockTagX509Openssl) {
801 CF_LOG_I("X509OpensslMock OPENSSL_sk_deep_copy");
802 return X509OpensslMock::GetInstance().OPENSSL_sk_deep_copy(st, c, f);
803 } else {
804 return __real_OPENSSL_sk_deep_copy(st, c, f);
805 }
806 }
807
__wrap_OBJ_obj2nid(const ASN1_OBJECT * o)808 int __wrap_OBJ_obj2nid(const ASN1_OBJECT *o)
809 {
810 if (g_mockTagX509Openssl) {
811 CF_LOG_I("X509OpensslMock OBJ_obj2nid");
812 return X509OpensslMock::GetInstance().OBJ_obj2nid(o);
813 } else {
814 return __real_OBJ_obj2nid(o);
815 }
816 }
817
__wrap_X509_dup(X509 * x509)818 X509 *__wrap_X509_dup(X509 *x509)
819 {
820 if (g_mockTagX509Openssl) {
821 CF_LOG_I("X509OpensslMock X509_dup");
822 return X509OpensslMock::GetInstance().X509_dup(x509);
823 } else {
824 return __real_X509_dup(x509);
825 }
826 }
827
__wrap_X509_check_host(X509 * x,const char * chk,size_t chklen,unsigned int flags,char ** peername)828 int __wrap_X509_check_host(X509 *x, const char *chk, size_t chklen, unsigned int flags, char **peername)
829 {
830 if (g_mockTagX509Openssl) {
831 CF_LOG_I("X509OpensslMock X509_check_host");
832 return X509OpensslMock::GetInstance().X509_check_host(x, chk, chklen, flags, peername);
833 } else {
834 return __real_X509_check_host(x, chk, chklen, flags, peername);
835 }
836 }
837
__wrap_OCSP_REQUEST_new(void)838 OCSP_REQUEST *__wrap_OCSP_REQUEST_new(void)
839 {
840 if (g_mockTagX509Openssl) {
841 CF_LOG_I("X509OpensslMock OCSP_REQUEST_new");
842 return X509OpensslMock::GetInstance().OCSP_REQUEST_new();
843 } else {
844 return __real_OCSP_REQUEST_new();
845 }
846 }
847
__wrap_X509_CRL_load_http(const char * url,BIO * bio,BIO * rbio,int timeout)848 X509_CRL *__wrap_X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout)
849 {
850 if (g_mockTagX509Openssl || g_mockTagX509HcfCert) {
851 CF_LOG_I("X509OpensslMock X509_CRL_load_http");
852 return X509OpensslMock::GetInstance().X509_CRL_load_http(url, bio, rbio, timeout);
853 } else {
854 return __real_X509_CRL_load_http(url, bio, rbio, timeout);
855 }
856 }
857
__wrap_X509_get1_ocsp(X509 * x)858 struct stack_st_OPENSSL_STRING *__wrap_X509_get1_ocsp(X509 *x)
859 {
860 if (g_mockTagX509Openssl || g_mockTagX509HcfCert) {
861 CF_LOG_I("X509OpensslMock X509_get1_ocsp");
862 return X509OpensslMock::GetInstance().X509_get1_ocsp(x);
863 } else {
864 return __real_X509_get1_ocsp(x);
865 }
866 }
867
__wrap_OSSL_HTTP_parse_url(const char * url,int * pssl,char ** puser,char ** phost,char ** pport,int * pport_num,char ** ppath,char ** pquery,char ** pfrag)868 int __wrap_OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser, char **phost, char **pport, int *pport_num,
869 char **ppath, char **pquery, char **pfrag)
870 {
871 if (g_mockTagX509Openssl) {
872 CF_LOG_I("X509OpensslMock OSSL_HTTP_parse_url");
873 return X509OpensslMock::GetInstance().OSSL_HTTP_parse_url(
874 url, pssl, puser, phost, pport, pport_num, ppath, pquery, pfrag);
875 } else {
876 return __real_OSSL_HTTP_parse_url(url, pssl, puser, phost, pport, pport_num, ppath, pquery, pfrag);
877 }
878 }
879
__wrap_X509_NAME_get0_der(X509_NAME * nm,const unsigned char ** pder,size_t * pderlen)880 int __wrap_X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen)
881 {
882 if (g_mockTagX509Openssl) {
883 CF_LOG_I("X509OpensslMock X509_NAME_get0_der");
884 return X509OpensslMock::GetInstance().X509_NAME_get0_der(nm, pder, pderlen);
885 } else {
886 return __real_X509_NAME_get0_der(nm, pder, pderlen);
887 }
888 }
889
__wrap_OBJ_nid2sn(int n)890 const char *__wrap_OBJ_nid2sn(int n)
891 {
892 if (g_mockTagX509Openssl) {
893 CF_LOG_I("X509OpensslMock OBJ_nid2sn");
894 return X509OpensslMock::GetInstance().OBJ_nid2sn(n);
895 } else {
896 return __real_OBJ_nid2sn(n);
897 }
898 }
899
__wrap_ASN1_STRING_length(const ASN1_STRING * x)900 int __wrap_ASN1_STRING_length(const ASN1_STRING *x)
901 {
902 if (g_mockTagX509Openssl) {
903 CF_LOG_I("X509OpensslMock ASN1_STRING_length");
904 return X509OpensslMock::GetInstance().ASN1_STRING_length(x);
905 } else {
906 return __real_ASN1_STRING_length(x);
907 }
908 }
909
__wrap_DeepCopyDataToOut(const char * data,uint32_t len,CfBlob * out)910 CfResult __wrap_DeepCopyDataToOut(const char *data, uint32_t len, CfBlob *out)
911 {
912 if (g_mockTagX509Openssl) {
913 CF_LOG_I("X509OpensslMock DeepCopyDataToOut");
914 return X509OpensslMock::GetInstance().DeepCopyDataToOut(data, len, out);
915 } else {
916 return __real_DeepCopyDataToOut(data, len, out);
917 }
918 }
919
__wrap_CRYPTO_strdup(const char * str,const char * file,int line)920 char *__wrap_CRYPTO_strdup(const char *str, const char *file, int line)
921 {
922 if (g_mockTagX509Openssl) {
923 CF_LOG_I("X509OpensslMock CRYPTO_strdup");
924 return X509OpensslMock::GetInstance().CRYPTO_strdup(str, file, line);
925 } else {
926 return __real_CRYPTO_strdup(str, file, line);
927 }
928 }
929
__wrap_X509_NAME_new(void)930 X509_NAME *__wrap_X509_NAME_new(void)
931 {
932 if (g_mockTagX509Openssl) {
933 CF_LOG_I("X509OpensslMock X509_NAME_new");
934 return X509OpensslMock::GetInstance().X509_NAME_new();
935 } else {
936 return __real_X509_NAME_new();
937 }
938 }
939
__wrap_OBJ_txt2nid(const char * s)940 int __wrap_OBJ_txt2nid(const char *s)
941 {
942 if (g_mockTagX509Openssl) {
943 CF_LOG_I("X509OpensslMock OBJ_txt2nid");
944 return X509OpensslMock::GetInstance().OBJ_txt2nid(s);
945 } else {
946 return __real_OBJ_txt2nid(s);
947 }
948 }
949
__wrap_X509_NAME_add_entry_by_NID(X509_NAME * name,int nid,int type,const unsigned char * bytes,int len,int loc,int set)950 int __wrap_X509_NAME_add_entry_by_NID(
951 X509_NAME *name, int nid, int type, const unsigned char *bytes, int len, int loc, int set)
952 {
953 if (g_mockTagX509Openssl) {
954 CF_LOG_I("X509OpensslMock X509_NAME_add_entry_by_NID");
955 return X509OpensslMock::GetInstance().X509_NAME_add_entry_by_NID(name, nid, type, bytes, len, loc, set);
956 } else {
957 return __real_X509_NAME_add_entry_by_NID(name, nid, type, bytes, len, loc, set);
958 }
959 }
960
__wrap_BIO_new(const BIO_METHOD * type)961 BIO *__wrap_BIO_new(const BIO_METHOD *type)
962 {
963 if (g_mockTagX509Openssl) {
964 CF_LOG_I("X509OpensslMock BIO_new");
965 return X509OpensslMock::GetInstance().BIO_new(type);
966 } else {
967 return __real_BIO_new(type);
968 }
969 }
970
__wrap_X509_print(BIO * bp,X509 * x)971 int __wrap_X509_print(BIO *bp, X509 *x)
972 {
973 if (g_mockTagX509Openssl) {
974 CF_LOG_I("X509OpensslMock X509_print");
975 return X509OpensslMock::GetInstance().X509_print(bp, x);
976 } else {
977 return __real_X509_print(bp, x);
978 }
979 }
980
__wrap_BIO_ctrl(BIO * bp,int cmd,long larg,void * parg)981 long __wrap_BIO_ctrl(BIO *bp, int cmd, long larg, void *parg)
982 {
983 if (g_mockTagX509Openssl) {
984 CF_LOG_I("X509OpensslMock BIO_ctrl");
985 return X509OpensslMock::GetInstance().BIO_ctrl(bp, cmd, larg, parg);
986 } else {
987 return __real_BIO_ctrl(bp, cmd, larg, parg);
988 }
989 }
990
__wrap_i2d_X509_bio(BIO * bp,X509 * x509)991 int __wrap_i2d_X509_bio(BIO *bp, X509 *x509)
992 {
993 if (g_mockTagX509Openssl) {
994 CF_LOG_I("X509OpensslMock i2d_X509_bio");
995 return X509OpensslMock::GetInstance().i2d_X509_bio(bp, x509);
996 } else {
997 return __real_i2d_X509_bio(bp, x509);
998 }
999 }
1000
__wrap_PKCS12_parse(PKCS12 * p12,const char * pass,EVP_PKEY ** pkey,X509 ** cert,STACK_OF (X509)** ca)1001 int __wrap_PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca)
1002 {
1003 if (g_mockTagX509Openssl) {
1004 CF_LOG_I("X509OpensslMock PKCS12_parse");
1005 return X509OpensslMock::GetInstance().PKCS12_parse(p12, pass, pkey, cert, ca);
1006 } else {
1007 return __real_PKCS12_parse(p12, pass, pkey, cert, ca);
1008 }
1009 }
1010
__wrap_CheckIsSelfSigned(const X509 * cert)1011 bool __wrap_CheckIsSelfSigned(const X509 *cert)
1012 {
1013 if (g_mockTagX509Openssl || g_mockTagX509HcfCert) {
1014 CF_LOG_I("X509OpensslMock CheckIsSelfSigned");
1015 return X509OpensslMock::GetInstance().CheckIsSelfSigned(cert);
1016 } else {
1017 return __real_CheckIsSelfSigned(cert);
1018 }
1019 }
1020
1021 #ifdef __cplusplus
1022 }
1023 #endif
1024