/*
* Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (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
*/
#define APPLINK_STDIN 1
#define APPLINK_STDOUT 2
#define APPLINK_STDERR 3
#define APPLINK_FPRINTF 4
#define APPLINK_FGETS 5
#define APPLINK_FREAD 6
#define APPLINK_FWRITE 7
#define APPLINK_FSETMOD 8
#define APPLINK_FEOF 9
#define APPLINK_FCLOSE 10 /* should not be used */
#define APPLINK_FOPEN 11 /* solely for completeness */
#define APPLINK_FSEEK 12
#define APPLINK_FTELL 13
#define APPLINK_FFLUSH 14
#define APPLINK_FERROR 15
#define APPLINK_CLEARERR 16
#define APPLINK_FILENO 17 /* to be used with below */
#define APPLINK_OPEN 18 /* formally can't be used, as flags can vary */
#define APPLINK_READ 19
#define APPLINK_WRITE 20
#define APPLINK_LSEEK 21
#define APPLINK_CLOSE 22
#define APPLINK_MAX 22 /* always same as last macro */
#ifndef APPMACROS_ONLY
# include <stdio.h>
# include <io.h>
# include <fcntl.h>
# ifdef __BORLANDC__
/* _lseek in <io.h> is a function-like macro so we can't take its address */
# undef _lseek
# define _lseek lseek
# endif
static void *app_stdin(void)
{
return stdin;
}
static void *app_stdout(void)
{
return stdout;
}
static void *app_stderr(void)
{
return stderr;
}
static int app_feof(FILE *fp)
{
return feof(fp);
}
static int app_ferror(FILE *fp)
{
return ferror(fp);
}
static void app_clearerr(FILE *fp)
{
clearerr(fp);
}
static int app_fileno(FILE *fp)
{
return _fileno(fp);
}
static int app_fsetmod(FILE *fp, char mod)
{
return _setmode(_fileno(fp), mod == 'b' ? _O_BINARY : _O_TEXT);
}
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport)
void **
# if defined(__BORLANDC__)
/*
* __stdcall appears to be the only way to get the name
* decoration right with Borland C. Otherwise it works
* purely incidentally, as we pass no parameters.
*/
__stdcall
# else
__cdecl
# endif
OPENSSL_Applink(void)
{
static int once = 1;
static void *OPENSSL_ApplinkTable[APPLINK_MAX + 1] =
{ (void *)APPLINK_MAX };
if (once) {
OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin;
OPENSSL_ApplinkTable[APPLINK_STDOUT] = app_stdout;
OPENSSL_ApplinkTable[APPLINK_STDERR] = app_stderr;
OPENSSL_ApplinkTable[APPLINK_FPRINTF] = fprintf;
OPENSSL_ApplinkTable[APPLINK_FGETS] = fgets;
OPENSSL_ApplinkTable[APPLINK_FREAD] = fread;
OPENSSL_ApplinkTable[APPLINK_FWRITE] = fwrite;
OPENSSL_ApplinkTable[APPLINK_FSETMOD] = app_fsetmod;
OPENSSL_ApplinkTable[APPLINK_FEOF] = app_feof;
OPENSSL_ApplinkTable[APPLINK_FCLOSE] = fclose;
OPENSSL_ApplinkTable[APPLINK_FOPEN] = fopen;
OPENSSL_ApplinkTable[APPLINK_FSEEK] = fseek;
OPENSSL_ApplinkTable[APPLINK_FTELL] = ftell;
OPENSSL_ApplinkTable[APPLINK_FFLUSH] = fflush;
OPENSSL_ApplinkTable[APPLINK_FERROR] = app_ferror;
OPENSSL_ApplinkTable[APPLINK_CLEARERR] = app_clearerr;
OPENSSL_ApplinkTable[APPLINK_FILENO] = app_fileno;
OPENSSL_ApplinkTable[APPLINK_OPEN] = _open;
OPENSSL_ApplinkTable[APPLINK_READ] = _read;
OPENSSL_ApplinkTable[APPLINK_WRITE] = _write;
OPENSSL_ApplinkTable[APPLINK_LSEEK] = _lseek;
OPENSSL_ApplinkTable[APPLINK_CLOSE] = _close;
once = 0;
}
return OPENSSL_ApplinkTable;
}
#ifdef __cplusplus
}
#endif
#endif
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
windows系统下v3.0.9版本openssl自定义链接库名称避免多版本冲突x86平台debug模式动态库 (155个子文件)
applink.c 4KB
openssl.crypto-3.dll 4.1MB
openssl.ssl-3.dll 725KB
legacy.dll 111KB
loader_attic.dll 62KB
capi.dll 49KB
padlock.dll 47KB
openssl.exe 729KB
obj_mac.h 223KB
ssl.h 125KB
evp.h 101KB
x509v3.h 93KB
cryptoerr_legacy.h 79KB
x509.h 71KB
tls1.h 70KB
ec.h 66KB
asn1.h 61KB
x509_vfy.h 52KB
core_dispatch.h 46KB
cmp.h 41KB
bio.h 40KB
engine.h 38KB
asn1t.h 36KB
cms.h 34KB
ocsp.h 29KB
core_names.h 28KB
rsa.h 27KB
sslerr_legacy.h 26KB
pem.h 25KB
crypto.h 24KB
bn.h 23KB
ct.h 23KB
pkcs7.h 22KB
err.h 22KB
sslerr.h 20KB
ts.h 19KB
pkcs12.h 19KB
ui.h 19KB
safestack.h 18KB
srp.h 15KB
store.h 15KB
dh.h 15KB
crmf.h 15KB
ssl3.h 14KB
lhash.h 14KB
dsa.h 12KB
modes.h 11KB
conf.h 10KB
trace.h 10KB
macros.h 10KB
ess.h 9KB
e_os2.h 9KB
des.h 8KB
proverr.h 8KB
core.h 8KB
asn1err.h 8KB
evperr.h 7KB
params.h 7KB
types.h 7KB
objects.h 7KB
cmserr.h 6KB
cmperr.h 6KB
decoder.h 6KB
rsaerr.h 6KB
kdf.h 5KB
encoder.h 5KB
ecerr.h 5KB
http.h 5KB
camellia.h 5KB
x509v3err.h 5KB
sha.h 5KB
self_test.h 4KB
seed.h 4KB
rand.h 4KB
aes.h 4KB
opensslv.h 3KB
stack.h 3KB
randerr.h 3KB
x509err.h 3KB
configuration.h 3KB
async.h 3KB
bioerr.h 3KB
tserr.h 3KB
idea.h 3KB
pkcs7err.h 3KB
rc5.h 3KB
engineerr.h 3KB
param_build.h 3KB
blowfish.h 3KB
pemerr.h 3KB
httperr.h 2KB
dherr.h 2KB
rc2.h 2KB
provider.h 2KB
conferr.h 2KB
ocsperr.h 2KB
hmac.h 2KB
storeerr.h 2KB
cast.h 2KB
crmferr.h 2KB
共 155 条
- 1
- 2
资源评论
智瑞未来
- 粉丝: 10
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功