Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
54d853eb
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看板
You need to sign in or sign up before continuing.
提交
54d853eb
编写于
4月 11, 2006
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add support for setting keybits and public exponent value for pkey RSA keygen.
上级
f5cda4cb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
66 addition
and
0 deletion
+66
-0
crypto/bn/bn.h
crypto/bn/bn.h
+1
-0
crypto/bn/bn_print.c
crypto/bn/bn_print.c
+21
-0
crypto/rsa/rsa.h
crypto/rsa/rsa.h
+11
-0
crypto/rsa/rsa_pmeth.c
crypto/rsa/rsa_pmeth.c
+33
-0
未找到文件。
crypto/bn/bn.h
浏览文件 @
54d853eb
...
...
@@ -447,6 +447,7 @@ char * BN_bn2hex(const BIGNUM *a);
char
*
BN_bn2dec
(
const
BIGNUM
*
a
);
int
BN_hex2bn
(
BIGNUM
**
a
,
const
char
*
str
);
int
BN_dec2bn
(
BIGNUM
**
a
,
const
char
*
str
);
int
BN_asc2bn
(
BIGNUM
**
a
,
const
char
*
str
);
int
BN_gcd
(
BIGNUM
*
r
,
const
BIGNUM
*
a
,
const
BIGNUM
*
b
,
BN_CTX
*
ctx
);
int
BN_kronecker
(
const
BIGNUM
*
a
,
const
BIGNUM
*
b
,
BN_CTX
*
ctx
);
/* returns -2 for error */
BIGNUM
*
BN_mod_inverse
(
BIGNUM
*
ret
,
...
...
crypto/bn/bn_print.c
浏览文件 @
54d853eb
...
...
@@ -294,6 +294,27 @@ err:
return
(
0
);
}
int
BN_asc2bn
(
BIGNUM
**
bn
,
const
char
*
a
)
{
const
char
*
p
=
a
;
if
(
*
p
==
'-'
)
p
++
;
if
(
p
[
0
]
==
'0'
&&
(
p
[
1
]
==
'X'
||
p
[
1
]
==
'x'
))
{
if
(
!
BN_hex2bn
(
bn
,
p
+
2
))
return
0
;
}
else
{
if
(
!
BN_dec2bn
(
bn
,
p
))
return
0
;
}
if
(
*
a
==
'-'
)
(
*
bn
)
->
neg
=
1
;
return
1
;
}
#ifndef OPENSSL_NO_BIO
#ifndef OPENSSL_NO_FP_API
int
BN_print_fp
(
FILE
*
fp
,
const
BIGNUM
*
a
)
...
...
crypto/rsa/rsa.h
浏览文件 @
54d853eb
...
...
@@ -203,9 +203,20 @@ struct rsa_st
EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \
len, NULL)
#define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \
EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL)
#define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \
EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \
EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp)
#define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1)
#define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2)
#define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3)
#define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4)
#define RSA_PKCS1_PADDING 1
#define RSA_SSLV23_PADDING 2
#define RSA_NO_PADDING 3
...
...
crypto/rsa/rsa_pmeth.c
浏览文件 @
54d853eb
...
...
@@ -386,6 +386,18 @@ static int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
rctx
->
saltlen
=
p1
;
return
1
;
case
EVP_PKEY_CTRL_RSA_KEYGEN_BITS
:
if
(
p1
<
256
)
return
-
2
;
rctx
->
nbits
=
p1
;
return
1
;
case
EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP
:
if
(
!
p2
)
return
-
2
;
rctx
->
pub_exp
=
p2
;
return
1
;
case
EVP_PKEY_CTRL_MD
:
if
(
!
check_padding_md
(
p2
,
rctx
->
pad_mode
))
return
0
;
...
...
@@ -422,12 +434,33 @@ static int pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx,
return
-
2
;
return
EVP_PKEY_CTX_set_rsa_padding
(
ctx
,
pm
);
}
if
(
!
strcmp
(
type
,
"rsa_pss_saltlen"
))
{
int
saltlen
;
saltlen
=
atoi
(
value
);
return
EVP_PKEY_CTX_set_rsa_pss_saltlen
(
ctx
,
saltlen
);
}
if
(
!
strcmp
(
type
,
"rsa_keygen_bits"
))
{
int
nbits
;
nbits
=
atoi
(
value
);
return
EVP_PKEY_CTX_set_rsa_keygen_bits
(
ctx
,
nbits
);
}
if
(
!
strcmp
(
type
,
"rsa_keygen_pubexp"
))
{
int
ret
;
BIGNUM
*
pubexp
=
NULL
;
if
(
!
BN_asc2bn
(
&
pubexp
,
value
))
return
0
;
ret
=
EVP_PKEY_CTX_set_rsa_keygen_pubexp
(
ctx
,
pubexp
);
if
(
ret
<=
0
)
BN_free
(
pubexp
);
return
ret
;
}
return
-
2
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录