Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
175d8287
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
175d8287
编写于
6月 27, 2016
作者:
S
snikandrova
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8147969: Print size of DH keysize when errors are encountered
Reviewed-by: coffeys
上级
04c10641
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
35 deletion
+53
-35
src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java
...e/classes/com/sun/crypto/provider/DHKeyPairGenerator.java
+17
-11
src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
...classes/com/sun/crypto/provider/DHParameterGenerator.java
+12
-11
src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java
...hare/classes/sun/security/pkcs11/P11KeyPairGenerator.java
+20
-11
src/share/classes/sun/security/ssl/ServerHandshaker.java
src/share/classes/sun/security/ssl/ServerHandshaker.java
+4
-2
未找到文件。
src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java
浏览文件 @
175d8287
...
...
@@ -71,6 +71,17 @@ public final class DHKeyPairGenerator extends KeyPairGeneratorSpi {
initialize
(
1024
,
null
);
}
private
static
void
checkKeySize
(
int
keysize
)
throws
InvalidParameterException
{
if
((
keysize
<
512
)
||
(
keysize
>
2048
)
||
((
keysize
&
0x3F
)
!=
0
))
{
throw
new
InvalidParameterException
(
"DH key size must be multiple of 64, and can only range "
+
"from 512 to 2048 (inclusive). "
+
"The specific key size "
+
keysize
+
" is not supported"
);
}
}
/**
* Initializes this key pair generator for a certain keysize and source of
* randomness.
...
...
@@ -80,12 +91,8 @@ public final class DHKeyPairGenerator extends KeyPairGeneratorSpi {
* @param random the source of randomness
*/
public
void
initialize
(
int
keysize
,
SecureRandom
random
)
{
if
((
keysize
<
512
)
||
(
keysize
>
2048
)
||
(
keysize
%
64
!=
0
))
{
throw
new
InvalidParameterException
(
"Keysize must be multiple "
+
"of 64, and can only range "
+
"from 512 to 2048 "
+
"(inclusive)"
);
}
checkKeySize
(
keysize
);
this
.
pSize
=
keysize
;
this
.
lSize
=
0
;
this
.
random
=
random
;
...
...
@@ -115,11 +122,10 @@ public final class DHKeyPairGenerator extends KeyPairGeneratorSpi {
params
=
(
DHParameterSpec
)
algParams
;
pSize
=
params
.
getP
().
bitLength
();
if
((
pSize
<
512
)
||
(
pSize
>
2048
)
||
(
pSize
%
64
!=
0
))
{
throw
new
InvalidAlgorithmParameterException
(
"Prime size must be multiple of 64, and can only range "
+
"from 512 to 2048 (inclusive)"
);
try
{
checkKeySize
(
pSize
);
}
catch
(
InvalidParameterException
ipe
)
{
throw
new
InvalidAlgorithmParameterException
(
ipe
.
getMessage
());
}
// exponent size is optional, could be 0
...
...
src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java
浏览文件 @
175d8287
...
...
@@ -59,12 +59,13 @@ extends AlgorithmParameterGeneratorSpi {
private
SecureRandom
random
=
null
;
private
static
void
checkKeySize
(
int
keysize
)
throws
InvalidAlgorithm
ParameterException
{
if
((
keysize
!=
2048
)
&&
throws
Invalid
ParameterException
{
if
((
keysize
!=
2048
)
&&
((
keysize
<
512
)
||
(
keysize
>
1024
)
||
(
keysize
%
64
!=
0
)))
{
throw
new
InvalidAlgorithmParameterException
(
"Keysize must be multiple of 64 ranging from "
+
"512 to 1024 (inclusive), or 2048"
);
throw
new
InvalidParameterException
(
"DH key size must be multiple of 64 and range "
+
"from 512 to 1024 (inclusive), or 2048. "
+
"The specific key size "
+
keysize
+
" is not supported"
);
}
}
...
...
@@ -78,11 +79,7 @@ extends AlgorithmParameterGeneratorSpi {
*/
protected
void
engineInit
(
int
keysize
,
SecureRandom
random
)
{
// Re-uses DSA parameters and thus have the same range
try
{
checkKeySize
(
keysize
);
}
catch
(
InvalidAlgorithmParameterException
ex
)
{
throw
new
InvalidParameterException
(
ex
.
getMessage
());
}
checkKeySize
(
keysize
);
this
.
primeSize
=
keysize
;
this
.
random
=
random
;
}
...
...
@@ -111,7 +108,11 @@ extends AlgorithmParameterGeneratorSpi {
primeSize
=
dhParamSpec
.
getPrimeSize
();
// Re-uses DSA parameters and thus have the same range
checkKeySize
(
primeSize
);
try
{
checkKeySize
(
primeSize
);
}
catch
(
InvalidParameterException
ipe
)
{
throw
new
InvalidAlgorithmParameterException
(
ipe
.
getMessage
());
}
exponentSize
=
dhParamSpec
.
getExponentSize
();
if
(
exponentSize
<=
0
)
{
...
...
src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java
浏览文件 @
175d8287
...
...
@@ -228,29 +228,34 @@ final class P11KeyPairGenerator extends KeyPairGeneratorSpi {
// check native range first
if
((
minKeySize
!=
-
1
)
&&
(
keySize
<
minKeySize
))
{
throw
new
InvalidAlgorithmParameterException
(
algorithm
+
" key must be at least "
+
minKeySize
+
" bits"
);
" key must be at least "
+
minKeySize
+
" bits. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
if
((
maxKeySize
!=
-
1
)
&&
(
keySize
>
maxKeySize
))
{
throw
new
InvalidAlgorithmParameterException
(
algorithm
+
" key must be at most "
+
maxKeySize
+
" bits"
);
" key must be at most "
+
maxKeySize
+
" bits. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
// check our own algorithm-specific limits also
if
(
algorithm
.
equals
(
"EC"
))
{
if
(
keySize
<
112
)
{
throw
new
InvalidAlgorithmParameterException
(
"Key size must be at least 112 bit"
);
throw
new
InvalidAlgorithmParameterException
(
"EC key size must be at least 112 bit. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
if
(
keySize
>
2048
)
{
// sanity check, nobody really wants keys this large
throw
new
InvalidAlgorithmParameterException
(
"Key size must be at most 2048 bit"
);
throw
new
InvalidAlgorithmParameterException
(
"EC key size must be at most 2048 bit. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
}
else
{
// RSA, DH, DSA
if
(
keySize
<
512
)
{
throw
new
InvalidAlgorithmParameterException
(
"Key size must be at least 512 bit"
);
throw
new
InvalidAlgorithmParameterException
(
algorithm
+
" key size must be at least 512 bit. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
if
(
algorithm
.
equals
(
"RSA"
))
{
BigInteger
tmpExponent
=
rsaPublicExponent
;
...
...
@@ -271,8 +276,10 @@ final class P11KeyPairGenerator extends KeyPairGeneratorSpi {
if
(
algorithm
.
equals
(
"DH"
)
&&
(
params
!=
null
))
{
// sanity check, nobody really wants keys this large
if
(
keySize
>
64
*
1024
)
{
throw
new
InvalidAlgorithmParameterException
(
"Key size must be at most 65536 bit"
);
throw
new
InvalidAlgorithmParameterException
(
"DH key size must be at most 65536 bit. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
}
else
{
// this restriction is in the spec for DSA
...
...
@@ -282,7 +289,9 @@ final class P11KeyPairGenerator extends KeyPairGeneratorSpi {
((
keySize
>
1024
)
||
((
keySize
&
0x3f
)
!=
0
)))
{
throw
new
InvalidAlgorithmParameterException
(
algorithm
+
" key must be multiples of 64 if less than 1024 bits"
+
", or 2048 bits"
);
", or 2048 bits. "
+
"The specific key size "
+
keySize
+
" is not supported"
);
}
}
}
...
...
src/share/classes/sun/security/ssl/ServerHandshaker.java
浏览文件 @
175d8287
...
...
@@ -137,8 +137,10 @@ final class ServerHandshaker extends Handshaker {
customizedDHKeySize
=
Integer
.
parseUnsignedInt
(
property
);
if
(
customizedDHKeySize
<
1024
||
customizedDHKeySize
>
2048
)
{
throw
new
IllegalArgumentException
(
"Customized DH key size should be positive integer "
+
"between 1024 and 2048 bits, inclusive"
);
"Unsupported customized DH key size: "
+
customizedDHKeySize
+
". "
+
"The key size can only range from 1024"
+
" to 2048 (inclusive)"
);
}
}
catch
(
NumberFormatException
nfe
)
{
throw
new
IllegalArgumentException
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录