Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
1bef8fe6
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看板
提交
1bef8fe6
编写于
10月 13, 2011
作者:
M
mullan
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
ab443837
65d04a83
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
75 addition
and
40 deletion
+75
-40
src/share/classes/sun/security/pkcs11/Config.java
src/share/classes/sun/security/pkcs11/Config.java
+11
-0
src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
+13
-7
src/share/classes/sun/security/pkcs11/P11Key.java
src/share/classes/sun/security/pkcs11/P11Key.java
+8
-15
src/share/classes/sun/util/LocaleServiceProviderPool.java
src/share/classes/sun/util/LocaleServiceProviderPool.java
+7
-5
src/share/lib/security/sunpkcs11-solaris.cfg
src/share/lib/security/sunpkcs11-solaris.cfg
+3
-0
test/ProblemList.txt
test/ProblemList.txt
+0
-3
test/java/util/Locale/Bug6989440.java
test/java/util/Locale/Bug6989440.java
+33
-10
未找到文件。
src/share/classes/sun/security/pkcs11/Config.java
浏览文件 @
1bef8fe6
...
@@ -192,6 +192,11 @@ final class Config {
...
@@ -192,6 +192,11 @@ final class Config {
// works only for NSS providers created via the Secmod API
// works only for NSS providers created via the Secmod API
private
boolean
nssUseSecmodTrust
=
false
;
private
boolean
nssUseSecmodTrust
=
false
;
// Flag to indicate whether the X9.63 encoding for EC points shall be used
// (true) or whether that encoding shall be wrapped in an ASN.1 OctetString
// (false).
private
boolean
useEcX963Encoding
=
false
;
private
Config
(
String
filename
,
InputStream
in
)
throws
IOException
{
private
Config
(
String
filename
,
InputStream
in
)
throws
IOException
{
if
(
in
==
null
)
{
if
(
in
==
null
)
{
if
(
filename
.
startsWith
(
"--"
))
{
if
(
filename
.
startsWith
(
"--"
))
{
...
@@ -320,6 +325,10 @@ final class Config {
...
@@ -320,6 +325,10 @@ final class Config {
return
nssUseSecmodTrust
;
return
nssUseSecmodTrust
;
}
}
boolean
getUseEcX963Encoding
()
{
return
useEcX963Encoding
;
}
private
static
String
expand
(
final
String
s
)
throws
IOException
{
private
static
String
expand
(
final
String
s
)
throws
IOException
{
try
{
try
{
return
PropertyExpander
.
expand
(
s
);
return
PropertyExpander
.
expand
(
s
);
...
@@ -440,6 +449,8 @@ final class Config {
...
@@ -440,6 +449,8 @@ final class Config {
parseNSSArgs
(
word
);
parseNSSArgs
(
word
);
}
else
if
(
word
.
equals
(
"nssUseSecmodTrust"
))
{
}
else
if
(
word
.
equals
(
"nssUseSecmodTrust"
))
{
nssUseSecmodTrust
=
parseBooleanEntry
(
word
);
nssUseSecmodTrust
=
parseBooleanEntry
(
word
);
}
else
if
(
word
.
equals
(
"useEcX963Encoding"
))
{
useEcX963Encoding
=
parseBooleanEntry
(
word
);
}
else
{
}
else
{
throw
new
ConfigurationException
throw
new
ConfigurationException
(
"Unknown keyword '"
+
word
+
"', line "
+
st
.
lineno
());
(
"Unknown keyword '"
+
word
+
"', line "
+
st
.
lineno
());
...
...
src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java
浏览文件 @
1bef8fe6
...
@@ -203,14 +203,20 @@ final class P11ECKeyFactory extends P11KeyFactory {
...
@@ -203,14 +203,20 @@ final class P11ECKeyFactory extends P11KeyFactory {
private
PublicKey
generatePublic
(
ECPoint
point
,
ECParameterSpec
params
)
throws
PKCS11Exception
{
private
PublicKey
generatePublic
(
ECPoint
point
,
ECParameterSpec
params
)
throws
PKCS11Exception
{
byte
[]
encodedParams
=
ECParameters
.
encodeParameters
(
params
);
byte
[]
encodedParams
=
ECParameters
.
encodeParameters
(
params
);
byte
[]
encodedPoint
=
null
;
byte
[]
encodedPoint
=
DerValue
pkECPoint
=
new
DerValue
(
DerValue
.
tag_OctetString
,
ECParameters
.
encodePoint
(
point
,
params
.
getCurve
());
ECParameters
.
encodePoint
(
point
,
params
.
getCurve
()));
try
{
// Check whether the X9.63 encoding of an EC point shall be wrapped
encodedPoint
=
pkECPoint
.
toByteArray
();
// in an ASN.1 OCTET STRING
}
catch
(
IOException
e
)
{
if
(!
token
.
config
.
getUseEcX963Encoding
())
{
throw
new
IllegalArgumentException
(
"Could not DER encode point"
,
e
);
try
{
encodedPoint
=
new
DerValue
(
DerValue
.
tag_OctetString
,
encodedPoint
)
.
toByteArray
();
}
catch
(
IOException
e
)
{
throw
new
IllegalArgumentException
(
"Could not DER encode point"
,
e
);
}
}
}
CK_ATTRIBUTE
[]
attributes
=
new
CK_ATTRIBUTE
[]
{
CK_ATTRIBUTE
[]
attributes
=
new
CK_ATTRIBUTE
[]
{
...
...
src/share/classes/sun/security/pkcs11/P11Key.java
浏览文件 @
1bef8fe6
...
@@ -1028,28 +1028,21 @@ abstract class P11Key implements Key {
...
@@ -1028,28 +1028,21 @@ abstract class P11Key implements Key {
try
{
try
{
params
=
P11ECKeyFactory
.
decodeParameters
params
=
P11ECKeyFactory
.
decodeParameters
(
attributes
[
1
].
getByteArray
());
(
attributes
[
1
].
getByteArray
());
/*
* An uncompressed EC point may be in either of two formats.
* First try the OCTET STRING encoding:
* 04 <length> 04 <X-coordinate> <Y-coordinate>
*
* Otherwise try the raw encoding:
* 04 <X-coordinate> <Y-coordinate>
*/
byte
[]
ecKey
=
attributes
[
0
].
getByteArray
();
byte
[]
ecKey
=
attributes
[
0
].
getByteArray
();
try
{
// Check whether the X9.63 encoding of an EC point is wrapped
// in an ASN.1 OCTET STRING
if
(!
token
.
config
.
getUseEcX963Encoding
())
{
DerValue
wECPoint
=
new
DerValue
(
ecKey
);
DerValue
wECPoint
=
new
DerValue
(
ecKey
);
if
(
wECPoint
.
getTag
()
!=
DerValue
.
tag_OctetString
)
throw
new
IOException
(
"Unexpected tag: "
+
wECPoint
.
getTag
());
if
(
wECPoint
.
getTag
()
!=
DerValue
.
tag_OctetString
)
{
throw
new
IOException
(
"Could not DER decode EC point."
+
" Unexpected tag: "
+
wECPoint
.
getTag
());
}
w
=
P11ECKeyFactory
.
decodePoint
w
=
P11ECKeyFactory
.
decodePoint
(
wECPoint
.
getDataBytes
(),
params
.
getCurve
());
(
wECPoint
.
getDataBytes
(),
params
.
getCurve
());
}
catch
(
IOException
e
)
{
}
else
{
// Failover
w
=
P11ECKeyFactory
.
decodePoint
(
ecKey
,
params
.
getCurve
());
w
=
P11ECKeyFactory
.
decodePoint
(
ecKey
,
params
.
getCurve
());
}
}
...
...
src/share/classes/sun/util/LocaleServiceProviderPool.java
浏览文件 @
1bef8fe6
...
@@ -40,6 +40,7 @@ import java.util.ResourceBundle.Control;
...
@@ -40,6 +40,7 @@ import java.util.ResourceBundle.Control;
import
java.util.ServiceLoader
;
import
java.util.ServiceLoader
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentMap
;
import
java.util.spi.LocaleServiceProvider
;
import
java.util.spi.LocaleServiceProvider
;
import
sun.util.logging.PlatformLogger
;
import
sun.util.logging.PlatformLogger
;
...
@@ -57,8 +58,8 @@ public final class LocaleServiceProviderPool {
...
@@ -57,8 +58,8 @@ public final class LocaleServiceProviderPool {
* A Map that holds singleton instances of this class. Each instance holds a
* A Map that holds singleton instances of this class. Each instance holds a
* set of provider implementations of a particular locale sensitive service.
* set of provider implementations of a particular locale sensitive service.
*/
*/
private
static
Map
<
Class
,
LocaleServiceProviderPool
>
poolOfPools
=
private
static
Concurrent
Map
<
Class
,
LocaleServiceProviderPool
>
poolOfPools
=
new
ConcurrentHashMap
<
Class
,
LocaleServiceProviderPool
>();
new
ConcurrentHashMap
<>();
/**
/**
* A Set containing locale service providers that implement the
* A Set containing locale service providers that implement the
...
@@ -109,7 +110,7 @@ public final class LocaleServiceProviderPool {
...
@@ -109,7 +110,7 @@ public final class LocaleServiceProviderPool {
if
(
pool
==
null
)
{
if
(
pool
==
null
)
{
LocaleServiceProviderPool
newPool
=
LocaleServiceProviderPool
newPool
=
new
LocaleServiceProviderPool
(
providerClass
);
new
LocaleServiceProviderPool
(
providerClass
);
pool
=
poolOfPools
.
put
(
providerClass
,
newPool
);
pool
=
poolOfPools
.
put
IfAbsent
(
providerClass
,
newPool
);
if
(
pool
==
null
)
{
if
(
pool
==
null
)
{
pool
=
newPool
;
pool
=
newPool
;
}
}
...
@@ -257,10 +258,11 @@ public final class LocaleServiceProviderPool {
...
@@ -257,10 +258,11 @@ public final class LocaleServiceProviderPool {
synchronized
(
LocaleServiceProviderPool
.
class
)
{
synchronized
(
LocaleServiceProviderPool
.
class
)
{
if
(
availableJRELocales
==
null
)
{
if
(
availableJRELocales
==
null
)
{
Locale
[]
allLocales
=
LocaleData
.
getAvailableLocales
();
Locale
[]
allLocales
=
LocaleData
.
getAvailableLocales
();
availableJRELocales
=
new
ArrayList
<
Locale
>(
allLocales
.
length
);
List
<
Locale
>
tmpList
=
new
ArrayList
<
>(
allLocales
.
length
);
for
(
Locale
locale
:
allLocales
)
{
for
(
Locale
locale
:
allLocales
)
{
availableJRELocales
.
add
(
getLookupLocale
(
locale
));
tmpList
.
add
(
getLookupLocale
(
locale
));
}
}
availableJRELocales
=
tmpList
;
}
}
}
}
}
}
...
...
src/share/lib/security/sunpkcs11-solaris.cfg
浏览文件 @
1bef8fe6
...
@@ -11,6 +11,9 @@ library = /usr/lib/$ISA/libpkcs11.so
...
@@ -11,6 +11,9 @@ library = /usr/lib/$ISA/libpkcs11.so
handleStartupErrors = ignoreAll
handleStartupErrors = ignoreAll
# Use the X9.63 encoding for EC points (do not wrap in an ASN.1 OctetString).
useEcX963Encoding = true
attributes = compatibility
attributes = compatibility
disabledMechanisms = {
disabledMechanisms = {
...
...
test/ProblemList.txt
浏览文件 @
1bef8fe6
...
@@ -517,9 +517,6 @@ sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all
...
@@ -517,9 +517,6 @@ sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all
# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
sun/security/tools/keytool/printssl.sh solaris-all
sun/security/tools/keytool/printssl.sh solaris-all
# 7054637
sun/security/tools/jarsigner/ec.sh solaris-all
# 7081817
# 7081817
sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java generic-all
sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java generic-all
...
...
test/java/util/Locale/Bug6989440.java
浏览文件 @
1bef8fe6
...
@@ -37,26 +37,49 @@ import java.util.spi.TimeZoneNameProvider;
...
@@ -37,26 +37,49 @@ import java.util.spi.TimeZoneNameProvider;
import
sun.util.LocaleServiceProviderPool
;
import
sun.util.LocaleServiceProviderPool
;
public
class
Bug6989440
{
public
class
Bug6989440
{
public
static
void
main
(
String
[]
args
)
{
static
volatile
boolean
failed
;
// false
TestThread
t1
=
new
TestThread
(
LocaleNameProvider
.
class
);
static
final
int
THREADS
=
50
;
TestThread
t2
=
new
TestThread
(
TimeZoneNameProvider
.
class
);
TestThread
t3
=
new
TestThread
(
DateFormatProvider
.
class
);
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Thread
[]
threads
=
new
Thread
[
THREADS
];
t1
.
start
();
for
(
int
i
=
0
;
i
<
threads
.
length
;
i
++)
t2
.
start
();
threads
[
i
]
=
new
TestThread
();
t3
.
start
();
for
(
int
i
=
0
;
i
<
threads
.
length
;
i
++)
threads
[
i
].
start
();
for
(
int
i
=
0
;
i
<
threads
.
length
;
i
++)
threads
[
i
].
join
();
if
(
failed
)
throw
new
RuntimeException
(
"Failed: check output"
);
}
}
static
class
TestThread
extends
Thread
{
static
class
TestThread
extends
Thread
{
private
Class
<?
extends
LocaleServiceProvider
>
cls
;
private
Class
<?
extends
LocaleServiceProvider
>
cls
;
private
static
int
count
;
public
TestThread
(
Class
<?
extends
LocaleServiceProvider
>
providerClass
)
{
public
TestThread
(
Class
<?
extends
LocaleServiceProvider
>
providerClass
)
{
cls
=
providerClass
;
cls
=
providerClass
;
}
}
public
TestThread
()
{
int
which
=
count
++
%
3
;
switch
(
which
)
{
case
0
:
cls
=
LocaleNameProvider
.
class
;
break
;
case
1
:
cls
=
TimeZoneNameProvider
.
class
;
break
;
case
2
:
cls
=
DateFormatProvider
.
class
;
break
;
default
:
throw
new
AssertionError
(
"Should not reach here"
);
}
}
public
void
run
()
{
public
void
run
()
{
LocaleServiceProviderPool
pool
=
LocaleServiceProviderPool
.
getPool
(
cls
);
try
{
pool
.
getAvailableLocales
();
LocaleServiceProviderPool
pool
=
LocaleServiceProviderPool
.
getPool
(
cls
);
pool
.
getAvailableLocales
();
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
);
e
.
printStackTrace
();
failed
=
true
;
}
}
}
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录