Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
ffafdb03
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看板
提交
ffafdb03
编写于
7月 05, 2016
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
0e5d9fc3
aaed21bd
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
305 addition
and
150 deletion
+305
-150
.hgtags
.hgtags
+37
-0
src/share/classes/com/sun/accessibility/internal/resources/accessibility_ko.properties
...essibility/internal/resources/accessibility_ko.properties
+3
-3
src/share/classes/com/sun/crypto/provider/AESCipher.java
src/share/classes/com/sun/crypto/provider/AESCipher.java
+24
-4
src/share/classes/com/sun/crypto/provider/CipherCore.java
src/share/classes/com/sun/crypto/provider/CipherCore.java
+11
-2
src/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
...re/classes/com/sun/crypto/provider/GaloisCounterMode.java
+74
-26
src/share/classes/com/sun/jmx/remote/security/JMXSubjectDomainCombiner.java
...com/sun/jmx/remote/security/JMXSubjectDomainCombiner.java
+1
-1
src/share/classes/java/lang/invoke/DirectMethodHandle.java
src/share/classes/java/lang/invoke/DirectMethodHandle.java
+1
-1
src/share/classes/java/lang/invoke/LambdaForm.java
src/share/classes/java/lang/invoke/LambdaForm.java
+6
-6
src/share/classes/java/lang/invoke/MemberName.java
src/share/classes/java/lang/invoke/MemberName.java
+0
-2
src/share/classes/java/lang/invoke/MethodHandles.java
src/share/classes/java/lang/invoke/MethodHandles.java
+8
-3
src/share/classes/java/security/ProtectionDomain.java
src/share/classes/java/security/ProtectionDomain.java
+5
-0
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
...re/classes/javax/security/auth/SubjectDomainCombiner.java
+63
-49
src/share/classes/sun/launcher/resources/launcher_zh_TW.properties
.../classes/sun/launcher/resources/launcher_zh_TW.properties
+2
-2
src/share/classes/sun/management/resources/agent_zh_TW.properties
...e/classes/sun/management/resources/agent_zh_TW.properties
+5
-5
src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java
.../classes/sun/misc/JavaSecurityProtectionDomainAccess.java
+5
-0
src/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties
...re/classes/sun/rmi/server/resources/rmid_zh_TW.properties
+2
-2
src/share/classes/sun/security/tools/jarsigner/Resources_ja.java
...re/classes/sun/security/tools/jarsigner/Resources_ja.java
+3
-1
src/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java
...classes/sun/security/tools/jarsigner/Resources_zh_CN.java
+3
-1
src/share/classes/sun/security/tools/keytool/Resources_zh_TW.java
...e/classes/sun/security/tools/keytool/Resources_zh_TW.java
+3
-3
src/share/classes/sun/security/tools/policytool/Resources_zh_TW.java
...lasses/sun/security/tools/policytool/Resources_zh_TW.java
+2
-2
src/share/classes/sun/security/util/Resources_zh_TW.java
src/share/classes/sun/security/util/Resources_zh_TW.java
+2
-2
src/windows/classes/sun/nio/ch/PipeImpl.java
src/windows/classes/sun/nio/ch/PipeImpl.java
+22
-21
src/windows/native/sun/windows/awt_Font.cpp
src/windows/native/sun/windows/awt_Font.cpp
+15
-9
src/windows/native/sun/windows/awt_Font.h
src/windows/native/sun/windows/awt_Font.h
+8
-5
未找到文件。
.hgtags
浏览文件 @
ffafdb03
...
...
@@ -389,6 +389,7 @@ f0d5cb59b0e6a67fa102465458cc4725c6e59089 jdk8u40-b25
d4453d784fb6c52e4ed998b167588551e2fd43c5 jdk8u40-b27
5a45234e0fc14ff943e13dc1f8966818acaeb4de jdk8u40-b31
d8ac13c5eafe422d3425dc1aebebfcdf8ca67e2d jdk8u40-b32
c7fbbf6133c339fb56f03241de28666774023d5d jdk8u40-b33
1ecc234bd38950a2bc047aa253a5e803f0836a4e jdk8u45-b00
e0c7864bbca3f76cde680722f2ae58dff2bff61d jdk8u45-b01
9505c0392cddbfb905401e9fccc23262edc3254f jdk8u45-b02
...
...
@@ -534,17 +535,26 @@ d7cc3225f1050de03b236b92e12c547f21697013 jdk8u72-b11
d841d3fdae44f120883dab0a3a809a054cd0274b jdk8u72-b13
f6d24d424cd2af4d2612f7737d3d9a25f58b882d jdk8u72-b14
f3e86cc607260bae368b52d88d7bc8883ee767e3 jdk8u72-b15
1d4b343084874b1afa1cdd504b9b1e50bab7f121 jdk8u72-b31
892eb9ab179650b89b7bab6bc42f079391c98624 jdk8u73-b00
9b77d3ca0d66a117c3cc0e0a74b8059545b22f0e jdk8u73-b01
2ab13901d6f14bab0dcf4823d5e378a421fba7e2 jdk8u73-b02
9a843dc6f959f62c61014a3a71ec9aa329f1daf1 jdk8u74-b00
e829ab80dfd828803aa8837411900faeaa1254a5 jdk8u74-b01
32c49f4a16599e376e4e46bb33c7bcc486e52ff3 jdk8u74-b02
9c828e688240362b6f1b761b619cdaa070462c4e jdk8u74-b31
6968ca30f8fdc9429fcd56187e16f46b215b474b jdk8u74-b32
02e1209648050922a5a9f2789d9d359795f6f834 jdk8u77-b00
f08584a0fde9344b0aa4766984266ca68b9a5018 jdk8u77-b01
1a3e81c05703bb36def80a57681e1692c866f621 jdk8u77-b02
c44179bce874a97e93ffd7b76a226af417e017a4 jdk8u77-b03
8c3f4e540348daed7263bae092b0e5f212478b00 jdk8u77-b31
1d4b343084874b1afa1cdd504b9b1e50bab7f121 jdk8u72-b31
7cfd2c51c501df909833aa0fb6e40c50c61621ed jdk8u75-b00
9e00a43602f87930c2318b2567002871ad9c59dd jdk8u75-b01
9de301db625bb1b462aad3ebd8347118b94bb728 jdk8u75-b02
dcacefa73649a2d821267b6bff1d70aa10a06801 jdk8u75-b03
f6cc9dbb5db5883385c91bb71ca02081220aaf3d jdk8u101-b00
de91f05824c5398cb2d2f666ff404aaa165498de jdk8u75-b04
4138b3f27ffea524185a604c3f4f149c7e5ba780 jdk8u75-b05
32f64c19b5fba8beeae5236ca6e480bd8e99698a jdk8u75-b06
...
...
@@ -557,9 +567,11 @@ e6f4eb91a1fa895c2f4520e4cca0ae6f2ca14fbb jdk8u75-b09
f08584a0fde9344b0aa4766984266ca68b9a5018 jdk8u77-b01
1a3e81c05703bb36def80a57681e1692c866f621 jdk8u77-b02
c44179bce874a97e93ffd7b76a226af417e017a4 jdk8u77-b03
8c3f4e540348daed7263bae092b0e5f212478b00 jdk8u77-b31
71f59a00df6c8f3bd5c6d6631a4988a431adab56 jdk8u91-b00
7ade7a1ab10ff893f62cce9440b4a839aa19c250 jdk8u91-b13
f8725698a870b6be82fad578e78a55910b259975 jdk8u91-b14
29380f4d81bd92a6a7aa7a984ca4541ff3ac3a67 jdk8u91-b15
39baa472e20c13c0eb1243eb5dce589e82f78143 jdk8u76-b00
6ea3aea950d19d803475b3f4d704a2942e71b302 jdk8u76-b01
4de4cffb5988cd68959ce4bbd14c6d4547078c91 jdk8u76-b02
...
...
@@ -576,6 +588,21 @@ cbafa4c725f9d80fd369dd7979dd97682ae284e6 jdk8u76-b09
ea965fea71f612d65013192aa637d88e05915b10 jdk8u92-b00
cc8d0d6c6f9543120836e70e0aa3fa9c9b6fe0f3 jdk8u92-b13
4f06a20cdc59ce9742e6538ff4b9040baba0778a jdk8u92-b14
5875e297cfcf18304b4b062dc44fa9be312ad6e8 jdk8u92-b31
f6cc9dbb5db5883385c91bb71ca02081220aaf3d jdk8u81-b00
00f8f39308687cde45f23282871c46cc6c2f10b3 jdk8u101-b01
6042757c329b1b96fa6bc931e09306794f5c50c0 jdk8u101-b02
25934d0d38fe10383ff22eb3f39bf5e8b9e73ac9 jdk8u101-b03
ebc56c2e803597ef409a5296addc986b390d934d jdk8u101-b04
c387bd2fb7db40467bd9aa803c8510a04ca32bae jdk8u101-b05
a15cdf2e91e7c2d71510280b31ae11048fb2f31e jdk8u101-b06
fdc0b30af431e17ffaed24ef5d545ae4cf7ddf6d jdk8u101-b07
4dc4099e933a6f4584b51305b26b5798f042699b jdk8u101-b08
5e7489ac05f0001e234e6d1c8730b465e74c9626 jdk8u101-b09
9486707c119ab3940f7ea06c1af23a4f6367c77b jdk8u101-b10
a9136f8d24d9ed01009df847176e0be67b354d15 jdk8u101-b11
3eab3ce82c31d1332bc383a1a3201eaee220c001 jdk8u101-b12
827b2350d7f8a96160aa820200a7bf6358b51450 jdk8u101-b13
39baa472e20c13c0eb1243eb5dce589e82f78143 jdk8u76-b00
6ea3aea950d19d803475b3f4d704a2942e71b302 jdk8u76-b01
4de4cffb5988cd68959ce4bbd14c6d4547078c91 jdk8u76-b02
...
...
@@ -587,6 +614,16 @@ fa5a91b29658aa9eb7aff54ae34898c149ff7149 jdk8u82-b00
5d5b55014d0da5bafb42366dc6d668ced4b8dec4 jdk8u102-b02
abab8d5270997ad25e0699151eed48ce8db40787 jdk8u102-b03
50809de3dcc24eb8cf86b8518cf0cc0423b61f4b jdk8u102-b04
cdfb600c2dce889af220ebb6c4b0764066baa741 jdk8u102-b05
59698da7972e97f4a18845b9c879f165b3c52e98 jdk8u102-b06
725b400c93e0209c64f36f6191b8d1fd3ef9ed30 jdk8u102-b07
c260a0aab5bff09f439914829b81f037715029bb jdk8u102-b08
605340e782425b68342c1bc6485b747708de6101 jdk8u102-b09
b64716a25e409798fcd7ed6143d55681ee4a4baa jdk8u102-b10
e915a408ebf7ba05b36d1b714e166a1d9e5c7edd jdk8u102-b11
8e12cb096db33b525ec010de5e857ef1cc985ddd jdk8u102-b12
901ecf04370c7c03c61e22ab87a266c355baff54 jdk8u102-b13
48c99b42383912886c005891c04b5f599adf6722 jdk8u102-b14
47e20a90bdbb2327289e330606b73a9fe4dc857e jdk8u112-b00
96393e490afd4acba5b92c5ede68dc9bbb60a38e jdk8u112-b01
b44d695f738baba091370828b84ae2c4cd715c1b jdk8u112-b02
src/share/classes/com/sun/accessibility/internal/resources/accessibility_ko.properties
浏览文件 @
ffafdb03
...
...
@@ -15,13 +15,13 @@
#
alert
=
\u
ACBD
\u
BCF4
awtcomponent
=
AWT
\u
AD6C
\u
C131
\u
C694
\u
C18C
checkbox
=
\u
CCB4
\u
D06C
\u
BC15
\u
C2A4
checkbox
=
\u
CCB4
\u
D06C
\u
BC15
\u
C2A4
colorchooser
=
\u
C0C9
\u
C0C1
\u
C120
\u
D0DD
\u
AE30
columnheader
=
\u
C5F4
\u
BA38
\u
B9AC
\u
AE00
combobox
=
\u
CF64
\u
BCF4
\u
C0C1
\u
C790
canvas
=
\u
CE94
\u
BC84
\u
C2A4
desktopicon
=
\u
BC14
\u
D0D5
\u
D654
\u
BA74
\u
C544
\u
C774
\u
CF58
desktoppane
=
\u
BC14
\u
D0D5
\u
D654
\u
BA74
\u
CC3D
desktopicon
=
\u
BC14
\u
D0D5
\u
D654
\u
BA74
\u
C544
\u
C774
\u
CF58
desktoppane
=
\u
BC14
\u
D0D5
\u
D654
\u
BA74
\u
CC3D
dialog
=
\u
B300
\u
D654
\u
C0C1
\u
C790
directorypane
=
\u
B514
\u
B809
\u
D1A0
\u
B9AC
\u
CC3D
glasspane
=
\u
AE00
\u
B798
\u
C2A4
\u
CC3D
...
...
src/share/classes/com/sun/crypto/provider/AESCipher.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2002, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 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
...
...
@@ -172,6 +172,11 @@ abstract class AESCipher extends CipherSpi {
*/
private
final
int
fixedKeySize
;
// in bytes, -1 if no restriction
/*
* needed to enforce ISE thrown when updateAAD is called after update for GCM mode.
*/
private
boolean
updateCalled
;
/**
* Creates an instance of AES cipher with default ECB mode and
* PKCS5Padding.
...
...
@@ -304,6 +309,7 @@ abstract class AESCipher extends CipherSpi {
protected
void
engineInit
(
int
opmode
,
Key
key
,
SecureRandom
random
)
throws
InvalidKeyException
{
checkKeySize
(
key
,
fixedKeySize
);
updateCalled
=
false
;
core
.
init
(
opmode
,
key
,
random
);
}
...
...
@@ -336,6 +342,7 @@ abstract class AESCipher extends CipherSpi {
SecureRandom
random
)
throws
InvalidKeyException
,
InvalidAlgorithmParameterException
{
checkKeySize
(
key
,
fixedKeySize
);
updateCalled
=
false
;
core
.
init
(
opmode
,
key
,
params
,
random
);
}
...
...
@@ -344,6 +351,7 @@ abstract class AESCipher extends CipherSpi {
SecureRandom
random
)
throws
InvalidKeyException
,
InvalidAlgorithmParameterException
{
checkKeySize
(
key
,
fixedKeySize
);
updateCalled
=
false
;
core
.
init
(
opmode
,
key
,
params
,
random
);
}
...
...
@@ -368,6 +376,7 @@ abstract class AESCipher extends CipherSpi {
*/
protected
byte
[]
engineUpdate
(
byte
[]
input
,
int
inputOffset
,
int
inputLen
)
{
updateCalled
=
true
;
return
core
.
update
(
input
,
inputOffset
,
inputLen
);
}
...
...
@@ -397,6 +406,7 @@ abstract class AESCipher extends CipherSpi {
protected
int
engineUpdate
(
byte
[]
input
,
int
inputOffset
,
int
inputLen
,
byte
[]
output
,
int
outputOffset
)
throws
ShortBufferException
{
updateCalled
=
true
;
return
core
.
update
(
input
,
inputOffset
,
inputLen
,
output
,
outputOffset
);
}
...
...
@@ -433,7 +443,9 @@ abstract class AESCipher extends CipherSpi {
*/
protected
byte
[]
engineDoFinal
(
byte
[]
input
,
int
inputOffset
,
int
inputLen
)
throws
IllegalBlockSizeException
,
BadPaddingException
{
return
core
.
doFinal
(
input
,
inputOffset
,
inputLen
);
byte
[]
out
=
core
.
doFinal
(
input
,
inputOffset
,
inputLen
);
updateCalled
=
false
;
return
out
;
}
/**
...
...
@@ -476,8 +488,10 @@ abstract class AESCipher extends CipherSpi {
byte
[]
output
,
int
outputOffset
)
throws
IllegalBlockSizeException
,
ShortBufferException
,
BadPaddingException
{
return
core
.
doFinal
(
input
,
inputOffset
,
inputLen
,
output
,
outputOffset
);
int
outLen
=
core
.
doFinal
(
input
,
inputOffset
,
inputLen
,
output
,
outputOffset
);
updateCalled
=
false
;
return
outLen
;
}
/**
...
...
@@ -574,6 +588,9 @@ abstract class AESCipher extends CipherSpi {
*/
@Override
protected
void
engineUpdateAAD
(
byte
[]
src
,
int
offset
,
int
len
)
{
if
(
core
.
getMode
()
==
CipherCore
.
GCM_MODE
&&
updateCalled
)
{
throw
new
IllegalStateException
(
"AAD must be supplied before encryption/decryption starts"
);
}
core
.
updateAAD
(
src
,
offset
,
len
);
}
...
...
@@ -606,6 +623,9 @@ abstract class AESCipher extends CipherSpi {
*/
@Override
protected
void
engineUpdateAAD
(
ByteBuffer
src
)
{
if
(
core
.
getMode
()
==
CipherCore
.
GCM_MODE
&&
updateCalled
)
{
throw
new
IllegalStateException
(
"AAD must be supplied before encryption/decryption starts"
);
}
if
(
src
!=
null
)
{
int
aadLen
=
src
.
limit
()
-
src
.
position
();
if
(
aadLen
!=
0
)
{
...
...
src/share/classes/com/sun/crypto/provider/CipherCore.java
浏览文件 @
ffafdb03
...
...
@@ -124,7 +124,7 @@ final class CipherCore {
private
static
final
int
PCBC_MODE
=
4
;
private
static
final
int
CTR_MODE
=
5
;
private
static
final
int
CTS_MODE
=
6
;
private
static
final
int
GCM_MODE
=
7
;
static
final
int
GCM_MODE
=
7
;
/*
* variables used for performing the GCM (key+iv) uniqueness check.
...
...
@@ -196,7 +196,7 @@ final class CipherCore {
cipher
=
new
CounterMode
(
rawImpl
);
unitBytes
=
1
;
padding
=
null
;
}
else
if
(
modeUpperCase
.
startsWith
(
"GCM"
))
{
}
else
if
(
modeUpperCase
.
equals
(
"GCM"
))
{
// can only be used for block ciphers w/ 128-bit block size
if
(
blockSize
!=
16
)
{
throw
new
NoSuchAlgorithmException
...
...
@@ -223,6 +223,15 @@ final class CipherCore {
}
}
/**
* Returns the mode of this cipher.
*
* @return the parsed cipher mode
*/
int
getMode
()
{
return
cipherMode
;
}
private
static
int
getNumOfUnit
(
String
mode
,
int
offset
,
int
blockSize
)
throws
NoSuchAlgorithmException
{
int
result
=
blockSize
;
// use blockSize as default value
...
...
src/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2013, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 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
...
...
@@ -49,6 +49,16 @@ final class GaloisCounterMode extends FeedbackCipher {
static
int
DEFAULT_TAG_LEN
=
AES_BLOCK_SIZE
;
static
int
DEFAULT_IV_LEN
=
12
;
// in bytes
// In NIST SP 800-38D, GCM input size is limited to be no longer
// than (2^36 - 32) bytes. Otherwise, the counter will wrap
// around and lead to a leak of plaintext.
// However, given the current GCM spec requirement that recovered
// text can only be returned after successful tag verification,
// we are bound by limiting the data size to the size limit of
// java byte array, e.g. Integer.MAX_VALUE, since all data
// can only be returned by the doFinal(...) call.
private
static
final
int
MAX_BUF_SIZE
=
Integer
.
MAX_VALUE
;
// buffer for AAD data; if null, meaning update has been called
private
ByteArrayOutputStream
aadBuffer
=
new
ByteArrayOutputStream
();
private
int
sizeOfAAD
=
0
;
...
...
@@ -89,9 +99,13 @@ final class GaloisCounterMode extends FeedbackCipher {
}
}
// ivLen in bits
private
static
byte
[]
getLengthBlock
(
int
ivLen
)
{
private
static
byte
[]
getLengthBlock
(
int
ivLenInBytes
)
{
long
ivLen
=
((
long
)
ivLenInBytes
)
<<
3
;
byte
[]
out
=
new
byte
[
AES_BLOCK_SIZE
];
out
[
8
]
=
(
byte
)(
ivLen
>>>
56
);
out
[
9
]
=
(
byte
)(
ivLen
>>>
48
);
out
[
10
]
=
(
byte
)(
ivLen
>>>
40
);
out
[
11
]
=
(
byte
)(
ivLen
>>>
32
);
out
[
12
]
=
(
byte
)(
ivLen
>>>
24
);
out
[
13
]
=
(
byte
)(
ivLen
>>>
16
);
out
[
14
]
=
(
byte
)(
ivLen
>>>
8
);
...
...
@@ -99,13 +113,22 @@ final class GaloisCounterMode extends FeedbackCipher {
return
out
;
}
// aLen and cLen both in bits
private
static
byte
[]
getLengthBlock
(
int
aLen
,
int
cLen
)
{
private
static
byte
[]
getLengthBlock
(
int
aLenInBytes
,
int
cLenInBytes
)
{
long
aLen
=
((
long
)
aLenInBytes
)
<<
3
;
long
cLen
=
((
long
)
cLenInBytes
)
<<
3
;
byte
[]
out
=
new
byte
[
AES_BLOCK_SIZE
];
out
[
0
]
=
(
byte
)(
aLen
>>>
56
);
out
[
1
]
=
(
byte
)(
aLen
>>>
48
);
out
[
2
]
=
(
byte
)(
aLen
>>>
40
);
out
[
3
]
=
(
byte
)(
aLen
>>>
32
);
out
[
4
]
=
(
byte
)(
aLen
>>>
24
);
out
[
5
]
=
(
byte
)(
aLen
>>>
16
);
out
[
6
]
=
(
byte
)(
aLen
>>>
8
);
out
[
7
]
=
(
byte
)
aLen
;
out
[
8
]
=
(
byte
)(
cLen
>>>
56
);
out
[
9
]
=
(
byte
)(
cLen
>>>
48
);
out
[
10
]
=
(
byte
)(
cLen
>>>
40
);
out
[
11
]
=
(
byte
)(
cLen
>>>
32
);
out
[
12
]
=
(
byte
)(
cLen
>>>
24
);
out
[
13
]
=
(
byte
)(
cLen
>>>
16
);
out
[
14
]
=
(
byte
)(
cLen
>>>
8
);
...
...
@@ -142,13 +165,20 @@ final class GaloisCounterMode extends FeedbackCipher {
}
else
{
g
.
update
(
iv
);
}
byte
[]
lengthBlock
=
getLengthBlock
(
iv
.
length
*
8
);
byte
[]
lengthBlock
=
getLengthBlock
(
iv
.
length
);
g
.
update
(
lengthBlock
);
j0
=
g
.
digest
();
}
return
j0
;
}
private
static
void
checkDataLength
(
int
processed
,
int
len
)
{
if
(
processed
>
MAX_BUF_SIZE
-
len
)
{
throw
new
ProviderException
(
"SunJCE provider only supports "
+
"input size up to "
+
MAX_BUF_SIZE
+
" bytes"
);
}
}
GaloisCounterMode
(
SymmetricCipher
embeddedCipher
)
{
super
(
embeddedCipher
);
aadBuffer
=
new
ByteArrayOutputStream
();
...
...
@@ -319,20 +349,22 @@ final class GaloisCounterMode extends FeedbackCipher {
// Feed the AAD data to GHASH, pad if necessary
void
processAAD
()
{
if
(
aadBuffer
!=
null
&&
aadBuffer
.
size
()
>
0
)
{
byte
[]
aad
=
aadBuffer
.
toByteArray
();
sizeOfAAD
=
aad
.
length
;
aadBuffer
=
null
;
int
lastLen
=
aad
.
length
%
AES_BLOCK_SIZE
;
if
(
lastLen
!=
0
)
{
ghashAllToS
.
update
(
aad
,
0
,
aad
.
length
-
lastLen
);
byte
[]
padded
=
expandToOneBlock
(
aad
,
aad
.
length
-
lastLen
,
lastLen
);
ghashAllToS
.
update
(
padded
);
}
else
{
ghashAllToS
.
update
(
aad
);
if
(
aadBuffer
!=
null
)
{
if
(
aadBuffer
.
size
()
>
0
)
{
byte
[]
aad
=
aadBuffer
.
toByteArray
();
sizeOfAAD
=
aad
.
length
;
int
lastLen
=
aad
.
length
%
AES_BLOCK_SIZE
;
if
(
lastLen
!=
0
)
{
ghashAllToS
.
update
(
aad
,
0
,
aad
.
length
-
lastLen
);
byte
[]
padded
=
expandToOneBlock
(
aad
,
aad
.
length
-
lastLen
,
lastLen
);
ghashAllToS
.
update
(
padded
);
}
else
{
ghashAllToS
.
update
(
aad
);
}
}
aadBuffer
=
null
;
}
}
...
...
@@ -381,6 +413,8 @@ final class GaloisCounterMode extends FeedbackCipher {
* @return the number of bytes placed into the <code>out</code> buffer
*/
int
encrypt
(
byte
[]
in
,
int
inOfs
,
int
len
,
byte
[]
out
,
int
outOfs
)
{
checkDataLength
(
processed
,
len
);
if
((
len
%
blockSize
)
!=
0
)
{
throw
new
ProviderException
(
"Internal error in input buffering"
);
}
...
...
@@ -405,17 +439,23 @@ final class GaloisCounterMode extends FeedbackCipher {
*/
int
encryptFinal
(
byte
[]
in
,
int
inOfs
,
int
len
,
byte
[]
out
,
int
outOfs
)
throws
IllegalBlockSizeException
,
ShortBufferException
{
if
(
len
>
MAX_BUF_SIZE
-
tagLenBytes
)
{
throw
new
ShortBufferException
(
"Can't fit both data and tag into one buffer"
);
}
if
(
out
.
length
-
outOfs
<
(
len
+
tagLenBytes
))
{
throw
new
ShortBufferException
(
"Output buffer too small"
);
}
checkDataLength
(
processed
,
len
);
processAAD
();
if
(
len
>
0
)
{
doLastBlock
(
in
,
inOfs
,
len
,
out
,
outOfs
,
true
);
}
byte
[]
lengthBlock
=
getLengthBlock
(
sizeOfAAD
*
8
,
processed
*
8
);
getLengthBlock
(
sizeOfAAD
,
processed
);
ghashAllToS
.
update
(
lengthBlock
);
byte
[]
s
=
ghashAllToS
.
digest
();
byte
[]
sOut
=
new
byte
[
s
.
length
];
...
...
@@ -444,6 +484,8 @@ final class GaloisCounterMode extends FeedbackCipher {
* @return the number of bytes placed into the <code>out</code> buffer
*/
int
decrypt
(
byte
[]
in
,
int
inOfs
,
int
len
,
byte
[]
out
,
int
outOfs
)
{
checkDataLength
(
ibuffer
.
size
(),
len
);
if
((
len
%
blockSize
)
!=
0
)
{
throw
new
ProviderException
(
"Internal error in input buffering"
);
}
...
...
@@ -481,10 +523,21 @@ final class GaloisCounterMode extends FeedbackCipher {
if
(
len
<
tagLenBytes
)
{
throw
new
AEADBadTagException
(
"Input too short - need tag"
);
}
// do this check here can also catch the potential integer overflow
// scenario for the subsequent output buffer capacity check.
checkDataLength
(
ibuffer
.
size
(),
(
len
-
tagLenBytes
));
if
(
out
.
length
-
outOfs
<
((
ibuffer
.
size
()
+
len
)
-
tagLenBytes
))
{
throw
new
ShortBufferException
(
"Output buffer too small"
);
}
processAAD
();
// get the trailing tag bytes from 'in'
byte
[]
tag
=
new
byte
[
tagLenBytes
];
System
.
arraycopy
(
in
,
inOfs
+
len
-
tagLenBytes
,
tag
,
0
,
tagLenBytes
);
len
-=
tagLenBytes
;
if
(
len
!=
0
)
{
ibuffer
.
write
(
in
,
inOfs
,
len
);
}
...
...
@@ -495,17 +548,12 @@ final class GaloisCounterMode extends FeedbackCipher {
len
=
in
.
length
;
ibuffer
.
reset
();
byte
[]
tag
=
new
byte
[
tagLenBytes
];
// get the trailing tag bytes from 'in'
System
.
arraycopy
(
in
,
len
-
tagLenBytes
,
tag
,
0
,
tagLenBytes
);
len
-=
tagLenBytes
;
if
(
len
>
0
)
{
doLastBlock
(
in
,
inOfs
,
len
,
out
,
outOfs
,
false
);
}
byte
[]
lengthBlock
=
getLengthBlock
(
sizeOfAAD
*
8
,
processed
*
8
);
getLengthBlock
(
sizeOfAAD
,
processed
);
ghashAllToS
.
update
(
lengthBlock
);
byte
[]
s
=
ghashAllToS
.
digest
();
...
...
src/share/classes/com/sun/jmx/remote/security/JMXSubjectDomainCombiner.java
浏览文件 @
ffafdb03
...
...
@@ -81,7 +81,7 @@ public class JMXSubjectDomainCombiner extends SubjectDomainCombiner {
* A ProtectionDomain with a null CodeSource and an empty permission set.
*/
private
static
final
ProtectionDomain
pdNoPerms
=
new
ProtectionDomain
(
nullCodeSource
,
new
Permissions
());
new
ProtectionDomain
(
nullCodeSource
,
new
Permissions
()
,
null
,
null
);
/**
* Get the current AccessControlContext combined with the supplied subject.
...
...
src/share/classes/java/lang/invoke/DirectMethodHandle.java
浏览文件 @
ffafdb03
...
...
@@ -158,7 +158,7 @@ class DirectMethodHandle extends MethodHandle {
private
static
LambdaForm
preparedLambdaForm
(
MemberName
m
)
{
assert
(
m
.
isInvocable
())
:
m
;
// call preparedFieldLambdaForm instead
MethodType
mtype
=
m
.
getInvocationType
().
basicType
();
assert
(!
m
.
isMethodHandleInvoke
()
||
"invokeBasic"
.
equals
(
m
.
getName
())
)
:
m
;
assert
(!
m
.
isMethodHandleInvoke
())
:
m
;
int
which
;
switch
(
m
.
getReferenceKind
())
{
case
REF_invokeVirtual:
which
=
LF_INVVIRTUAL
;
break
;
...
...
src/share/classes/java/lang/invoke/LambdaForm.java
浏览文件 @
ffafdb03
...
...
@@ -1034,7 +1034,7 @@ class LambdaForm {
this
.
member
=
member
;
this
.
resolvedHandle
=
resolvedHandle
;
// The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest.
//assert(!isInvokeBasic());
//assert(!isInvokeBasic(
member
));
}
NamedFunction
(
MethodType
basicInvokerType
)
{
assert
(
basicInvokerType
==
basicInvokerType
.
basicType
())
:
basicInvokerType
;
...
...
@@ -1045,13 +1045,13 @@ class LambdaForm {
// necessary to pass BigArityTest
this
.
member
=
Invokers
.
invokeBasicMethod
(
basicInvokerType
);
}
assert
(
isInvokeBasic
());
assert
(
isInvokeBasic
(
member
));
}
private
boolean
isInvokeBasic
(
)
{
private
static
boolean
isInvokeBasic
(
MemberName
member
)
{
return
member
!=
null
&&
member
.
isMethodHandleInvoke
()
&&
"invokeBasic"
.
equals
(
member
.
getName
());
member
.
getDeclaringClass
()
==
MethodHandle
.
class
&&
"invokeBasic"
.
equals
(
member
.
getName
());
}
// The next 3 constructors are used to break circular dependencies on MH.invokeStatic, etc.
...
...
@@ -1191,7 +1191,7 @@ class LambdaForm {
assert
(
mh
.
type
().
basicType
()
==
MethodType
.
genericMethodType
(
arity
).
changeReturnType
(
rtype
))
:
Arrays
.
asList
(
mh
,
rtype
,
arity
);
MemberName
member
=
mh
.
internalMemberName
();
if
(
member
!=
null
&&
member
.
getName
().
equals
(
"invokeBasic"
)
&&
member
.
isMethodHandleInvoke
(
))
{
if
(
isInvokeBasic
(
member
))
{
assert
(
arity
>
0
);
assert
(
a
[
0
]
instanceof
MethodHandle
);
MethodHandle
mh2
=
(
MethodHandle
)
a
[
0
];
...
...
src/share/classes/java/lang/invoke/MemberName.java
浏览文件 @
ffafdb03
...
...
@@ -341,7 +341,6 @@ import java.util.Objects;
}
/** Utility method to query if this member is a method handle invocation (invoke or invokeExact).
* Also returns true for the non-public MH.invokeBasic.
*/
public
boolean
isMethodHandleInvoke
()
{
final
int
bits
=
MH_INVOKE_MODS
&~
Modifier
.
PUBLIC
;
...
...
@@ -356,7 +355,6 @@ import java.util.Objects;
switch
(
name
)
{
case
"invoke"
:
case
"invokeExact"
:
case
"invokeBasic"
:
// internal sig-poly method
return
true
;
default
:
return
false
;
...
...
src/share/classes/java/lang/invoke/MethodHandles.java
浏览文件 @
ffafdb03
...
...
@@ -28,6 +28,7 @@ package java.lang.invoke;
import
java.lang.reflect.*
;
import
java.util.BitSet
;
import
java.util.List
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
sun.invoke.util.ValueConversions
;
...
...
@@ -864,8 +865,6 @@ assertEquals("", (String) MH_newString.invokeExact());
return
invoker
(
type
);
if
(
"invokeExact"
.
equals
(
name
))
return
exactInvoker
(
type
);
if
(
"invokeBasic"
.
equals
(
name
))
return
basicInvoker
(
type
);
assert
(!
MemberName
.
isMethodHandleInvokeName
(
name
));
return
null
;
}
...
...
@@ -2450,6 +2449,7 @@ assertEquals("yz", (String) d0.invokeExact(123, "x", "y", "z"));
*/
public
static
MethodHandle
dropArguments
(
MethodHandle
target
,
int
pos
,
List
<
Class
<?>>
valueTypes
)
{
valueTypes
=
copyTypes
(
valueTypes
);
MethodType
oldType
=
target
.
type
();
// get NPE
int
dropped
=
dropArgumentChecks
(
oldType
,
pos
,
valueTypes
);
MethodType
newType
=
oldType
.
insertParameterTypes
(
pos
,
valueTypes
);
...
...
@@ -2464,6 +2464,11 @@ assertEquals("yz", (String) d0.invokeExact(123, "x", "y", "z"));
return
result
;
}
private
static
List
<
Class
<?>>
copyTypes
(
List
<
Class
<?>>
types
)
{
Object
[]
a
=
types
.
toArray
();
return
Arrays
.
asList
(
Arrays
.
copyOf
(
a
,
a
.
length
,
Class
[].
class
));
}
private
static
int
dropArgumentChecks
(
MethodType
oldType
,
int
pos
,
List
<
Class
<?>>
valueTypes
)
{
int
dropped
=
valueTypes
.
size
();
MethodType
.
checkSlotCount
(
dropped
);
...
...
@@ -2845,7 +2850,7 @@ System.out.println((int) f0.invokeExact("x", "y")); // 2
int
filterValues
=
filterType
.
parameterCount
();
if
(
filterValues
==
0
?
(
rtype
!=
void
.
class
)
:
(
rtype
!=
filterType
.
parameterType
(
0
)))
:
(
rtype
!=
filterType
.
parameterType
(
0
)
||
filterValues
!=
1
))
throw
newIllegalArgumentException
(
"target and filter types do not match"
,
targetType
,
filterType
);
}
...
...
src/share/classes/java/security/ProtectionDomain.java
浏览文件 @
ffafdb03
...
...
@@ -469,6 +469,11 @@ public class ProtectionDomain {
public
ProtectionDomainCache
getProtectionDomainCache
()
{
return
new
PDCache
();
}
@Override
public
boolean
getStaticPermissionsField
(
ProtectionDomain
pd
)
{
return
pd
.
staticPermissions
;
}
});
}
...
...
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 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
...
...
@@ -37,6 +37,8 @@ import java.security.Security;
import
java.util.Set
;
import
java.util.WeakHashMap
;
import
java.lang.ref.WeakReference
;
import
sun.misc.SharedSecrets
;
import
sun.misc.JavaSecurityProtectionDomainAccess
;
/**
* A {@code SubjectDomainCombiner} updates ProtectionDomains
...
...
@@ -65,6 +67,9 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
private
static
final
boolean
allowCaching
=
(
useJavaxPolicy
&&
cachePolicy
());
private
static
final
JavaSecurityProtectionDomainAccess
pdAccess
=
SharedSecrets
.
getJavaSecurityProtectionDomainAccess
();
/**
* Associate the provided {@code Subject} with this
* {@code SubjectDomainCombiner}.
...
...
@@ -239,10 +244,16 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
subjectPd
=
cachedPDs
.
getValue
(
pd
);
if
(
subjectPd
==
null
)
{
subjectPd
=
new
ProtectionDomain
(
pd
.
getCodeSource
(),
if
(
pdAccess
.
getStaticPermissionsField
(
pd
))
{
// Need to keep static ProtectionDomain objects static
subjectPd
=
new
ProtectionDomain
(
pd
.
getCodeSource
(),
pd
.
getPermissions
());
}
else
{
subjectPd
=
new
ProtectionDomain
(
pd
.
getCodeSource
(),
pd
.
getPermissions
(),
pd
.
getClassLoader
(),
principals
);
}
cachedPDs
.
putValue
(
pd
,
subjectPd
);
}
else
{
allNew
=
false
;
...
...
@@ -341,60 +352,63 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
ProtectionDomain
subjectPd
=
cachedPDs
.
getValue
(
pd
);
if
(
subjectPd
==
null
)
{
// XXX
// we must first add the original permissions.
// that way when we later add the new JAAS permissions,
// any unresolved JAAS-related permissions will
// automatically get resolved.
// get the original perms
Permissions
perms
=
new
Permissions
();
PermissionCollection
coll
=
pd
.
getPermissions
();
java
.
util
.
Enumeration
<
Permission
>
e
;
if
(
coll
!=
null
)
{
synchronized
(
coll
)
{
e
=
coll
.
elements
();
while
(
e
.
hasMoreElements
())
{
Permission
newPerm
=
if
(
pdAccess
.
getStaticPermissionsField
(
pd
))
{
// keep static ProtectionDomain objects static
subjectPd
=
new
ProtectionDomain
(
pd
.
getCodeSource
(),
pd
.
getPermissions
());
}
else
{
// XXX
// we must first add the original permissions.
// that way when we later add the new JAAS permissions,
// any unresolved JAAS-related permissions will
// automatically get resolved.
// get the original perms
Permissions
perms
=
new
Permissions
();
PermissionCollection
coll
=
pd
.
getPermissions
();
java
.
util
.
Enumeration
<
Permission
>
e
;
if
(
coll
!=
null
)
{
synchronized
(
coll
)
{
e
=
coll
.
elements
();
while
(
e
.
hasMoreElements
())
{
Permission
newPerm
=
e
.
nextElement
();
perms
.
add
(
newPerm
);
perms
.
add
(
newPerm
);
}
}
}
}
// get perms from the policy
final
java
.
security
.
CodeSource
finalCs
=
pd
.
getCodeSource
()
;
final
Subject
finalS
=
subject
;
PermissionCollection
newPerms
=
java
.
security
.
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
PermissionCollection
>()
{
@SuppressWarnings
(
"deprecation"
)
public
PermissionCollection
run
()
{
return
javax
.
security
.
auth
.
Policy
.
getPolicy
().
getPermissions
(
finalS
,
finalCs
);
}
});
// add the newly granted perms,
// avoiding duplicates
synchronized
(
newPerms
)
{
e
=
newPerms
.
elements
();
while
(
e
.
hasMoreElements
())
{
Permission
newPerm
=
e
.
nextElement
();
if
(!
perms
.
implies
(
newPerm
))
{
perms
.
add
(
newPerm
);
if
(
debug
!=
null
)
debug
.
println
(
"Adding perm "
+
newPerm
+
"\n"
);
// get perms from the policy
final
java
.
security
.
CodeSource
finalCs
=
pd
.
getCodeSource
();
final
Subject
finalS
=
subject
;
PermissionCollection
newPerms
=
java
.
security
.
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
PermissionCollection
>()
{
@SuppressWarnings
(
"deprecation"
)
public
PermissionCollection
run
()
{
return
javax
.
security
.
auth
.
Policy
.
getPolicy
().
getPermissions
(
finalS
,
finalCs
);
}
}
);
// add the newly granted perms,
// avoiding duplicates
synchronized
(
newPerms
)
{
e
=
newPerms
.
elements
();
while
(
e
.
hasMoreElements
())
{
Permission
newPerm
=
e
.
nextElement
();
if
(!
perms
.
implies
(
newPerm
))
{
perms
.
add
(
newPerm
);
if
(
debug
!=
null
)
debug
.
println
(
"Adding perm "
+
newPerm
+
"\n"
);
}
}
}
subjectPd
=
new
ProtectionDomain
(
finalCs
,
perms
,
pd
.
getClassLoader
(),
principals
);
}
subjectPd
=
new
ProtectionDomain
(
finalCs
,
perms
,
pd
.
getClassLoader
(),
principals
);
if
(
allowCaching
)
cachedPDs
.
putValue
(
pd
,
subjectPd
);
}
...
...
src/share/classes/sun/launcher/resources/launcher_zh_TW.properties
浏览文件 @
ffafdb03
#
# Copyright (c) 2007, 201
5
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2007, 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
...
...
@@ -44,7 +44,7 @@ java.launcher.X.macosx.usage=\n\u4E0B\u5217\u662F Mac OS X \u7279\u5B9A\u9078\u9
java.launcher.cls.error1
=
\u
932F
\u
8AA4:
\u
627E
\u
4E0D
\u5230\u6216\u7121\u
6CD5
\u
8F09
\u5165\u
4E3B
\u8981\u
985E
\u5225
{0}
java.launcher.cls.error2
=
\u
932F
\u
8AA4:
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
4E0D
\u
662F
\u
985E
\u5225
{1}
\u
4E2D
\u7684
{0}
\u
FF0C
\u
8ACB
\u
5B9A
\u
7FA9
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
70BA:
\n
public static void main(String[] args)
java.launcher.cls.error3
=
\u
932F
\u
8AA4:
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
5FC5
\u9808\u
50B3
\u
56DE
\u
985E
\u5225
{0}
\u
4E2D void
\u
985E
\u
578B
\u7684\u
503C
\u
FF0C
\n\u
8ACB
\u
5B9A
\u
7FA9
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
70BA:
\n
public static void main(String[] args)
java.launcher.cls.error3
=
\u
932F
\u
8AA4:
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
5FC5
\u9808\u
50B3
\u
56DE
\u
985E
\u5225
{0}
\u
4E2D void
\u
985E
\u
578B
\u7684\u
503C
\u
FF0C
\n\u
8ACB
\u
5B9A
\u
7FA9
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
70BA:
\n
public static void main(String[] args)
java.launcher.cls.error4
=
\u
932F
\u
8AA4:
\u5728\u
985E
\u5225
{0}
\u
4E2D
\u
627E
\u
4E0D
\u5230\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
FF0C
\u
8ACB
\u
5B9A
\u
7FA9
\u
4E3B
\u8981\u
65B9
\u
6CD5
\u
70BA:
\n
public static void main(String[] args)
\n\u6216\u8005
JavaFX
\u
61C9
\u7528\u
7A0B
\u
5F0F
\u
985E
\u5225\u
5FC5
\u9808\u
64F4
\u5145
{1}
java.launcher.cls.error5
=
\u
932F
\u
8AA4:
\u
907A
\u
6F0F
\u
57F7
\u
884C
\u
6B64
\u
61C9
\u7528\u
7A0B
\u
5F0F
\u6240\u9700\u7684
JavaFX
\u
7A0B
\u
5F0F
\u
5BE6
\u
969B
\u
57F7
\u
884C
\u5143\u
4EF6
java.launcher.jar.error1
=
\u
932F
\u
8AA4:
\u5617\u
8A66
\u
958B
\u
555F
\u
6A94
\u6848
{0}
\u6642\u
767C
\u
751F
\u
672A
\u9810\u
671F
\u7684\u
932F
\u
8AA4
...
...
src/share/classes/sun/management/resources/agent_zh_TW.properties
浏览文件 @
ffafdb03
#
#
# Copyright (c) 2004, 201
3
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2004, 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
...
...
@@ -31,10 +31,10 @@ agent.err.error = \u932F\u8AA4
agent.err.exception
=
\u
4EE3
\u7406\u
7A0B
\u
5F0F
\u
767C
\u
751F
\u7570\u
5E38
agent.err.warning
=
\u
8B66
\u
544A
agent.err.configfile.notfound
=
\u
627E
\u
4E0D
\u5230\u
914D
\u
7F6E
\u
6A94
\u6848
agent.err.configfile.failed
=
\u7121\u
6CD5
\u
8B80
\u
53D6
\u
914D
\u
7F6E
\u
6A94
\u6848
agent.err.configfile.closed.failed
=
\u7121\u
6CD5
\u
95DC
\u9589\u
914D
\u
7F6E
\u
6A94
\u6848
agent.err.configfile.access.denied
=
\u
5B58
\u
53D6
\u
914D
\u
7F6E
\u
6A94
\u6848\u
906D
\u5230\u
62D2
\u
7D55
agent.err.configfile.notfound
=
\u
627E
\u
4E0D
\u5230\u
7D44
\u
614B
\u
6A94
\u6848
agent.err.configfile.failed
=
\u7121\u
6CD5
\u
8B80
\u
53D6
\u
7D44
\u
614B
\u
6A94
\u6848
agent.err.configfile.closed.failed
=
\u7121\u
6CD5
\u
95DC
\u9589\u
7D44
\u
614B
\u
6A94
\u6848
agent.err.configfile.access.denied
=
\u
5B58
\u
53D6
\u
7D44
\u
614B
\u
6A94
\u6848\u
906D
\u5230\u
62D2
\u
7D55
agent.err.exportaddress.failed
=
\u
5C07 JMX
\u9023\u
63A5
\u5668\u
4F4D
\u5740\u
532F
\u
51FA
\u
81F3
\u
8A2D
\u5099\u
7DE9
\u
885D
\u5340\u5931\u6557
...
...
src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java
浏览文件 @
ffafdb03
...
...
@@ -36,4 +36,9 @@ public interface JavaSecurityProtectionDomainAccess {
* Returns the ProtectionDomainCache.
*/
ProtectionDomainCache
getProtectionDomainCache
();
/**
* Returns the staticPermissions field of the specified object
*/
boolean
getStaticPermissionsField
(
ProtectionDomain
pd
);
}
src/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties
浏览文件 @
ffafdb03
#
#
# Copyright (c) 1998, 201
3
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 1998, 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
...
...
@@ -71,7 +71,7 @@ rmid.group.inactive=rmid: \u555F\u52D5\u7FA4\u7D44\u672A\u5728\u4F7F\u7528\u4E2D
# "Activation.main", "sun.rmi.activation.execPolicy", "ExecPermission" and
# "ExecOptionPermission" should not be translated, since they refer to
# class/permission names.
rmid.exec.perms.inadequate
=
Activation.main:
\u
8B66
\u
544A: sun.rmi.activation.execPolicy
\u
7CFB
\u
7D71
\n\u
5C6C
\u6027\u
672A
\u6307\u
5B9A
\u
FF0C
\u
4E26
\u
4E14
\u
672A
\u6388\u
4E88 ExecPermissions/ExecOptionPermissions;
\n\u
5F8C
\u
7E8C
\u7684\u
555F
\u
52D5
\u5617\u
8A66
\u
53EF
\u
80FD
\u6703\u
56E0
\u
70BA
\u
672A
\u6210\u
529F
\u7684\n
ExecPermission/ExecOptionPermission
\u
6B0A
\u9650\u
6AA2
\u
67E5
\u
800C
\u5931\u6557\u3002\u5982\u9700\n\u
95DC
\u
65BC
\u5982\u
4F55
\u
914D
\u
7F6E
rmid
\u
5B89
\u5168\u7684\u
8AAA
\u
660E
\u6587\u
4EF6
\u
FF0C
\u
8ACB
\u
53C3
\u8003
:
\n\n
http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html
\n
http://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html
\n
rmid.exec.perms.inadequate
=
Activation.main:
\u
8B66
\u
544A: sun.rmi.activation.execPolicy
\u
7CFB
\u
7D71
\n\u
5C6C
\u6027\u
672A
\u6307\u
5B9A
\u
FF0C
\u
4E26
\u
4E14
\u
672A
\u6388\u
4E88 ExecPermissions/ExecOptionPermissions;
\n\u
5F8C
\u
7E8C
\u7684\u
555F
\u
52D5
\u5617\u
8A66
\u
53EF
\u
80FD
\u6703\u
56E0
\u
70BA
\u
672A
\u6210\u
529F
\u7684\n
ExecPermission/ExecOptionPermission
\u
6B0A
\u9650\u
6AA2
\u
67E5
\u
800C
\u5931\u6557\u3002\u5982\u9700\n\u
95DC
\u
65BC
\u5982\u
4F55
\u
8A2D
\u
5B9A
rmid
\u
5B89
\u5168\u7684\u
8AAA
\u
660E
\u6587\u
4EF6
\u
FF0C
\u
8ACB
\u
53C3
\u8003
:
\n\n
http://java.sun.com/j2se/1.4/docs/tooldocs/solaris/rmid.html
\n
http://java.sun.com/j2se/1.4/docs/tooldocs/win32/rmid.html
\n
# "rmid", "-port", "-log", "-stop", "-C" and "-J" should not be translated,
# because they are syntax
...
...
src/share/classes/sun/security/tools/jarsigner/Resources_ja.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2000, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
...
...
@@ -88,6 +88,8 @@ public class Resources_ja extends java.util.ListResourceBundle {
"[-tsacert <alias>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u516C\u958B\u9375\u8A3C\u660E\u66F8"
},
{
".tsapolicyid.tsapolicyid.for.Timestamping.Authority"
,
"[-tsapolicyid <oid>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306ETSAPolicyID"
},
{
".tsadigestalg.algorithm.of.digest.data.in.timestamping.request"
,
"[-tsadigestalg <algorithm>] \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u30FB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30C7\u30FC\u30BF\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0"
},
{
".altsigner.class.class.name.of.an.alternative.signing.mechanism"
,
"[-altsigner <class>] \u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u30AF\u30E9\u30B9\u540D"
},
{
".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism"
,
...
...
src/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2000, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
...
...
@@ -88,6 +88,8 @@ public class Resources_zh_CN extends java.util.ListResourceBundle {
"[-tsacert <\u522B\u540D>] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684\u516C\u5171\u5BC6\u94A5\u8BC1\u4E66"
},
{
".tsapolicyid.tsapolicyid.for.Timestamping.Authority"
,
"[-tsapolicyid <oid>] \u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684 TSAPolicyID"
},
{
".tsadigestalg.algorithm.of.digest.data.in.timestamping.request"
,
"[-tsadigestalg <\u7B97\u6CD5>] \u65F6\u95F4\u6233\u8BF7\u6C42\u4E2D\u7684\u6458\u8981\u6570\u636E\u7684\u7B97\u6CD5"
},
{
".altsigner.class.class.name.of.an.alternative.signing.mechanism"
,
"[-altsigner <\u7C7B>] \u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236\u7684\u7C7B\u540D"
},
{
".altsignerpath.pathlist.location.of.an.alternative.signing.mechanism"
,
...
...
src/share/classes/sun/security/tools/keytool/Resources_zh_TW.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2000, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
...
...
@@ -381,9 +381,9 @@ public class Resources_zh_TW extends java.util.ListResourceBundle {
"\u6C92\u6709\u4F86\u81EA SSL \u4F3A\u670D\u5668\u7684\u6191\u8B49"
},
{
".The.integrity.of.the.information.stored.in.your.keystore."
,
"* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C
*\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002
*"
},
"* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C
*\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002
*"
},
{
".The.integrity.of.the.information.stored.in.the.srckeystore."
,
"* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A
*\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002
*"
},
"* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A
*\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002
*"
},
{
"Certificate.reply.does.not.contain.public.key.for.alias."
,
"\u6191\u8B49\u56DE\u8986\u4E26\u672A\u5305\u542B <{0}> \u7684\u516C\u958B\u91D1\u9470"
},
...
...
src/share/classes/sun/security/tools/policytool/Resources_zh_TW.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2000, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
...
...
@@ -35,7 +35,7 @@ public class Resources_zh_TW extends java.util.ListResourceBundle {
private
static
final
Object
[][]
contents
=
{
{
"NEWLINE"
,
"\n"
},
{
"Warning.A.public.key.for.alias.signers.i.does.not.exist.Make.sure.a.KeyStore.is.properly.configured."
,
"\u8B66\u544A: \u5225\u540D {0} \u7684\u516C\u958B\u91D1\u9470\u4E0D\u5B58\u5728\u3002\u8ACB\u78BA\u5B9A\u91D1\u9470\u5132\u5B58\u5EAB\u
914D\u7F6E
\u6B63\u78BA\u3002"
},
"\u8B66\u544A: \u5225\u540D {0} \u7684\u516C\u958B\u91D1\u9470\u4E0D\u5B58\u5728\u3002\u8ACB\u78BA\u5B9A\u91D1\u9470\u5132\u5B58\u5EAB\u
8A2D\u5B9A
\u6B63\u78BA\u3002"
},
{
"Warning.Class.not.found.class"
,
"\u8B66\u544A: \u627E\u4E0D\u5230\u985E\u5225 {0}"
},
{
"Warning.Invalid.argument.s.for.constructor.arg"
,
"\u8B66\u544A: \u7121\u6548\u7684\u5EFA\u69CB\u5B50\u5F15\u6578: {0}"
},
...
...
src/share/classes/sun/security/util/Resources_zh_TW.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2000, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 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
...
...
@@ -83,7 +83,7 @@ public class Resources_zh_TW extends java.util.ListResourceBundle {
// javax.security.auth.login.LoginContext
{
"Invalid.null.input.name"
,
"\u7121\u6548\u7A7A\u503C\u8F38\u5165: \u540D\u7A31"
},
{
"No.LoginModules.configured.for.name"
,
"\u7121\u91DD\u5C0D {0} \u
914D\u7F6E
\u7684 LoginModules"
},
"\u7121\u91DD\u5C0D {0} \u
8A2D\u5B9A
\u7684 LoginModules"
},
{
"invalid.null.Subject.provided"
,
"\u63D0\u4F9B\u7121\u6548\u7A7A\u503C\u4E3B\u984C"
},
{
"invalid.null.CallbackHandler.provided"
,
"\u63D0\u4F9B\u7121\u6548\u7A7A\u503C CallbackHandler"
},
...
...
src/windows/classes/sun/nio/ch/PipeImpl.java
浏览文件 @
ffafdb03
/*
* Copyright (c) 2002, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 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
...
...
@@ -37,6 +37,7 @@ import java.nio.channels.spi.*;
import
java.security.AccessController
;
import
java.security.PrivilegedExceptionAction
;
import
java.security.PrivilegedActionException
;
import
java.security.SecureRandom
;
import
java.util.Random
;
...
...
@@ -47,24 +48,16 @@ import java.util.Random;
class
PipeImpl
extends
Pipe
{
// Number of bytes in the secret handshake.
private
static
final
int
NUM_SECRET_BYTES
=
16
;
// Random object for handshake values
private
static
final
Random
RANDOM_NUMBER_GENERATOR
=
new
SecureRandom
();
// Source and sink channels
private
SourceChannel
source
;
private
SinkChannel
sink
;
// Random object for handshake values
private
static
final
Random
rnd
;
static
{
byte
[]
someBytes
=
new
byte
[
8
];
boolean
resultOK
=
IOUtil
.
randomBytes
(
someBytes
);
if
(
resultOK
)
{
rnd
=
new
Random
(
ByteBuffer
.
wrap
(
someBytes
).
getLong
());
}
else
{
rnd
=
new
Random
();
}
}
private
class
Initializer
implements
PrivilegedExceptionAction
<
Void
>
{
...
...
@@ -112,6 +105,10 @@ class PipeImpl
SocketChannel
sc2
=
null
;
try
{
// Create secret with a backing array.
ByteBuffer
secret
=
ByteBuffer
.
allocate
(
NUM_SECRET_BYTES
);
ByteBuffer
bb
=
ByteBuffer
.
allocate
(
NUM_SECRET_BYTES
);
// Loopback address
InetAddress
lb
=
InetAddress
.
getByName
(
"127.0.0.1"
);
assert
(
lb
.
isLoopbackAddress
());
...
...
@@ -128,18 +125,22 @@ class PipeImpl
// Establish connection (assume connections are eagerly
// accepted)
sc1
=
SocketChannel
.
open
(
sa
);
ByteBuffer
bb
=
ByteBuffer
.
allocate
(
8
);
long
secret
=
rnd
.
nextLong
();
bb
.
putLong
(
secret
).
flip
();
sc1
.
write
(
bb
);
RANDOM_NUMBER_GENERATOR
.
nextBytes
(
secret
.
array
());
do
{
sc1
.
write
(
secret
);
}
while
(
secret
.
hasRemaining
());
secret
.
rewind
();
// Get a connection and verify it is legitimate
sc2
=
ssc
.
accept
();
bb
.
clear
();
sc2
.
read
(
bb
);
do
{
sc2
.
read
(
bb
);
}
while
(
bb
.
hasRemaining
());
bb
.
rewind
();
if
(
bb
.
getLong
()
==
secret
)
if
(
bb
.
equals
(
secret
))
break
;
sc2
.
close
();
sc1
.
close
();
}
...
...
src/windows/native/sun/windows/awt_Font.cpp
浏览文件 @
ffafdb03
...
...
@@ -256,7 +256,7 @@ AwtFont* AwtFont::Create(JNIEnv *env, jobject font, jint angle, jfloat awScale)
AwtFont
*
awtFont
=
NULL
;
jobjectArray
compFont
=
NULL
;
int
cfnum
;
int
cfnum
=
0
;
try
{
if
(
env
->
EnsureLocalCapacity
(
3
)
<
0
)
...
...
@@ -264,7 +264,9 @@ AwtFont* AwtFont::Create(JNIEnv *env, jobject font, jint angle, jfloat awScale)
if
(
IsMultiFont
(
env
,
font
))
{
compFont
=
GetComponentFonts
(
env
,
font
);
cfnum
=
env
->
GetArrayLength
(
compFont
);
if
(
compFont
!=
NULL
)
{
cfnum
=
env
->
GetArrayLength
(
compFont
);
}
}
else
{
compFont
=
NULL
;
cfnum
=
0
;
...
...
@@ -614,7 +616,9 @@ int AwtFont::getFontDescriptorNumber(JNIEnv *env, jobject font,
if
(
IsMultiFont
(
env
,
font
))
{
array
=
GetComponentFonts
(
env
,
font
);
num
=
env
->
GetArrayLength
(
array
);
if
(
array
!=
NULL
)
{
num
=
env
->
GetArrayLength
(
array
);
}
}
else
{
array
=
NULL
;
num
=
0
;
...
...
@@ -672,14 +676,16 @@ SIZE AwtFont::DrawStringSize_sub(jstring str, HDC hDC,
if
(
IsMultiFont
(
env
,
font
))
{
jobject
peer
=
env
->
CallObjectMethod
(
font
,
AwtFont
::
peerMID
);
array
=
(
jobjectArray
)(
env
->
CallObjectMethod
(
peer
,
AwtFont
::
makeConvertedMultiFontStringMID
,
str
));
DASSERT
(
!
safe_ExceptionOccurred
(
env
));
if
(
peer
!=
NULL
)
{
array
=
(
jobjectArray
)(
env
->
CallObjectMethod
(
peer
,
AwtFont
::
makeConvertedMultiFontStringMID
,
str
));
DASSERT
(
!
safe_ExceptionOccurred
(
env
));
if
(
array
!=
NULL
)
{
arrayLength
=
env
->
GetArrayLength
(
array
);
if
(
array
!=
NULL
)
{
arrayLength
=
env
->
GetArrayLength
(
array
);
}
env
->
DeleteLocalRef
(
peer
);
}
env
->
DeleteLocalRef
(
peer
);
}
else
{
array
=
NULL
;
arrayLength
=
0
;
...
...
src/windows/native/sun/windows/awt_Font.h
浏览文件 @
ffafdb03
...
...
@@ -230,11 +230,14 @@ public:
INLINE
static
jobjectArray
GetComponentFonts
(
JNIEnv
*
env
,
jobject
font
)
{
jobject
platformFont
=
env
->
CallObjectMethod
(
font
,
AwtFont
::
peerMID
);
jobjectArray
result
=
(
jobjectArray
)(
env
->
GetObjectField
(
platformFont
,
AwtFont
::
componentFontsID
));
env
->
DeleteLocalRef
(
platformFont
);
return
result
;
if
(
platformFont
!=
NULL
)
{
jobjectArray
result
=
(
jobjectArray
)(
env
->
GetObjectField
(
platformFont
,
AwtFont
::
componentFontsID
));
env
->
DeleteLocalRef
(
platformFont
);
return
result
;
}
return
NULL
;
}
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录