Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
c7159e6a
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看板
提交
c7159e6a
编写于
8月 14, 2013
作者:
A
ascarpino
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8022669: OAEPParameterSpec does not work if MGF1ParameterSpec is set to SHA2 algorithms
Reviewed-by: mullan
上级
0d80ac64
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
67 addition
and
6 deletion
+67
-6
src/share/classes/sun/security/rsa/RSAPadding.java
src/share/classes/sun/security/rsa/RSAPadding.java
+2
-2
test/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java
test/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java
+65
-4
未找到文件。
src/share/classes/sun/security/rsa/RSAPadding.java
浏览文件 @
c7159e6a
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003,
2013
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -458,7 +458,7 @@ public final class RSAPadding {
private
void
mgf1
(
byte
[]
seed
,
int
seedOfs
,
int
seedLen
,
byte
[]
out
,
int
outOfs
,
int
maskLen
)
throws
BadPaddingException
{
byte
[]
C
=
new
byte
[
4
];
// 32 bit counter
byte
[]
digest
=
new
byte
[
20
];
// 20 bytes is length of SHA-1 digest
byte
[]
digest
=
new
byte
[
mgfMd
.
getDigestLength
()];
while
(
maskLen
>
0
)
{
mgfMd
.
update
(
seed
,
seedOfs
,
seedLen
);
mgfMd
.
update
(
C
);
...
...
test/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java
浏览文件 @
c7159e6a
...
...
@@ -23,7 +23,7 @@
/*
* @test
* @bug 8020081
* @bug 8020081
8022669
* @summary encryption/decryption test for using OAEPPadding with
* OAEPParameterSpec specified and not specified during a Cipher.init().
* @author Anthony Scarpino
...
...
@@ -62,20 +62,74 @@ public class TestOAEPPadding {
publicKey
=
(
RSAPublicKey
)
kp
.
getPublic
();
// Test using a spec with each digest algorithm case
// MD5
test
(
new
OAEPParameterSpec
(
"MD5"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"MD5"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"MD5"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"MD5"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"MD5"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
// SHA1
test
(
new
OAEPParameterSpec
(
"SHA1"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA1"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA1"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA1"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA1"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
// For default OAEPParameterSpec case (SHA1)
test
(
null
);
// SHA-224
test
(
new
OAEPParameterSpec
(
"SHA-224"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-224"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-224"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-224"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-224"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
// SHA-256
test
(
new
OAEPParameterSpec
(
"SHA-256"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-256"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-256"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-256"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-256"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
// SHA-384
test
(
new
OAEPParameterSpec
(
"SHA-384"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-384"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-384"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-384"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-384"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
// SHA-512
test
(
new
OAEPParameterSpec
(
"SHA-512"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA1
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-512"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA224
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-512"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA256
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-512"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA384
,
PSource
.
PSpecified
.
DEFAULT
));
test
(
new
OAEPParameterSpec
(
"SHA-512"
,
"MGF1"
,
MGF1ParameterSpec
.
SHA512
,
PSource
.
PSpecified
.
DEFAULT
));
if
(
failed
)
{
throw
new
Exception
(
"Test failed"
);
}
...
...
@@ -149,9 +203,16 @@ public class TestOAEPPadding {
private
static
void
testEncryptDecrypt
(
OAEPParameterSpec
spec
,
int
dataLength
)
throws
Exception
{
System
.
out
.
println
(
"Testing OAEP with hash "
+
((
spec
!=
null
)
?
spec
.
getDigestAlgorithm
()
:
"Default"
)
+
", "
+
dataLength
+
" bytes"
);
System
.
out
.
print
(
"Testing OAEP with hash "
);
if
(
spec
!=
null
)
{
System
.
out
.
print
(
spec
.
getDigestAlgorithm
()
+
" and MGF "
+
((
MGF1ParameterSpec
)
spec
.
getMGFParameters
()).
getDigestAlgorithm
());
}
else
{
System
.
out
.
print
(
"Default"
);
}
System
.
out
.
println
(
", "
+
dataLength
+
" bytes"
);
Cipher
c
=
Cipher
.
getInstance
(
"RSA/ECB/OAEPPadding"
,
cp
);
if
(
spec
!=
null
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录