Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
openssl
提交
0b33dac3
O
openssl
项目概览
btwise
/
openssl
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0b33dac3
编写于
4月 04, 2006
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
New function to retrieve ASN1 info on public key algorithms. New command
line option to print out info.
上级
e2bce377
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
81 addition
and
9 deletion
+81
-9
CHANGES
CHANGES
+5
-0
apps/openssl.c
apps/openssl.c
+48
-5
apps/progs.h
apps/progs.h
+1
-0
apps/progs.pl
apps/progs.pl
+1
-0
crypto/asn1/ameth_lib.c
crypto/asn1/ameth_lib.c
+19
-0
crypto/asn1/asn1_locl.h
crypto/asn1/asn1_locl.h
+0
-3
crypto/dh/dh_ameth.c
crypto/dh/dh_ameth.c
+1
-1
crypto/evp/evp.h
crypto/evp/evp.h
+6
-0
未找到文件。
CHANGES
浏览文件 @
0b33dac3
...
...
@@ -4,6 +4,11 @@
Changes between 0.9.8a and 0.9.9 [xx XXX xxxx]
*) New function EVP_PKEY_asn1_get0_info() to retrieve information about
public key algorithms. New option to openssl utility:
"list-public-key-algorithms" to print out info.
[Steve Henson]
*) Implement the Supported Elliptic Curves Extension for
ECC ciphersuites from draft-ietf-tls-ecc-12.txt.
[Douglas Stebila]
...
...
apps/openssl.c
浏览文件 @
0b33dac3
...
...
@@ -141,6 +141,7 @@ static unsigned long MS_CALLBACK hash(const void *a_void);
static
int
MS_CALLBACK
cmp
(
const
void
*
a_void
,
const
void
*
b_void
);
static
LHASH
*
prog_init
(
void
);
static
int
do_cmd
(
LHASH
*
prog
,
int
argc
,
char
*
argv
[]);
static
void
list_pkey
(
BIO
*
out
);
char
*
default_config_file
=
NULL
;
/* Make sure there is only one when MONOLITH is defined */
...
...
@@ -367,6 +368,7 @@ end:
#define LIST_STANDARD_COMMANDS "list-standard-commands"
#define LIST_MESSAGE_DIGEST_COMMANDS "list-message-digest-commands"
#define LIST_CIPHER_COMMANDS "list-cipher-commands"
#define LIST_PUBLIC_KEY_ALGORITHMS "list-public-key-algorithms"
static
int
do_cmd
(
LHASH
*
prog
,
int
argc
,
char
*
argv
[])
{
...
...
@@ -409,7 +411,8 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
}
else
if
((
strcmp
(
argv
[
0
],
LIST_STANDARD_COMMANDS
)
==
0
)
||
(
strcmp
(
argv
[
0
],
LIST_MESSAGE_DIGEST_COMMANDS
)
==
0
)
||
(
strcmp
(
argv
[
0
],
LIST_CIPHER_COMMANDS
)
==
0
))
(
strcmp
(
argv
[
0
],
LIST_CIPHER_COMMANDS
)
==
0
)
||
(
strcmp
(
argv
[
0
],
LIST_PUBLIC_KEY_ALGORITHMS
)
==
0
))
{
int
list_type
;
BIO
*
bio_stdout
;
...
...
@@ -418,6 +421,8 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
list_type
=
FUNC_TYPE_GENERAL
;
else
if
(
strcmp
(
argv
[
0
],
LIST_MESSAGE_DIGEST_COMMANDS
)
==
0
)
list_type
=
FUNC_TYPE_MD
;
else
if
(
strcmp
(
argv
[
0
],
LIST_PUBLIC_KEY_ALGORITHMS
)
==
0
)
list_type
=
FUNC_TYPE_PKEY
;
else
/* strcmp(argv[0],LIST_CIPHER_COMMANDS) == 0 */
list_type
=
FUNC_TYPE_CIPHER
;
bio_stdout
=
BIO_new_fp
(
stdout
,
BIO_NOCLOSE
);
...
...
@@ -427,10 +432,15 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
bio_stdout
=
BIO_push
(
tmpbio
,
bio_stdout
);
}
#endif
for
(
fp
=
functions
;
fp
->
name
!=
NULL
;
fp
++
)
if
(
fp
->
type
==
list_type
)
BIO_printf
(
bio_stdout
,
"%s
\n
"
,
fp
->
name
);
if
(
list_type
==
FUNC_TYPE_PKEY
)
list_pkey
(
bio_stdout
);
else
{
for
(
fp
=
functions
;
fp
->
name
!=
NULL
;
fp
++
)
if
(
fp
->
type
==
list_type
)
BIO_printf
(
bio_stdout
,
"%s
\n
"
,
fp
->
name
);
}
BIO_free_all
(
bio_stdout
);
ret
=
0
;
goto
end
;
...
...
@@ -485,6 +495,39 @@ static int SortFnByName(const void *_f1,const void *_f2)
return
strcmp
(
f1
->
name
,
f2
->
name
);
}
static
void
list_pkey
(
BIO
*
out
)
{
int
i
;
for
(
i
=
0
;
i
<
EVP_PKEY_asn1_get_count
();
i
++
)
{
const
EVP_PKEY_ASN1_METHOD
*
ameth
;
int
pkey_id
,
pkey_base_id
,
pkey_flags
;
const
char
*
pinfo
,
*
pem_str
;
ameth
=
EVP_PKEY_asn1_get0
(
i
);
EVP_PKEY_asn1_get0_info
(
&
pkey_id
,
&
pkey_base_id
,
&
pkey_flags
,
&
pinfo
,
&
pem_str
,
ameth
);
if
(
pkey_flags
&
ASN1_PKEY_ALIAS
)
{
BIO_printf
(
out
,
"Name: %s
\n
"
,
OBJ_nid2ln
(
pkey_id
));
BIO_printf
(
out
,
"
\t
Type: Alias to %s
\n
"
,
OBJ_nid2ln
(
pkey_base_id
));
}
else
{
BIO_printf
(
out
,
"Name: %s
\n
"
,
pinfo
);
BIO_printf
(
out
,
"
\t
Type: %s Algorithm
\n
"
,
pkey_flags
&
ASN1_PKEY_DYNAMIC
?
"External"
:
"Builtin"
);
BIO_printf
(
out
,
"
\t
OID: %s
\n
"
,
OBJ_nid2ln
(
pkey_id
));
if
(
pem_str
==
NULL
)
pem_str
=
"(none)"
;
BIO_printf
(
out
,
"
\t
PEM string: %s
\n
"
,
pem_str
);
}
}
}
static
LHASH
*
prog_init
(
void
)
{
LHASH
*
ret
;
...
...
apps/progs.h
浏览文件 @
0b33dac3
...
...
@@ -47,6 +47,7 @@ extern int ts_main(int argc,char *argv[]);
#define FUNC_TYPE_GENERAL 1
#define FUNC_TYPE_MD 2
#define FUNC_TYPE_CIPHER 3
#define FUNC_TYPE_PKEY 4
typedef
struct
{
int
type
;
...
...
apps/progs.pl
浏览文件 @
0b33dac3
...
...
@@ -13,6 +13,7 @@ print <<'EOF';
#define FUNC_TYPE_GENERAL 1
#define FUNC_TYPE_MD 2
#define FUNC_TYPE_CIPHER 3
#define FUNC_TYPE_PKEY 4
typedef struct {
int type;
...
...
crypto/asn1/ameth_lib.c
浏览文件 @
0b33dac3
...
...
@@ -186,6 +186,25 @@ int EVP_PKEY_asn1_add(const EVP_PKEY_ASN1_METHOD *ameth)
return
1
;
}
int
EVP_PKEY_asn1_get0_info
(
int
*
ppkey_id
,
int
*
ppkey_base_id
,
int
*
ppkey_flags
,
const
char
**
pinfo
,
const
char
**
ppem_str
,
const
EVP_PKEY_ASN1_METHOD
*
ameth
)
{
if
(
!
ameth
)
return
0
;
if
(
ppkey_id
)
*
ppkey_id
=
ameth
->
pkey_id
;
if
(
ppkey_base_id
)
*
ppkey_base_id
=
ameth
->
pkey_base_id
;
if
(
ppkey_flags
)
*
ppkey_flags
=
ameth
->
pkey_flags
;
if
(
pinfo
)
*
pinfo
=
ameth
->
info
;
if
(
ppem_str
)
*
ppem_str
=
ameth
->
pem_str
;
return
1
;
}
EVP_PKEY_ASN1_METHOD
*
EVP_PKEY_asn1_new
(
int
id
,
const
char
*
pem_str
,
const
char
*
info
)
{
...
...
crypto/asn1/asn1_locl.h
浏览文件 @
0b33dac3
...
...
@@ -71,9 +71,6 @@ struct asn1_pctx_st
/* ASN1 public key method structure */
#define ASN1_PKEY_ALIAS 0x1
#define ASN1_PKEY_DYNAMIC 0x2
struct
evp_pkey_asn1_method_st
{
int
pkey_id
;
...
...
crypto/dh/dh_ameth.c
浏览文件 @
0b33dac3
...
...
@@ -149,7 +149,7 @@ const EVP_PKEY_ASN1_METHOD dh_asn1_meth =
EVP_PKEY_DH
,
0
,
"
dh
"
,
"
DH
"
,
"OpenSSL PKCS#3 DH method"
,
0
,
...
...
crypto/evp/evp.h
浏览文件 @
0b33dac3
...
...
@@ -856,11 +856,17 @@ int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
EVP_PBE_KEYGEN
*
keygen
);
void
EVP_PBE_cleanup
(
void
);
#define ASN1_PKEY_ALIAS 0x1
#define ASN1_PKEY_DYNAMIC 0x2
int
EVP_PKEY_asn1_get_count
(
void
);
const
EVP_PKEY_ASN1_METHOD
*
EVP_PKEY_asn1_get0
(
int
idx
);
const
EVP_PKEY_ASN1_METHOD
*
EVP_PKEY_asn1_find
(
int
type
);
const
EVP_PKEY_ASN1_METHOD
*
EVP_PKEY_asn1_find_str
(
const
char
*
str
,
int
len
);
int
EVP_PKEY_asn1_add
(
const
EVP_PKEY_ASN1_METHOD
*
ameth
);
int
EVP_PKEY_asn1_get0_info
(
int
*
ppkey_id
,
int
*
pkey_base_id
,
int
*
ppkey_flags
,
const
char
**
pinfo
,
const
char
**
ppem_str
,
const
EVP_PKEY_ASN1_METHOD
*
ameth
);
EVP_PKEY_ASN1_METHOD
*
EVP_PKEY_asn1_new
(
int
id
,
const
char
*
pem_str
,
const
char
*
info
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录