Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
afac5767
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看板
提交
afac5767
编写于
7月 05, 2016
作者:
I
igerasim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8153948: sun/security/mscapi/ShortRSAKey1024.sh fails with "Field length overflow"
Reviewed-by: coffeys, xuelei
上级
c147ad34
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
79 addition
and
7 deletion
+79
-7
test/sun/security/mscapi/ShortRSAKeyWithinTLS.java
test/sun/security/mscapi/ShortRSAKeyWithinTLS.java
+79
-7
未找到文件。
test/sun/security/mscapi/ShortRSAKeyWithinTLS.java
浏览文件 @
afac5767
/*
* Copyright (c) 2012, 201
5
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 201
6
, 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
...
...
@@ -22,7 +22,10 @@
*/
import
java.io.*
;
import
java.net.*
;
import
java.util.*
;
import
java.security.*
;
import
java.security.cert.*
;
import
javax.net.*
;
import
javax.net.ssl.*
;
...
...
@@ -71,22 +74,34 @@ public class ShortRSAKeyWithinTLS {
void
doServerSide
()
throws
Exception
{
// load the key store
KeyStore
ks
=
KeyStore
.
getInstance
(
"Windows-MY"
,
"SunMSCAPI"
);
ks
.
load
(
null
,
null
);
serverKS
=
KeyStore
.
getInstance
(
"Windows-MY"
,
"SunMSCAPI"
);
serverKS
.
load
(
null
,
null
);
System
.
out
.
println
(
"Loaded keystore: Windows-MY"
);
// check key size
checkKeySize
(
ks
);
checkKeySize
(
serverKS
);
// initialize the SSLContext
KeyManagerFactory
kmf
=
KeyManagerFactory
.
getInstance
(
"SunX509"
);
kmf
.
init
(
ks
,
null
);
kmf
.
init
(
serverKS
,
null
);
TrustManagerFactory
tmf
=
TrustManagerFactory
.
getInstance
(
"SunX509"
);
tmf
.
init
(
ks
);
tmf
.
init
(
serverKS
);
TrustManager
[]
tms
=
tmf
.
getTrustManagers
();
if
(
tms
==
null
||
tms
.
length
==
0
)
{
throw
new
Exception
(
"unexpected trust manager implementation"
);
}
else
{
if
(!(
tms
[
0
]
instanceof
X509TrustManager
))
{
throw
new
Exception
(
"unexpected trust manager"
+
" implementation: "
+
tms
[
0
].
getClass
().
getCanonicalName
());
}
}
serverTM
=
new
MyExtendedX509TM
((
X509TrustManager
)
tms
[
0
]);
tms
=
new
TrustManager
[]
{
serverTM
};
SSLContext
ctx
=
SSLContext
.
getInstance
(
"TLS"
);
ctx
.
init
(
kmf
.
getKeyManagers
(),
tm
f
.
getTrustManagers
()
,
null
);
ctx
.
init
(
kmf
.
getKeyManagers
(),
tm
s
,
null
);
ServerSocketFactory
ssf
=
ctx
.
getServerSocketFactory
();
SSLServerSocket
sslServerSocket
=
(
SSLServerSocket
)
...
...
@@ -228,6 +243,8 @@ public class ShortRSAKeyWithinTLS {
Thread
clientThread
=
null
;
Thread
serverThread
=
null
;
KeyStore
serverKS
;
MyExtendedX509TM
serverTM
;
/*
* Primary constructor, used to drive remainder of the test.
...
...
@@ -348,5 +365,60 @@ public class ShortRSAKeyWithinTLS {
}
}
}
class
MyExtendedX509TM
extends
X509ExtendedTrustManager
implements
X509TrustManager
{
X509TrustManager
tm
;
MyExtendedX509TM
(
X509TrustManager
tm
)
{
this
.
tm
=
tm
;
}
public
void
checkClientTrusted
(
X509Certificate
chain
[],
String
authType
)
throws
CertificateException
{
tm
.
checkClientTrusted
(
chain
,
authType
);
}
public
void
checkServerTrusted
(
X509Certificate
chain
[],
String
authType
)
throws
CertificateException
{
tm
.
checkServerTrusted
(
chain
,
authType
);
}
public
X509Certificate
[]
getAcceptedIssuers
()
{
List
<
X509Certificate
>
certs
=
new
ArrayList
<>();
try
{
for
(
X509Certificate
c
:
tm
.
getAcceptedIssuers
())
{
if
(
serverKS
.
getCertificateAlias
(
c
).
equals
(
keyAlias
))
certs
.
add
(
c
);
}
}
catch
(
KeyStoreException
kse
)
{
throw
new
RuntimeException
(
kse
);
}
return
certs
.
toArray
(
new
X509Certificate
[
certs
.
size
()]);
}
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
,
Socket
socket
)
throws
CertificateException
{
tm
.
checkClientTrusted
(
chain
,
authType
);
}
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
,
Socket
socket
)
throws
CertificateException
{
tm
.
checkServerTrusted
(
chain
,
authType
);
}
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
,
SSLEngine
engine
)
throws
CertificateException
{
tm
.
checkClientTrusted
(
chain
,
authType
);
}
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
,
SSLEngine
engine
)
throws
CertificateException
{
tm
.
checkServerTrusted
(
chain
,
authType
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录