Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
2d6c1a54
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看板
提交
2d6c1a54
编写于
3月 16, 2011
作者:
D
dholmes
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
3e4dfc95
e9a7550a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
121 addition
and
36 deletion
+121
-36
src/share/classes/java/lang/ClassLoader.java
src/share/classes/java/lang/ClassLoader.java
+19
-11
src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java
...security/provider/certpath/AdaptableX509CertSelector.java
+37
-8
src/share/classes/sun/security/provider/certpath/ForwardBuilder.java
...lasses/sun/security/provider/certpath/ForwardBuilder.java
+14
-12
src/share/classes/sun/security/ssl/ClientHandshaker.java
src/share/classes/sun/security/ssl/ClientHandshaker.java
+3
-2
src/share/classes/sun/security/ssl/SunJSSE.java
src/share/classes/sun/security/ssl/SunJSSE.java
+3
-1
test/sun/security/ssl/javax/net/ssl/GetInstance.java
test/sun/security/ssl/javax/net/ssl/GetInstance.java
+45
-2
未找到文件。
src/share/classes/java/lang/ClassLoader.java
浏览文件 @
2d6c1a54
/*
* Copyright (c) 1994, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1994, 201
1
, 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
...
...
@@ -1626,20 +1626,28 @@ public abstract class ClassLoader {
* @since 1.2
*/
protected
Package
getPackage
(
String
name
)
{
Package
pkg
;
synchronized
(
packages
)
{
Package
pkg
=
packages
.
get
(
name
);
if
(
pkg
==
null
)
{
if
(
parent
!=
null
)
{
pkg
=
parent
.
getPackage
(
name
);
}
else
{
pkg
=
Package
.
getSystemPackage
(
name
);
}
if
(
pkg
!=
null
)
{
packages
.
put
(
name
,
pkg
);
pkg
=
packages
.
get
(
name
);
}
if
(
pkg
==
null
)
{
if
(
parent
!=
null
)
{
pkg
=
parent
.
getPackage
(
name
);
}
else
{
pkg
=
Package
.
getSystemPackage
(
name
);
}
if
(
pkg
!=
null
)
{
synchronized
(
packages
)
{
Package
pkg2
=
packages
.
get
(
name
);
if
(
pkg2
==
null
)
{
packages
.
put
(
name
,
pkg
);
}
else
{
pkg
=
pkg2
;
}
}
}
return
pkg
;
}
return
pkg
;
}
/**
...
...
src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java
浏览文件 @
2d6c1a54
...
...
@@ -46,10 +46,16 @@ import sun.security.x509.AuthorityKeyIdentifierExtension;
*/
class
AdaptableX509CertSelector
extends
X509CertSelector
{
// The start date of a validity period.
private
Date
startDate
=
null
;
private
Date
startDate
;
// The end date of a validity period.
private
Date
endDate
=
null
;
private
Date
endDate
;
// Is subject key identifier sensitive?
private
boolean
isSKIDSensitive
=
false
;
// Is serial number sensitive?
private
boolean
isSNSensitive
=
false
;
AdaptableX509CertSelector
()
{
super
();
...
...
@@ -97,15 +103,24 @@ class AdaptableX509CertSelector extends X509CertSelector {
if
(
akidext
!=
null
)
{
KeyIdentifier
akid
=
(
KeyIdentifier
)
akidext
.
get
(
akidext
.
KEY_ID
);
if
(
akid
!=
null
)
{
DerOutputStream
derout
=
new
DerOutputStream
();
derout
.
putOctetString
(
akid
.
getIdentifier
());
super
.
setSubjectKeyIdentifier
(
derout
.
toByteArray
());
// Do not override the previous setting
if
(
getSubjectKeyIdentifier
()
==
null
)
{
DerOutputStream
derout
=
new
DerOutputStream
();
derout
.
putOctetString
(
akid
.
getIdentifier
());
super
.
setSubjectKeyIdentifier
(
derout
.
toByteArray
());
isSKIDSensitive
=
true
;
}
}
SerialNumber
asn
=
(
SerialNumber
)
akidext
.
get
(
akidext
.
SERIAL_NUMBER
);
if
(
asn
!=
null
)
{
super
.
setSerialNumber
(
asn
.
getNumber
());
// Do not override the previous setting
if
(
getSerialNumber
()
==
null
)
{
super
.
setSerialNumber
(
asn
.
getNumber
());
isSNSensitive
=
true
;
}
}
// the subject criterion should be set by the caller.
...
...
@@ -148,11 +163,25 @@ class AdaptableX509CertSelector extends X509CertSelector {
}
}
if
(
version
<
3
||
xcert
.
getExtensionValue
(
"2.5.29.14"
)
==
null
)
{
// If no SubjectKeyIdentifier extension, don't bother to check it.
// If no SubjectKeyIdentifier extension, don't bother to check it.
if
(
isSKIDSensitive
&&
(
version
<
3
||
xcert
.
getExtensionValue
(
"2.5.29.14"
)
==
null
))
{
setSubjectKeyIdentifier
(
null
);
}
// In practice, a CA may replace its root certificate and require that
// the existing certificate is still valid, even if the AKID extension
// does not match the replacement root certificate fields.
//
// Conservatively, we only support the replacement for version 1 and
// version 2 certificate. As for version 2, the certificate extension
// may contain sensitive information (for example, policies), the
// AKID need to be respected to seek the exact certificate in case
// of key or certificate abuse.
if
(
isSNSensitive
&&
version
<
3
)
{
setSerialNumber
(
null
);
}
return
super
.
match
(
cert
);
}
...
...
src/share/classes/sun/security/provider/certpath/ForwardBuilder.java
浏览文件 @
2d6c1a54
...
...
@@ -243,12 +243,6 @@ class ForwardBuilder extends Builder {
caTargetSelector
.
setPolicy
(
getMatchingPolicies
());
}
/*
* Require CA certs with a pathLenConstraint that allows
* at least as many CA certs that have already been traversed
*/
caTargetSelector
.
setBasicConstraints
(
currentState
.
traversedCACerts
);
sel
=
caTargetSelector
;
}
else
{
...
...
@@ -282,12 +276,6 @@ class ForwardBuilder extends Builder {
CertPathHelper
.
setPathToNames
(
caSelector
,
currentState
.
subjectNamesTraversed
);
/*
* Require CA certs with a pathLenConstraint that allows
* at least as many CA certs that have already been traversed
*/
caSelector
.
setBasicConstraints
(
currentState
.
traversedCACerts
);
/*
* Facilitate certification path construction with authority
* key identifier and subject key identifier.
...
...
@@ -305,6 +293,14 @@ class ForwardBuilder extends Builder {
sel
=
caSelector
;
}
/*
* For compatibility, conservatively, we don't check the path
* length constraint of trusted anchors. Please don't set the
* basic constraints criterion unless the trusted certificate
* matching is completed.
*/
sel
.
setBasicConstraints
(-
1
);
for
(
X509Certificate
trustedCert
:
trustedCerts
)
{
if
(
sel
.
match
(
trustedCert
))
{
if
(
debug
!=
null
)
{
...
...
@@ -323,6 +319,12 @@ class ForwardBuilder extends Builder {
*/
sel
.
setCertificateValid
(
date
);
/*
* Require CA certs with a pathLenConstraint that allows
* at least as many CA certs that have already been traversed
*/
sel
.
setBasicConstraints
(
currentState
.
traversedCACerts
);
/*
* If we have already traversed as many CA certs as the maxPathLength
* will allow us to, then we don't bother looking through these
...
...
src/share/classes/sun/security/ssl/ClientHandshaker.java
浏览文件 @
2d6c1a54
/*
* Copyright (c) 1996, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
1
, 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
...
...
@@ -378,7 +378,8 @@ final class ClientHandshaker extends Handshaker {
if
(!
isNegotiable
(
mesgVersion
))
{
throw
new
SSLHandshakeException
(
"Server chose "
+
mesgVersion
+
", but client does not support or disables "
+
mesgVersion
);
", but that protocol version is not enabled or not supported "
+
"by the client."
);
}
handshakeHash
.
protocolDetermined
(
mesgVersion
);
...
...
src/share/classes/sun/security/ssl/SunJSSE.java
浏览文件 @
2d6c1a54
/*
* Copyright (c) 1999, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
1
, 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
...
...
@@ -195,6 +195,8 @@ public abstract class SunJSSE extends java.security.Provider {
"sun.security.ssl.KeyManagerFactoryImpl$SunX509"
);
put
(
"KeyManagerFactory.NewSunX509"
,
"sun.security.ssl.KeyManagerFactoryImpl$X509"
);
put
(
"Alg.Alias.KeyManagerFactory.PKIX"
,
"NewSunX509"
);
put
(
"TrustManagerFactory.SunX509"
,
"sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory"
);
put
(
"TrustManagerFactory.PKIX"
,
...
...
test/sun/security/ssl/javax/net/ssl/GetInstance.java
浏览文件 @
2d6c1a54
/*
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003,
2011,
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
...
...
@@ -23,8 +23,9 @@
/*
* @test
* @bug 4898428
* @bug 4898428
7022855
* @summary verify getInstance() works using Provider.getService()
* Export "PKIX" as the standard algorithm name of KeyManagerFactory
* @author Andreas Sterbenz
*/
...
...
@@ -61,6 +62,20 @@ public class GetInstance {
kmf
=
KeyManagerFactory
.
getInstance
(
"SunX509"
,
p
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"NewSunX509"
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"NewSunX509"
,
"SunJSSE"
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"NewSunX509"
,
p
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"PKIX"
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"PKIX"
,
"SunJSSE"
);
same
(
p
,
kmf
.
getProvider
());
kmf
=
KeyManagerFactory
.
getInstance
(
"PKIX"
,
p
);
same
(
p
,
kmf
.
getProvider
());
TrustManagerFactory
tmf
;
tmf
=
TrustManagerFactory
.
getInstance
(
"SunX509"
);
same
(
p
,
tmf
.
getProvider
());
...
...
@@ -69,6 +84,34 @@ public class GetInstance {
tmf
=
TrustManagerFactory
.
getInstance
(
"SunX509"
,
p
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"PKIX"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"PKIX"
,
"SunJSSE"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"PKIX"
,
p
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"SunPKIX"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"SunPKIX"
,
"SunJSSE"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"SunPKIX"
,
p
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X509"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X509"
,
"SunJSSE"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X509"
,
p
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X.509"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X.509"
,
"SunJSSE"
);
same
(
p
,
tmf
.
getProvider
());
tmf
=
TrustManagerFactory
.
getInstance
(
"X.509"
,
p
);
same
(
p
,
tmf
.
getProvider
());
testComSun
();
long
stop
=
System
.
currentTimeMillis
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录