Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
9064e8de
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看板
提交
9064e8de
编写于
12月 13, 2010
作者:
V
vinnie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6799854: CodeSigner.hashCode() does not work with serialization
Reviewed-by: mullan
上级
53b2d360
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
85 addition
and
4 deletion
+85
-4
src/share/classes/java/security/CodeSigner.java
src/share/classes/java/security/CodeSigner.java
+7
-1
src/share/classes/java/security/Timestamp.java
src/share/classes/java/security/Timestamp.java
+8
-1
src/share/native/sun/security/ec/ECC_JNI.cpp
src/share/native/sun/security/ec/ECC_JNI.cpp
+2
-2
test/java/security/CodeSigner/Serialize.java
test/java/security/CodeSigner/Serialize.java
+68
-0
test/java/security/CodeSigner/cert_file
test/java/security/CodeSigner/cert_file
+0
-0
未找到文件。
src/share/classes/java/security/CodeSigner.java
浏览文件 @
9064e8de
...
...
@@ -25,7 +25,7 @@
package
java.security
;
import
java.io.
Serializable
;
import
java.io.
*
;
import
java.security.cert.CRL
;
import
java.security.cert.CertPath
;
import
sun.misc.JavaSecurityCodeSignerAccess
;
...
...
@@ -205,4 +205,10 @@ public final class CodeSigner implements Serializable {
});
}
// Explicitly reset hash code value to -1
private
void
readObject
(
ObjectInputStream
ois
)
throws
IOException
,
ClassNotFoundException
{
ois
.
defaultReadObject
();
myhash
=
-
1
;
}
}
src/share/classes/java/security/Timestamp.java
浏览文件 @
9064e8de
...
...
@@ -25,7 +25,7 @@
package
java.security
;
import
java.io.
Serializable
;
import
java.io.
*
;
import
java.security.cert.Certificate
;
import
java.security.cert.CertPath
;
import
java.security.cert.X509Extension
;
...
...
@@ -153,4 +153,11 @@ public final class Timestamp implements Serializable {
sb
.
append
(
")"
);
return
sb
.
toString
();
}
// Explicitly reset hash code value to -1
private
void
readObject
(
ObjectInputStream
ois
)
throws
IOException
,
ClassNotFoundException
{
ois
.
defaultReadObject
();
myhash
=
-
1
;
}
}
src/share/native/sun/security/ec/ECC_JNI.cpp
浏览文件 @
9064e8de
...
...
@@ -89,7 +89,7 @@ JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
// Fill a new ECParams using the supplied OID
if
(
EC_DecodeParams
(
&
params_item
,
&
ecparams
,
0
)
!=
SECSuccess
)
{
/* bad curve OID */
ThrowException
(
env
,
INVALID_ALGORITHM_PARAMETER_EXCEPTION
);
ThrowException
(
env
,
(
char
*
)
INVALID_ALGORITHM_PARAMETER_EXCEPTION
);
goto
cleanup
;
}
...
...
@@ -101,7 +101,7 @@ JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
// Generate the new keypair (using the supplied seed)
if
(
EC_NewKey
(
ecparams
,
&
privKey
,
(
unsigned
char
*
)
pSeedBuffer
,
jSeedLength
,
0
)
!=
SECSuccess
)
{
ThrowException
(
env
,
KEY_EXCEPTION
);
ThrowException
(
env
,
(
char
*
)
KEY_EXCEPTION
);
goto
cleanup
;
}
...
...
test/java/security/CodeSigner/Serialize.java
0 → 100644
浏览文件 @
9064e8de
/*
* Copyright (c) 2010, 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @bug 6799854
* @summary CodeSigner.hashCode() does not work with serialization
*/
import
java.io.*
;
import
java.security.CodeSigner
;
import
java.security.Timestamp
;
import
java.security.cert.*
;
import
java.util.Collections
;
import
java.util.Date
;
public
class
Serialize
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// Create a certpath consisting of one certificate
File
f
=
new
File
(
System
.
getProperty
(
"test.src"
,
"."
),
"cert_file"
);
FileInputStream
fis
=
new
FileInputStream
(
f
);
CertificateFactory
cf
=
CertificateFactory
.
getInstance
(
"X.509"
);
Certificate
c
=
cf
.
generateCertificate
(
fis
);
fis
.
close
();
CertPath
cp
=
cf
.
generateCertPath
(
Collections
.
singletonList
(
c
));
// Create a code signer
CodeSigner
cs
=
new
CodeSigner
(
cp
,
new
Timestamp
(
new
Date
(),
cp
));
// Serialize the code signer
ByteArrayOutputStream
byteOut
=
new
ByteArrayOutputStream
();
ObjectOutputStream
out
=
new
ObjectOutputStream
(
byteOut
);
out
.
writeObject
(
cs
);
out
.
close
();
// Deserialize the code signer
byte
[]
data
=
byteOut
.
toByteArray
();
CodeSigner
cs2
=
(
CodeSigner
)
new
ObjectInputStream
(
new
ByteArrayInputStream
(
data
)).
readObject
();
// Test for equality
if
(!
cs
.
equals
(
cs2
)
||
cs
.
hashCode
()
!=
cs2
.
hashCode
())
{
throw
new
Exception
(
"CodeSigner serialization test FAILED"
);
}
}
}
test/java/security/CodeSigner/cert_file
0 → 100644
浏览文件 @
9064e8de
文件已添加
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录