Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
646d5695
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
1 年多 前同步成功
通知
9
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看板
提交
646d5695
编写于
11月 20, 2000
作者:
B
Ben Laurie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Better handling of EVP names, add EVP to speed.
上级
0cc11156
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
158 addition
and
87 deletion
+158
-87
apps/enc.c
apps/enc.c
+23
-69
apps/speed.c
apps/speed.c
+49
-5
crypto/objects/o_names.c
crypto/objects/o_names.c
+79
-11
crypto/objects/objects.h
crypto/objects/objects.h
+7
-2
未找到文件。
apps/enc.c
浏览文件 @
646d5695
...
@@ -71,6 +71,7 @@
...
@@ -71,6 +71,7 @@
#endif
#endif
#include <openssl/pem.h>
#include <openssl/pem.h>
#include <openssl/engine.h>
#include <openssl/engine.h>
#include <ctype.h>
int
set_hex
(
char
*
in
,
unsigned
char
*
out
,
int
size
);
int
set_hex
(
char
*
in
,
unsigned
char
*
out
,
int
size
);
#undef SIZE
#undef SIZE
...
@@ -81,6 +82,24 @@ int set_hex(char *in,unsigned char *out,int size);
...
@@ -81,6 +82,24 @@ int set_hex(char *in,unsigned char *out,int size);
#define BSIZE (8*1024)
#define BSIZE (8*1024)
#define PROG enc_main
#define PROG enc_main
void
show_ciphers
(
const
OBJ_NAME
*
name
,
void
*
bio_
)
{
BIO
*
bio
=
bio_
;
static
int
n
;
if
(
!
islower
(
*
name
->
name
))
return
;
BIO_printf
(
bio
,
"-%-25s"
,
name
->
name
);
if
(
++
n
==
3
)
{
BIO_printf
(
bio
,
"
\n
"
);
n
=
0
;
}
else
BIO_printf
(
bio
,
" "
);
}
int
MAIN
(
int
,
char
**
);
int
MAIN
(
int
,
char
**
);
int
MAIN
(
int
argc
,
char
**
argv
)
int
MAIN
(
int
argc
,
char
**
argv
)
...
@@ -252,76 +271,11 @@ bad:
...
@@ -252,76 +271,11 @@ bad:
BIO_printf
(
bio_err
,
"%-14s use engine e, possibly a hardware device.
\n
"
,
"-engine e"
);
BIO_printf
(
bio_err
,
"%-14s use engine e, possibly a hardware device.
\n
"
,
"-engine e"
);
BIO_printf
(
bio_err
,
"Cipher Types
\n
"
);
BIO_printf
(
bio_err
,
"Cipher Types
\n
"
);
BIO_printf
(
bio_err
,
"des : 56 bit key DES encryption
\n
"
);
OBJ_NAME_do_all_sorted
(
OBJ_NAME_TYPE_CIPHER_METH
,
BIO_printf
(
bio_err
,
"des_ede :112 bit key ede DES encryption
\n
"
);
show_ciphers
,
BIO_printf
(
bio_err
,
"des_ede3:168 bit key ede DES encryption
\n
"
);
bio_err
);
#ifndef NO_IDEA
BIO_printf
(
bio_err
,
"
\n
"
);
BIO_printf
(
bio_err
,
"idea :128 bit key IDEA encryption
\n
"
);
#endif
#ifndef NO_RC4
BIO_printf
(
bio_err
,
"rc2 :128 bit key RC2 encryption
\n
"
);
#endif
#ifndef NO_BF
BIO_printf
(
bio_err
,
"bf :128 bit key Blowfish encryption
\n
"
);
#endif
#ifndef NO_RC4
BIO_printf
(
bio_err
,
" -%-5s :128 bit key RC4 encryption
\n
"
,
LN_rc4
);
#endif
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_des_ecb
,
LN_des_cbc
,
LN_des_cfb64
,
LN_des_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"des"
,
LN_des_cbc
);
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_des_ede
,
LN_des_ede_cbc
,
LN_des_ede_cfb64
,
LN_des_ede_ofb64
);
BIO_printf
(
bio_err
,
" -desx -none
\n
"
);
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_des_ede3
,
LN_des_ede3_cbc
,
LN_des_ede3_cfb64
,
LN_des_ede3_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"des3"
,
LN_des_ede3_cbc
);
#ifndef NO_IDEA
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_idea_ecb
,
LN_idea_cbc
,
LN_idea_cfb64
,
LN_idea_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"idea"
,
LN_idea_cbc
);
#endif
#ifndef NO_RC2
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_rc2_ecb
,
LN_rc2_cbc
,
LN_rc2_cfb64
,
LN_rc2_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"rc2"
,
LN_rc2_cbc
);
#endif
#ifndef NO_BF
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_bf_ecb
,
LN_bf_cbc
,
LN_bf_cfb64
,
LN_bf_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"bf"
,
LN_bf_cbc
);
#endif
#ifndef NO_CAST
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_cast5_ecb
,
LN_cast5_cbc
,
LN_cast5_cfb64
,
LN_cast5_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"cast"
,
LN_cast5_cbc
);
#endif
#ifndef NO_RC5
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s"
,
LN_rc5_ecb
,
LN_rc5_cbc
,
LN_rc5_cfb64
,
LN_rc5_ofb64
);
BIO_printf
(
bio_err
,
" -%-4s (%s)
\n
"
,
"rc5"
,
LN_rc5_cbc
);
#endif
#ifndef NO_RIJNDAEL
BIO_printf
(
bio_err
,
" -%-12s -%-12s -%-12s -%-12s
\n
"
,
LN_rijndael_ecb_k128_b128
,
""
,
""
,
""
,
""
);
#endif
goto
end
;
goto
end
;
}
}
argc
--
;
argc
--
;
...
...
apps/speed.c
浏览文件 @
646d5695
...
@@ -82,6 +82,8 @@
...
@@ -82,6 +82,8 @@
#include <openssl/rand.h>
#include <openssl/rand.h>
#include <openssl/err.h>
#include <openssl/err.h>
#include <openssl/engine.h>
#include <openssl/engine.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#if defined(__FreeBSD__)
#if defined(__FreeBSD__)
# define USE_TOD
# define USE_TOD
...
@@ -196,7 +198,7 @@
...
@@ -196,7 +198,7 @@
int
run
=
0
;
int
run
=
0
;
static
double
Time_F
(
int
s
,
int
usertime
);
static
double
Time_F
(
int
s
,
int
usertime
);
static
void
print_message
(
char
*
s
,
long
num
,
int
length
);
static
void
print_message
(
c
onst
c
har
*
s
,
long
num
,
int
length
);
static
void
pkey_print_message
(
char
*
str
,
char
*
str2
,
long
num
,
int
bits
,
int
sec
);
static
void
pkey_print_message
(
char
*
str
,
char
*
str2
,
long
num
,
int
bits
,
int
sec
);
#ifdef SIGALRM
#ifdef SIGALRM
#if defined(__STDC__) || defined(sgi) || defined(_AIX)
#if defined(__STDC__) || defined(sgi) || defined(_AIX)
...
@@ -314,11 +316,11 @@ int MAIN(int argc, char **argv)
...
@@ -314,11 +316,11 @@ int MAIN(int argc, char **argv)
ENGINE
*
e
;
ENGINE
*
e
;
unsigned
char
*
buf
=
NULL
,
*
buf2
=
NULL
;
unsigned
char
*
buf
=
NULL
,
*
buf2
=
NULL
;
int
mret
=
1
;
int
mret
=
1
;
#define ALGOR_NUM 1
5
#define ALGOR_NUM 1
6
#define SIZE_NUM 5
#define SIZE_NUM 5
#define RSA_NUM 4
#define RSA_NUM 4
#define DSA_NUM 3
#define DSA_NUM 3
long
count
,
rsa_count
;
long
count
,
rsa_count
,
save_count
=
0
;
int
i
,
j
,
k
;
int
i
,
j
,
k
;
unsigned
rsa_num
;
unsigned
rsa_num
;
#ifndef NO_MD2
#ifndef NO_MD2
...
@@ -384,10 +386,11 @@ int MAIN(int argc, char **argv)
...
@@ -384,10 +386,11 @@ int MAIN(int argc, char **argv)
#define D_CBC_RC5 12
#define D_CBC_RC5 12
#define D_CBC_BF 13
#define D_CBC_BF 13
#define D_CBC_CAST 14
#define D_CBC_CAST 14
#define D_EVP 15
double
d
,
results
[
ALGOR_NUM
][
SIZE_NUM
];
double
d
,
results
[
ALGOR_NUM
][
SIZE_NUM
];
static
int
lengths
[
SIZE_NUM
]
=
{
8
,
64
,
256
,
1024
,
8
*
1024
};
static
int
lengths
[
SIZE_NUM
]
=
{
8
,
64
,
256
,
1024
,
8
*
1024
};
long
c
[
ALGOR_NUM
][
SIZE_NUM
];
long
c
[
ALGOR_NUM
][
SIZE_NUM
];
static
char
*
names
[
ALGOR_NUM
]
=
{
static
c
onst
c
har
*
names
[
ALGOR_NUM
]
=
{
"md2"
,
"mdc2"
,
"md4"
,
"md5"
,
"hmac(md5)"
,
"sha1"
,
"rmd160"
,
"rc4"
,
"md2"
,
"mdc2"
,
"md4"
,
"md5"
,
"hmac(md5)"
,
"sha1"
,
"rmd160"
,
"rc4"
,
"des cbc"
,
"des ede3"
,
"idea cbc"
,
"des cbc"
,
"des ede3"
,
"idea cbc"
,
"rc2 cbc"
,
"rc5-32/12 cbc"
,
"blowfish cbc"
,
"cast cbc"
};
"rc2 cbc"
,
"rc5-32/12 cbc"
,
"blowfish cbc"
,
"cast cbc"
};
...
@@ -420,6 +423,7 @@ int MAIN(int argc, char **argv)
...
@@ -420,6 +423,7 @@ int MAIN(int argc, char **argv)
int
doit
[
ALGOR_NUM
];
int
doit
[
ALGOR_NUM
];
int
pr_header
=
0
;
int
pr_header
=
0
;
int
usertime
=
1
;
int
usertime
=
1
;
const
EVP_CIPHER
*
evp
=
NULL
;
#ifndef TIMES
#ifndef TIMES
usertime
=-
1
;
usertime
=-
1
;
...
@@ -472,6 +476,23 @@ int MAIN(int argc, char **argv)
...
@@ -472,6 +476,23 @@ int MAIN(int argc, char **argv)
{
{
if
((
argc
>
0
)
&&
(
strcmp
(
*
argv
,
"-elapsed"
)
==
0
))
if
((
argc
>
0
)
&&
(
strcmp
(
*
argv
,
"-elapsed"
)
==
0
))
usertime
=
0
;
usertime
=
0
;
else
if
((
argc
>
0
)
&&
(
strcmp
(
*
argv
,
"-evp"
)
==
0
))
{
argc
--
;
argv
++
;
if
(
argc
==
0
)
{
BIO_printf
(
bio_err
,
"no EVP given
\n
"
);
goto
end
;
}
evp
=
EVP_get_cipherbyname
(
*
argv
);
if
(
!
evp
)
{
BIO_printf
(
bio_err
,
"%s is an unknown cipher
\n
"
,
*
argv
);
goto
end
;
}
doit
[
D_EVP
]
=
1
;
}
else
else
if
((
argc
>
0
)
&&
(
strcmp
(
*
argv
,
"-engine"
)
==
0
))
if
((
argc
>
0
)
&&
(
strcmp
(
*
argv
,
"-engine"
)
==
0
))
{
{
...
@@ -804,6 +825,7 @@ int MAIN(int argc, char **argv)
...
@@ -804,6 +825,7 @@ int MAIN(int argc, char **argv)
&
(
sch
[
0
]),
DES_ENCRYPT
);
&
(
sch
[
0
]),
DES_ENCRYPT
);
d
=
Time_F
(
STOP
,
usertime
);
d
=
Time_F
(
STOP
,
usertime
);
}
while
(
d
<
3
);
}
while
(
d
<
3
);
save_count
=
count
;
c
[
D_MD2
][
0
]
=
count
/
10
;
c
[
D_MD2
][
0
]
=
count
/
10
;
c
[
D_MDC2
][
0
]
=
count
/
10
;
c
[
D_MDC2
][
0
]
=
count
/
10
;
c
[
D_MD4
][
0
]
=
count
;
c
[
D_MD4
][
0
]
=
count
;
...
@@ -1160,6 +1182,28 @@ int MAIN(int argc, char **argv)
...
@@ -1160,6 +1182,28 @@ int MAIN(int argc, char **argv)
}
}
#endif
#endif
if
(
doit
[
D_EVP
])
{
for
(
j
=
0
;
j
<
SIZE_NUM
;
j
++
)
{
EVP_CIPHER_CTX
ctx
;
int
outl
;
names
[
D_EVP
]
=
OBJ_nid2ln
(
evp
->
nid
);
print_message
(
names
[
D_EVP
],
save_count
,
lengths
[
j
]);
EVP_EncryptInit
(
&
ctx
,
evp
,
key16
,
iv
);
Time_F
(
START
,
usertime
);
for
(
count
=
0
,
run
=
1
;
COND
(
save_count
*
4
*
lengths
[
0
]
/
lengths
[
j
]);
count
++
)
EVP_EncryptUpdate
(
&
ctx
,
buf
,
&
outl
,
buf
,
lengths
[
j
]);
EVP_EncryptFinal
(
&
ctx
,
buf
,
&
outl
);
d
=
Time_F
(
STOP
,
usertime
);
BIO_printf
(
bio_err
,
"%ld %s's in %.2fs
\n
"
,
count
,
names
[
D_EVP
],
d
);
results
[
D_EVP
][
j
]
=
((
double
)
count
)
/
d
*
lengths
[
j
];
}
}
RAND_pseudo_bytes
(
buf
,
36
);
RAND_pseudo_bytes
(
buf
,
36
);
#ifndef NO_RSA
#ifndef NO_RSA
for
(
j
=
0
;
j
<
RSA_NUM
;
j
++
)
for
(
j
=
0
;
j
<
RSA_NUM
;
j
++
)
...
@@ -1429,7 +1473,7 @@ end:
...
@@ -1429,7 +1473,7 @@ end:
EXIT
(
mret
);
EXIT
(
mret
);
}
}
static
void
print_message
(
char
*
s
,
long
num
,
int
length
)
static
void
print_message
(
c
onst
c
har
*
s
,
long
num
,
int
length
)
{
{
#ifdef SIGALRM
#ifdef SIGALRM
BIO_printf
(
bio_err
,
"Doing %s for %ds on %d size blocks: "
,
s
,
SECONDS
,
length
);
BIO_printf
(
bio_err
,
"Doing %s for %ds on %d size blocks: "
,
s
,
SECONDS
,
length
);
...
...
crypto/objects/o_names.c
浏览文件 @
646d5695
...
@@ -14,9 +14,9 @@ static int names_type_num=OBJ_NAME_TYPE_NUM;
...
@@ -14,9 +14,9 @@ static int names_type_num=OBJ_NAME_TYPE_NUM;
typedef
struct
name_funcs_st
typedef
struct
name_funcs_st
{
{
unsigned
long
(
*
hash_func
)();
unsigned
long
(
*
hash_func
)(
const
char
*
name
);
int
(
*
cmp_func
)();
int
(
*
cmp_func
)(
const
char
*
a
,
const
char
*
b
);
void
(
*
free_func
)();
void
(
*
free_func
)(
const
char
*
,
int
,
const
char
*
);
}
NAME_FUNCS
;
}
NAME_FUNCS
;
DECLARE_STACK_OF
(
NAME_FUNCS
)
DECLARE_STACK_OF
(
NAME_FUNCS
)
...
@@ -37,7 +37,7 @@ int OBJ_NAME_init(void)
...
@@ -37,7 +37,7 @@ int OBJ_NAME_init(void)
}
}
int
OBJ_NAME_new_index
(
unsigned
long
(
*
hash_func
)(
const
char
*
),
int
OBJ_NAME_new_index
(
unsigned
long
(
*
hash_func
)(
const
char
*
),
int
(
*
cmp_func
)(
const
void
*
,
const
void
*
),
int
(
*
cmp_func
)(
const
char
*
,
const
char
*
),
void
(
*
free_func
)(
const
char
*
,
int
,
const
char
*
))
void
(
*
free_func
)(
const
char
*
,
int
,
const
char
*
))
{
{
int
ret
;
int
ret
;
...
@@ -62,12 +62,12 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
...
@@ -62,12 +62,12 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
MemCheck_off
();
MemCheck_off
();
name_funcs
=
OPENSSL_malloc
(
sizeof
(
NAME_FUNCS
));
name_funcs
=
OPENSSL_malloc
(
sizeof
(
NAME_FUNCS
));
name_funcs
->
hash_func
=
lh_strhash
;
name_funcs
->
hash_func
=
lh_strhash
;
name_funcs
->
cmp_func
=
(
int
(
*
)())
strcmp
;
name_funcs
->
cmp_func
=
strcmp
;
name_funcs
->
free_func
=
0
;
/* NULL is often declared to
name_funcs
->
free_func
=
0
;
/* NULL is often declared to
* ((void *)0), which according
* ((void *)0), which according
* to Compaq C is not really
* to Compaq C is not really
* compatible with a function
* compatible with a function
* pointer.
-- Richard Levitte*/
* pointer.
-- Richard Levitte*/
sk_NAME_FUNCS_push
(
name_funcs_stack
,
name_funcs
);
sk_NAME_FUNCS_push
(
name_funcs_stack
,
name_funcs
);
MemCheck_on
();
MemCheck_on
();
}
}
...
@@ -132,7 +132,7 @@ const char *OBJ_NAME_get(const char *name, int type)
...
@@ -132,7 +132,7 @@ const char *OBJ_NAME_get(const char *name, int type)
on
.
type
=
type
;
on
.
type
=
type
;
for
(;;)
for
(;;)
{
{
ret
=
(
OBJ_NAME
*
)
lh_retrieve
(
names_lh
,
&
on
);
ret
=
(
OBJ_NAME
*
)
lh_retrieve
(
names_lh
,
&
on
);
if
(
ret
==
NULL
)
return
(
NULL
);
if
(
ret
==
NULL
)
return
(
NULL
);
if
((
ret
->
alias
)
&&
!
alias
)
if
((
ret
->
alias
)
&&
!
alias
)
...
@@ -224,12 +224,80 @@ int OBJ_NAME_remove(const char *name, int type)
...
@@ -224,12 +224,80 @@ int OBJ_NAME_remove(const char *name, int type)
return
(
0
);
return
(
0
);
}
}
struct
doall
{
int
type
;
void
(
*
fn
)(
const
OBJ_NAME
*
,
void
*
arg
);
void
*
arg
;
};
static
void
do_all_fn
(
const
OBJ_NAME
*
name
,
struct
doall
*
d
)
{
if
(
name
->
type
==
d
->
type
)
d
->
fn
(
name
,
d
->
arg
);
}
void
OBJ_NAME_do_all
(
int
type
,
void
(
*
fn
)(
const
OBJ_NAME
*
,
void
*
arg
),
void
*
arg
)
{
struct
doall
d
;
d
.
type
=
type
;
d
.
fn
=
fn
;
d
.
arg
=
arg
;
lh_doall_arg
(
names_lh
,
do_all_fn
,
&
d
);
}
struct
doall_sorted
{
int
type
;
int
n
;
const
OBJ_NAME
**
names
;
};
static
void
do_all_sorted_fn
(
const
OBJ_NAME
*
name
,
void
*
d_
)
{
struct
doall_sorted
*
d
=
d_
;
if
(
name
->
type
!=
d
->
type
)
return
;
d
->
names
[
d
->
n
++
]
=
name
;
}
static
int
do_all_sorted_cmp
(
const
void
*
n1_
,
const
void
*
n2_
)
{
const
OBJ_NAME
*
const
*
n1
=
n1_
;
const
OBJ_NAME
*
const
*
n2
=
n2_
;
return
strcmp
((
*
n1
)
->
name
,(
*
n2
)
->
name
);
}
void
OBJ_NAME_do_all_sorted
(
int
type
,
void
(
*
fn
)(
const
OBJ_NAME
*
,
void
*
arg
),
void
*
arg
)
{
struct
doall_sorted
d
;
int
n
;
d
.
type
=
type
;
d
.
names
=
OPENSSL_malloc
(
lh_num_items
(
names_lh
)
*
sizeof
*
d
.
names
);
d
.
n
=
0
;
OBJ_NAME_do_all
(
type
,
do_all_sorted_fn
,
&
d
);
qsort
(
d
.
names
,
d
.
n
,
sizeof
*
d
.
names
,
do_all_sorted_cmp
);
for
(
n
=
0
;
n
<
d
.
n
;
++
n
)
fn
(
d
.
names
[
n
],
arg
);
OPENSSL_free
(
d
.
names
);
}
static
int
free_type
;
static
int
free_type
;
static
void
names_lh_free
(
OBJ_NAME
*
onp
,
int
type
)
static
void
names_lh_free
(
OBJ_NAME
*
onp
,
int
type
)
{
{
if
(
onp
==
NULL
)
if
(
onp
==
NULL
)
return
;
return
;
if
((
free_type
<
0
)
||
(
free_type
==
onp
->
type
))
if
((
free_type
<
0
)
||
(
free_type
==
onp
->
type
))
{
{
...
...
crypto/objects/objects.h
浏览文件 @
646d5695
...
@@ -985,12 +985,17 @@ typedef struct obj_name_st
...
@@ -985,12 +985,17 @@ typedef struct obj_name_st
int
OBJ_NAME_init
(
void
);
int
OBJ_NAME_init
(
void
);
int
OBJ_NAME_new_index
(
unsigned
long
(
*
hash_func
)(
const
char
*
),
int
(
*
cmp_func
)(
const
void
*
,
const
void
*
),
int
OBJ_NAME_new_index
(
unsigned
long
(
*
hash_func
)(
const
char
*
),
void
(
*
free_func
)(
const
char
*
,
int
,
const
char
*
));
int
(
*
cmp_func
)(
const
char
*
,
const
char
*
),
void
(
*
free_func
)(
const
char
*
,
int
,
const
char
*
));
const
char
*
OBJ_NAME_get
(
const
char
*
name
,
int
type
);
const
char
*
OBJ_NAME_get
(
const
char
*
name
,
int
type
);
int
OBJ_NAME_add
(
const
char
*
name
,
int
type
,
const
char
*
data
);
int
OBJ_NAME_add
(
const
char
*
name
,
int
type
,
const
char
*
data
);
int
OBJ_NAME_remove
(
const
char
*
name
,
int
type
);
int
OBJ_NAME_remove
(
const
char
*
name
,
int
type
);
void
OBJ_NAME_cleanup
(
int
type
);
/* -1 for everything */
void
OBJ_NAME_cleanup
(
int
type
);
/* -1 for everything */
void
OBJ_NAME_do_all
(
int
type
,
void
(
*
fn
)(
const
OBJ_NAME
*
,
void
*
arg
),
void
*
arg
);
void
OBJ_NAME_do_all_sorted
(
int
type
,
void
(
*
fn
)(
const
OBJ_NAME
*
,
void
*
arg
),
void
*
arg
);
ASN1_OBJECT
*
OBJ_dup
(
ASN1_OBJECT
*
o
);
ASN1_OBJECT
*
OBJ_dup
(
ASN1_OBJECT
*
o
);
ASN1_OBJECT
*
OBJ_nid2obj
(
int
n
);
ASN1_OBJECT
*
OBJ_nid2obj
(
int
n
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录