Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
1ea6472e
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
8 个月 前同步成功
通知
8
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看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1ea6472e
编写于
10月 14, 2008
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Type-safe OBJ_bsearch_ex.
上级
b8dfde2a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
36 addition
and
31 deletion
+36
-31
CHANGES
CHANGES
+5
-1
crypto/objects/obj_dat.c
crypto/objects/obj_dat.c
+5
-3
crypto/objects/objects.h
crypto/objects/objects.h
+11
-3
crypto/stack/safestack.h
crypto/stack/safestack.h
+1
-1
crypto/stack/stack.c
crypto/stack/stack.c
+10
-18
crypto/stack/stack.h
crypto/stack/stack.h
+4
-5
未找到文件。
CHANGES
浏览文件 @
1ea6472e
...
...
@@ -4,10 +4,14 @@
Changes between 0.9.8j and 0.9.9 [xx XXX xxxx]
*) Type-checked OBJ_bsearch_ex.
[Ben Laurie]
*) Type-checked OBJ_bsearch. Also some constification necessitated
by type-checking. Still to come: TXT_DB, bsearch(?),
OBJ_bsearch_ex, qsort, CRYPTO_EX_DATA, ASN1_VALUE, ASN1_STRING,
CONF_VALUE. [Ben Laurie]
CONF_VALUE.
[Ben Laurie]
*) New function OPENSSL_gmtime_adj() to add a specific number of days and
seconds to a tm structure directly, instead of going through OS
...
...
crypto/objects/obj_dat.c
浏览文件 @
1ea6472e
...
...
@@ -678,11 +678,13 @@ int OBJ_sn2nid(const char *s)
const
void
*
OBJ_bsearch_
(
const
void
*
key
,
const
void
*
base
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
))
{
return
OBJ_bsearch_ex
(
key
,
base
,
num
,
size
,
cmp
,
0
);
return
OBJ_bsearch_ex
_
(
key
,
base
,
num
,
size
,
cmp
,
0
);
}
const
void
*
OBJ_bsearch_ex
(
const
void
*
key
,
const
void
*
base_
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
),
int
flags
)
const
void
*
OBJ_bsearch_ex_
(
const
void
*
key
,
const
void
*
base_
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
),
int
flags
)
{
const
char
*
base
=
base_
;
int
l
,
h
,
i
=
0
,
c
=
0
;
...
...
crypto/objects/objects.h
浏览文件 @
1ea6472e
...
...
@@ -1013,9 +1013,10 @@ int OBJ_sn2nid(const char *s);
int
OBJ_cmp
(
const
ASN1_OBJECT
*
a
,
const
ASN1_OBJECT
*
b
);
const
void
*
OBJ_bsearch_
(
const
void
*
key
,
const
void
*
base
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
));
const
void
*
OBJ_bsearch_ex
(
const
void
*
key
,
const
void
*
base
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
),
int
flags
);
const
void
*
OBJ_bsearch_ex_
(
const
void
*
key
,
const
void
*
base
,
int
num
,
int
size
,
int
(
*
cmp
)(
const
void
*
,
const
void
*
),
int
flags
);
#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, cmp) \
scope type1 *cmp##_type_1; \
...
...
@@ -1074,6 +1075,13 @@ const void * OBJ_bsearch_ex(const void *key,const void *base,int num,
cmp##_type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \
cmp##_BSEARCH_CMP_FN)))
#define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \
((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \
num,sizeof(type2), \
(cmp##_type_1=CHECKED_PTR_OF(type1,cmp##_type_1), \
cmp##_type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \
cmp##_BSEARCH_CMP_FN)),flags)
int
OBJ_new_nid
(
int
num
);
int
OBJ_add_object
(
const
ASN1_OBJECT
*
obj
);
int
OBJ_create
(
const
char
*
oid
,
const
char
*
sn
,
const
char
*
ln
);
...
...
crypto/stack/safestack.h
浏览文件 @
1ea6472e
...
...
@@ -69,7 +69,7 @@
((void (*)(void *)) ((1 ? p : (void (*)(type))0)))
#define CHECKED_SK_CMP_FUNC(type, p) \
((int (*)(const void *
const *, const void * const
*)) \
((int (*)(const void *
, const void
*)) \
((1 ? p : (int (*)(const type * const *, const type * const *))0)))
#define STACK_OF(type) struct stack_st_##type
...
...
crypto/stack/stack.c
浏览文件 @
1ea6472e
...
...
@@ -77,11 +77,10 @@ const char STACK_version[]="Stack" OPENSSL_VERSION_PTEXT;
#include <errno.h>
int
(
*
sk_set_cmp_func
(
_STACK
*
sk
,
int
(
*
c
)(
const
void
*
const
*
,
const
void
*
const
*
)))
(
const
void
*
const
*
,
const
void
*
const
*
)
int
(
*
sk_set_cmp_func
(
_STACK
*
sk
,
int
(
*
c
)(
const
void
*
,
const
void
*
)))
(
const
void
*
,
const
void
*
)
{
int
(
*
old
)(
const
void
*
const
*
,
const
void
*
const
*
)
=
sk
->
comp
;
int
(
*
old
)(
const
void
*
,
const
void
*
)
=
sk
->
comp
;
if
(
sk
->
comp
!=
c
)
sk
->
sorted
=
0
;
...
...
@@ -115,10 +114,10 @@ err:
_STACK
*
sk_new_null
(
void
)
{
return
sk_new
((
int
(
*
)(
const
void
*
const
*
,
const
void
*
const
*
))
0
);
return
sk_new
((
int
(
*
)(
const
void
*
,
const
void
*
))
0
);
}
_STACK
*
sk_new
(
int
(
*
c
)(
const
void
*
const
*
,
const
void
*
const
*
))
_STACK
*
sk_new
(
int
(
*
c
)(
const
void
*
,
const
void
*
))
{
_STACK
*
ret
;
int
i
;
...
...
@@ -213,9 +212,9 @@ void *sk_delete(_STACK *st, int loc)
static
int
internal_find
(
_STACK
*
st
,
void
*
data
,
int
ret_val_options
)
{
c
har
*
*
r
;
c
onst
void
*
const
*
r
;
int
i
;
int
(
*
comp_func
)(
const
void
*
,
const
void
*
);
if
(
st
==
NULL
)
return
-
1
;
if
(
st
->
comp
==
NULL
)
...
...
@@ -227,17 +226,10 @@ static int internal_find(_STACK *st, void *data, int ret_val_options)
}
sk_sort
(
st
);
if
(
data
==
NULL
)
return
(
-
1
);
/* This (and the "qsort" below) are the two places in OpenSSL
* where we need to convert from our standard (type **,type **)
* compare callback type to the (void *,void *) type required by
* bsearch. However, the "data" it is being called(back) with are
* not (type *) pointers, but the *pointers* to (type *) pointers,
* so we get our extra level of pointer dereferencing that way. */
comp_func
=
(
int
(
*
)(
const
void
*
,
const
void
*
))(
st
->
comp
);
r
=
(
char
**
)
OBJ_bsearch_ex
((
char
*
)
&
data
,(
char
*
)
st
->
data
,
st
->
num
,
sizeof
(
char
*
),
comp_func
,
ret_val_options
);
r
=
OBJ_bsearch_ex_
(
&
data
,
st
->
data
,
st
->
num
,
sizeof
(
void
*
),
st
->
comp
,
ret_val_options
);
if
(
r
==
NULL
)
return
(
-
1
);
return
((
int
)(
r
-
st
->
data
)
);
return
(
int
)((
char
**
)
r
-
st
->
data
);
}
int
sk_find
(
_STACK
*
st
,
void
*
data
)
...
...
crypto/stack/stack.h
浏览文件 @
1ea6472e
...
...
@@ -70,7 +70,7 @@ typedef struct stack_st
int
sorted
;
int
num_alloc
;
int
(
*
comp
)(
const
void
*
const
*
,
const
void
*
const
*
);
int
(
*
comp
)(
const
void
*
,
const
void
*
);
}
_STACK
;
/* Use STACK_OF(...) instead */
#define M_sk_num(sk) ((sk) ? (sk)->num:-1)
...
...
@@ -81,7 +81,7 @@ void *sk_value(const _STACK *, int);
void
*
sk_set
(
_STACK
*
,
int
,
void
*
);
_STACK
*
sk_new
(
int
(
*
cmp
)(
const
void
*
const
*
,
const
void
*
const
*
));
_STACK
*
sk_new
(
int
(
*
cmp
)(
const
void
*
,
const
void
*
));
_STACK
*
sk_new_null
(
void
);
void
sk_free
(
_STACK
*
);
void
sk_pop_free
(
_STACK
*
st
,
void
(
*
func
)(
void
*
));
...
...
@@ -95,9 +95,8 @@ int sk_unshift(_STACK *st, void *data);
void
*
sk_shift
(
_STACK
*
st
);
void
*
sk_pop
(
_STACK
*
st
);
void
sk_zero
(
_STACK
*
st
);
int
(
*
sk_set_cmp_func
(
_STACK
*
sk
,
int
(
*
c
)(
const
void
*
const
*
,
const
void
*
const
*
)))
(
const
void
*
const
*
,
const
void
*
const
*
);
int
(
*
sk_set_cmp_func
(
_STACK
*
sk
,
int
(
*
c
)(
const
void
*
,
const
void
*
)))
(
const
void
*
,
const
void
*
);
_STACK
*
sk_dup
(
_STACK
*
st
);
void
sk_sort
(
_STACK
*
st
);
int
sk_is_sorted
(
const
_STACK
*
st
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录