Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
30661b1b
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
接近 2 年 前同步成功
通知
12
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
30661b1b
编写于
10月 14, 2008
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add missing lock definitions.
上级
1ea6472e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
71 addition
and
12 deletion
+71
-12
crypto/cryptlib.c
crypto/cryptlib.c
+71
-12
未找到文件。
crypto/cryptlib.c
浏览文件 @
30661b1b
...
@@ -165,7 +165,9 @@ static const char* const lock_names[CRYPTO_NUM_LOCKS] =
...
@@ -165,7 +165,9 @@ static const char* const lock_names[CRYPTO_NUM_LOCKS] =
"ec_pre_comp"
,
"ec_pre_comp"
,
"store"
,
"store"
,
"comp"
,
"comp"
,
#if CRYPTO_NUM_LOCKS != 39
"fips"
,
"fips2"
,
#if CRYPTO_NUM_LOCKS != 41
# error "Inconsistency between crypto.h and cryptlib.c"
# error "Inconsistency between crypto.h and cryptlib.c"
#endif
#endif
};
};
...
@@ -552,6 +554,14 @@ unsigned long CRYPTO_thread_id(void)
...
@@ -552,6 +554,14 @@ unsigned long CRYPTO_thread_id(void)
}
}
#endif
#endif
static
void
(
*
do_dynlock_cb
)(
int
mode
,
int
type
,
const
char
*
file
,
int
line
);
void
int_CRYPTO_set_do_dynlock_callback
(
void
(
*
dyn_cb
)(
int
mode
,
int
type
,
const
char
*
file
,
int
line
))
{
do_dynlock_cb
=
dyn_cb
;
}
void
CRYPTO_lock
(
int
mode
,
int
type
,
const
char
*
file
,
int
line
)
void
CRYPTO_lock
(
int
mode
,
int
type
,
const
char
*
file
,
int
line
)
{
{
#ifdef LOCK_DEBUG
#ifdef LOCK_DEBUG
...
@@ -581,17 +591,8 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
...
@@ -581,17 +591,8 @@ void CRYPTO_lock(int mode, int type, const char *file, int line)
#endif
#endif
if
(
type
<
0
)
if
(
type
<
0
)
{
{
if
(
dynlock_lock_callback
!=
NULL
)
if
(
do_dynlock_cb
)
{
do_dynlock_cb
(
mode
,
type
,
file
,
line
);
struct
CRYPTO_dynlock_value
*
pointer
=
CRYPTO_get_dynlock_value
(
type
);
OPENSSL_assert
(
pointer
!=
NULL
);
dynlock_lock_callback
(
mode
,
pointer
,
file
,
line
);
CRYPTO_destroy_dynlockid
(
type
);
}
}
}
else
else
if
(
locking_callback
!=
NULL
)
if
(
locking_callback
!=
NULL
)
...
@@ -693,6 +694,62 @@ void OPENSSL_cpuid_setup(void) {}
...
@@ -693,6 +694,62 @@ void OPENSSL_cpuid_setup(void) {}
#endif
#endif
#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_WINDLL)
#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(_WINDLL)
#ifdef OPENSSL_FIPS
#include <tlhelp32.h>
#if defined(__GNUC__) && __GNUC__>=2
static
int
DllInit
(
void
)
__attribute__
((
constructor
));
#elif defined(_MSC_VER)
static
int
DllInit
(
void
);
# ifdef _WIN64
# pragma section(".CRT$XCU",read)
__declspec
(
allocate
(
".CRT$XCU"
))
# else
# pragma data_seg(".CRT$XCU")
# endif
static
int
(
*
p
)(
void
)
=
DllInit
;
# pragma data_seg()
#endif
static
int
DllInit
(
void
)
{
#if defined(_WIN32_WINNT)
union
{
int
(
*
f
)(
void
);
BYTE
*
p
;
}
t
=
{
DllInit
};
HANDLE
hModuleSnap
=
INVALID_HANDLE_VALUE
;
IMAGE_DOS_HEADER
*
dos_header
;
IMAGE_NT_HEADERS
*
nt_headers
;
MODULEENTRY32
me32
=
{
sizeof
(
me32
)};
hModuleSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPMODULE
,
0
);
if
(
hModuleSnap
!=
INVALID_HANDLE_VALUE
&&
Module32First
(
hModuleSnap
,
&
me32
))
do
{
if
(
t
.
p
>=
me32
.
modBaseAddr
&&
t
.
p
<
me32
.
modBaseAddr
+
me32
.
modBaseSize
)
{
dos_header
=
(
IMAGE_DOS_HEADER
*
)
me32
.
modBaseAddr
;
if
(
dos_header
->
e_magic
==
IMAGE_DOS_SIGNATURE
)
{
nt_headers
=
(
IMAGE_NT_HEADERS
*
)
((
BYTE
*
)
dos_header
+
dos_header
->
e_lfanew
);
if
(
nt_headers
->
Signature
==
IMAGE_NT_SIGNATURE
&&
me32
.
modBaseAddr
!=
(
BYTE
*
)
nt_headers
->
OptionalHeader
.
ImageBase
)
OPENSSL_NONPIC_relocated
=
1
;
}
break
;
}
}
while
(
Module32Next
(
hModuleSnap
,
&
me32
));
if
(
hModuleSnap
!=
INVALID_HANDLE_VALUE
)
CloseHandle
(
hModuleSnap
);
#endif
OPENSSL_cpuid_setup
();
return
0
;
}
#else
#ifdef __CYGWIN__
#ifdef __CYGWIN__
/* pick DLL_[PROCESS|THREAD]_[ATTACH|DETACH] definitions */
/* pick DLL_[PROCESS|THREAD]_[ATTACH|DETACH] definitions */
#include <windows.h>
#include <windows.h>
...
@@ -736,6 +793,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
...
@@ -736,6 +793,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
}
}
#endif
#endif
#endif
#if defined(_WIN32) && !defined(__CYGWIN__)
#if defined(_WIN32) && !defined(__CYGWIN__)
#include <tchar.h>
#include <tchar.h>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录