Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
92252f85
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看板
提交
92252f85
编写于
4月 10, 2015
作者:
V
valeriep
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8074865: General crypto resilience changes
Reviewed-by: mullan, xuelei
上级
03aa2980
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
41 addition
and
49 deletion
+41
-49
src/share/classes/com/sun/crypto/provider/AESCrypt.java
src/share/classes/com/sun/crypto/provider/AESCrypt.java
+3
-3
src/share/classes/com/sun/crypto/provider/CipherCore.java
src/share/classes/com/sun/crypto/provider/CipherCore.java
+2
-2
src/share/classes/com/sun/crypto/provider/DESKey.java
src/share/classes/com/sun/crypto/provider/DESKey.java
+3
-2
src/share/classes/com/sun/crypto/provider/DESedeKey.java
src/share/classes/com/sun/crypto/provider/DESedeKey.java
+3
-2
src/share/classes/com/sun/crypto/provider/PBEKey.java
src/share/classes/com/sun/crypto/provider/PBEKey.java
+3
-2
src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
+4
-3
src/share/classes/java/security/Identity.java
src/share/classes/java/security/Identity.java
+2
-2
src/share/classes/java/security/MessageDigest.java
src/share/classes/java/security/MessageDigest.java
+5
-1
src/share/classes/java/security/Signature.java
src/share/classes/java/security/Signature.java
+2
-2
src/share/classes/javax/crypto/spec/SecretKeySpec.java
src/share/classes/javax/crypto/spec/SecretKeySpec.java
+3
-2
src/share/classes/sun/security/pkcs11/P11Key.java
src/share/classes/sun/security/pkcs11/P11Key.java
+2
-2
src/share/classes/sun/security/pkcs11/wrapper/Functions.java
src/share/classes/sun/security/pkcs11/wrapper/Functions.java
+2
-18
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
+2
-2
src/share/classes/sun/security/rsa/RSASignature.java
src/share/classes/sun/security/rsa/RSASignature.java
+1
-2
src/share/classes/sun/security/ssl/ClientHandshaker.java
src/share/classes/sun/security/ssl/ClientHandshaker.java
+1
-1
src/share/classes/sun/security/ssl/HandshakeMessage.java
src/share/classes/sun/security/ssl/HandshakeMessage.java
+2
-2
src/share/classes/sun/security/ssl/ServerHandshaker.java
src/share/classes/sun/security/ssl/ServerHandshaker.java
+1
-1
未找到文件。
src/share/classes/com/sun/crypto/provider/AESCrypt.java
浏览文件 @
92252f85
/*
* Copyright (c) 2002, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 201
5
, 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,7 +37,7 @@
package
com.sun.crypto.provider
;
import
java.security.InvalidKeyException
;
import
java.
util.Arrays
;
import
java.
security.MessageDigest
;
/**
* Rijndael --pronounced Reindaal-- is a symmetric cipher with a 128-bit
...
...
@@ -88,7 +88,7 @@ final class AESCrypt extends SymmetricCipher implements AESConstants
key
.
length
+
" bytes"
);
}
if
(!
Arrays
.
equals
(
key
,
lastKey
))
{
if
(!
MessageDigest
.
isEqual
(
key
,
lastKey
))
{
// re-generate session key 'sessionK' when cipher key changes
makeSessionKey
(
key
);
lastKey
=
key
.
clone
();
// save cipher key
...
...
src/share/classes/com/sun/crypto/provider/CipherCore.java
浏览文件 @
92252f85
/*
* Copyright (c) 2002, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 201
5
, 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
...
...
@@ -568,7 +568,7 @@ final class CipherCore {
// check key+iv for encryption in GCM mode
requireReinit
=
Arrays
.
equals
(
ivBytes
,
lastEncIv
)
&&
Arrays
.
equals
(
keyBytes
,
lastEncKey
);
MessageDigest
.
isEqual
(
keyBytes
,
lastEncKey
);
if
(
requireReinit
)
{
throw
new
InvalidAlgorithmParameterException
(
"Cannot reuse iv for GCM encryption"
);
...
...
src/share/classes/com/sun/crypto/provider/DESKey.java
浏览文件 @
92252f85
/*
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
5
, 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
...
...
@@ -25,6 +25,7 @@
package
com.sun.crypto.provider
;
import
java.security.MessageDigest
;
import
java.security.KeyRep
;
import
java.security.InvalidKeyException
;
import
javax.crypto.SecretKey
;
...
...
@@ -113,7 +114,7 @@ final class DESKey implements SecretKey {
return
false
;
byte
[]
thatKey
=
((
SecretKey
)
obj
).
getEncoded
();
boolean
ret
=
java
.
util
.
Arrays
.
equals
(
this
.
key
,
thatKey
);
boolean
ret
=
MessageDigest
.
isEqual
(
this
.
key
,
thatKey
);
java
.
util
.
Arrays
.
fill
(
thatKey
,
(
byte
)
0x00
);
return
ret
;
}
...
...
src/share/classes/com/sun/crypto/provider/DESedeKey.java
浏览文件 @
92252f85
/*
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
5
, 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
...
...
@@ -25,6 +25,7 @@
package
com.sun.crypto.provider
;
import
java.security.MessageDigest
;
import
java.security.KeyRep
;
import
java.security.InvalidKeyException
;
import
javax.crypto.SecretKey
;
...
...
@@ -114,7 +115,7 @@ final class DESedeKey implements SecretKey {
return
false
;
byte
[]
thatKey
=
((
SecretKey
)
obj
).
getEncoded
();
boolean
ret
=
java
.
util
.
Arrays
.
equals
(
this
.
key
,
thatKey
);
boolean
ret
=
MessageDigest
.
isEqual
(
this
.
key
,
thatKey
);
java
.
util
.
Arrays
.
fill
(
thatKey
,
(
byte
)
0x00
);
return
ret
;
}
...
...
src/share/classes/com/sun/crypto/provider/PBEKey.java
浏览文件 @
92252f85
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
5
, 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
...
...
@@ -25,6 +25,7 @@
package
com.sun.crypto.provider
;
import
java.security.MessageDigest
;
import
java.security.KeyRep
;
import
java.security.spec.InvalidKeySpecException
;
import
javax.crypto.SecretKey
;
...
...
@@ -107,7 +108,7 @@ final class PBEKey implements SecretKey {
return
false
;
byte
[]
thatEncoded
=
that
.
getEncoded
();
boolean
ret
=
java
.
util
.
Arrays
.
equals
(
this
.
key
,
thatEncoded
);
boolean
ret
=
MessageDigest
.
isEqual
(
this
.
key
,
thatEncoded
);
java
.
util
.
Arrays
.
fill
(
thatEncoded
,
(
byte
)
0x00
);
return
ret
;
}
...
...
src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java
浏览文件 @
92252f85
/*
* Copyright (c) 2005, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
5
, 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
...
...
@@ -30,6 +30,7 @@ import java.nio.ByteBuffer;
import
java.nio.CharBuffer
;
import
java.nio.charset.Charset
;
import
java.util.Arrays
;
import
java.security.MessageDigest
;
import
java.security.KeyRep
;
import
java.security.GeneralSecurityException
;
import
java.security.NoSuchAlgorithmException
;
...
...
@@ -152,7 +153,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
SecretKey
sk
=
(
SecretKey
)
obj
;
return
prf
.
getAlgorithm
().
equalsIgnoreCase
(
sk
.
getAlgorithm
())
&&
Arrays
.
equals
(
password
,
sk
.
getEncoded
());
MessageDigest
.
isEqual
(
password
,
sk
.
getEncoded
());
}
};
prf
.
init
(
macKey
);
...
...
@@ -238,7 +239,7 @@ final class PBKDF2KeyImpl implements javax.crypto.interfaces.PBEKey {
if
(!(
that
.
getFormat
().
equalsIgnoreCase
(
"RAW"
)))
return
false
;
byte
[]
thatEncoded
=
that
.
getEncoded
();
boolean
ret
=
Arrays
.
equals
(
key
,
that
.
getEncoded
());
boolean
ret
=
MessageDigest
.
isEqual
(
key
,
that
.
getEncoded
());
java
.
util
.
Arrays
.
fill
(
thatEncoded
,
(
byte
)
0x00
);
return
ret
;
}
...
...
src/share/classes/java/security/Identity.java
浏览文件 @
92252f85
/*
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
5
, 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
...
...
@@ -261,7 +261,7 @@ public abstract class Identity implements Principal, Serializable {
certificates
.
addElement
(
certificate
);
}
private
boolean
keyEquals
(
Key
aKey
,
Key
anotherKey
)
{
private
boolean
keyEquals
(
PublicKey
aKey
,
Public
Key
anotherKey
)
{
String
aKeyFormat
=
aKey
.
getFormat
();
String
anotherKeyFormat
=
anotherKey
.
getFormat
();
if
((
aKeyFormat
==
null
)
^
(
anotherKeyFormat
==
null
))
...
...
src/share/classes/java/security/MessageDigest.java
浏览文件 @
92252f85
/*
* Copyright (c) 1996, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
5
, 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
...
...
@@ -440,6 +440,10 @@ public abstract class MessageDigest extends MessageDigestSpi {
* @return true if the digests are equal, false otherwise.
*/
public
static
boolean
isEqual
(
byte
[]
digesta
,
byte
[]
digestb
)
{
if
(
digesta
==
digestb
)
return
true
;
if
(
digesta
==
null
||
digestb
==
null
)
{
return
false
;
}
if
(
digesta
.
length
!=
digestb
.
length
)
{
return
false
;
}
...
...
src/share/classes/java/security/Signature.java
浏览文件 @
92252f85
/*
* Copyright (c) 1996, 201
4
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
5
, 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
...
...
@@ -1316,7 +1316,7 @@ public abstract class Signature extends SignatureSpi {
byte
[]
out
=
cipher
.
doFinal
(
sigBytes
);
byte
[]
dataBytes
=
data
.
toByteArray
();
data
.
reset
();
return
Arrays
.
equals
(
out
,
dataBytes
);
return
MessageDigest
.
isEqual
(
out
,
dataBytes
);
}
catch
(
BadPaddingException
e
)
{
// e.g. wrong public key used
// return false rather than throwing exception
...
...
src/share/classes/javax/crypto/spec/SecretKeySpec.java
浏览文件 @
92252f85
/*
* Copyright (c) 1998, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
5
, 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
...
...
@@ -25,6 +25,7 @@
package
javax.crypto.spec
;
import
java.security.MessageDigest
;
import
java.security.spec.KeySpec
;
import
javax.crypto.SecretKey
;
...
...
@@ -226,6 +227,6 @@ public class SecretKeySpec implements KeySpec, SecretKey {
byte
[]
thatKey
=
((
SecretKey
)
obj
).
getEncoded
();
return
java
.
util
.
Arrays
.
equals
(
this
.
key
,
thatKey
);
return
MessageDigest
.
isEqual
(
this
.
key
,
thatKey
);
}
}
src/share/classes/sun/security/pkcs11/P11Key.java
浏览文件 @
92252f85
/*
* Copyright (c) 2003, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
5
, 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
...
...
@@ -165,7 +165,7 @@ abstract class P11Key implements Key, Length {
}
else
{
otherEnc
=
other
.
getEncoded
();
}
return
Arrays
.
equals
(
thisEnc
,
otherEnc
);
return
MessageDigest
.
isEqual
(
thisEnc
,
otherEnc
);
}
public
int
hashCode
()
{
...
...
src/share/classes/sun/security/pkcs11/wrapper/Functions.java
浏览文件 @
92252f85
/*
* Copyright (c) 2003, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
5
, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 2002 Graz University of Technology. All rights reserved.
...
...
@@ -444,22 +444,6 @@ public class Functions {
return
getId
(
objectClassIds
,
name
);
}
/**
* Check the given arrays for equalitiy. This method considers both arrays as
* equal, if both are <code>null</code> or both have the same length and
* contain exactly the same byte values.
*
* @param array1 The first array.
* @param array2 The second array.
* @return True, if both arrays are <code>null</code> or both have the same
* length and contain exactly the same byte values. False, otherwise.
* @preconditions
* @postconditions
*/
public
static
boolean
equals
(
byte
[]
array1
,
byte
[]
array2
)
{
return
Arrays
.
equals
(
array1
,
array2
);
}
/**
* Check the given arrays for equalitiy. This method considers both arrays as
* equal, if both are <code>null</code> or both have the same length and
...
...
@@ -472,7 +456,7 @@ public class Functions {
* @preconditions
* @postconditions
*/
p
ublic
static
boolean
equals
(
char
[]
array1
,
char
[]
array2
)
{
p
rivate
static
boolean
equals
(
char
[]
array1
,
char
[]
array2
)
{
return
Arrays
.
equals
(
array1
,
array2
);
}
...
...
src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java
浏览文件 @
92252f85
/*
* Copyright (c) 1999, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 201
5
, 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
...
...
@@ -2012,7 +2012,7 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
"(MAC algorithm: "
+
m
.
getAlgorithm
()
+
")"
);
}
if
(!
Arrays
.
equals
(
macData
.
getDigest
(),
macResult
))
{
if
(!
MessageDigest
.
isEqual
(
macData
.
getDigest
(),
macResult
))
{
throw
new
SecurityException
(
"Failed PKCS12"
+
" integrity checking"
);
}
...
...
src/share/classes/sun/security/rsa/RSASignature.java
浏览文件 @
92252f85
...
...
@@ -27,7 +27,6 @@ package sun.security.rsa;
import
java.io.IOException
;
import
java.nio.ByteBuffer
;
import
java.util.Arrays
;
import
java.security.*
;
import
java.security.interfaces.*
;
...
...
@@ -194,7 +193,7 @@ public abstract class RSASignature extends SignatureSpi {
byte
[]
decrypted
=
RSACore
.
rsa
(
sigBytes
,
publicKey
);
byte
[]
unpadded
=
padding
.
unpad
(
decrypted
);
byte
[]
decodedDigest
=
decodeSignature
(
digestOID
,
unpadded
);
return
Arrays
.
equals
(
digest
,
decodedDigest
);
return
MessageDigest
.
isEqual
(
digest
,
decodedDigest
);
}
catch
(
javax
.
crypto
.
BadPaddingException
e
)
{
// occurs if the app has used the wrong RSA public key
// or if sigBytes is invalid
...
...
src/share/classes/sun/security/ssl/ClientHandshaker.java
浏览文件 @
92252f85
...
...
@@ -485,7 +485,7 @@ final class ClientHandshaker extends Handshaker {
0
,
clientVerifyData
.
length
);
System
.
arraycopy
(
serverVerifyData
,
0
,
verifyData
,
clientVerifyData
.
length
,
serverVerifyData
.
length
);
if
(!
Arrays
.
equals
(
verifyData
,
if
(!
MessageDigest
.
isEqual
(
verifyData
,
serverHelloRI
.
getRenegotiatedConnection
()))
{
fatalSE
(
Alerts
.
alert_handshake_failure
,
"Incorrect verify data in ServerHello "
+
...
...
src/share/classes/sun/security/ssl/HandshakeMessage.java
浏览文件 @
92252f85
/*
* Copyright (c) 1996, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
5
, 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
...
...
@@ -1907,7 +1907,7 @@ static final class Finished extends HandshakeMessage {
*/
boolean
verify
(
HandshakeHash
handshakeHash
,
int
sender
,
SecretKey
master
)
{
byte
[]
myFinished
=
getFinished
(
handshakeHash
,
sender
,
master
);
return
Arrays
.
equals
(
myFinished
,
verifyData
);
return
MessageDigest
.
isEqual
(
myFinished
,
verifyData
);
}
/*
...
...
src/share/classes/sun/security/ssl/ServerHandshaker.java
浏览文件 @
92252f85
...
...
@@ -413,7 +413,7 @@ final class ServerHandshaker extends Handshaker {
}
// verify the client_verify_data value
if
(!
Arrays
.
equals
(
clientVerifyData
,
if
(!
MessageDigest
.
isEqual
(
clientVerifyData
,
clientHelloRI
.
getRenegotiatedConnection
()))
{
fatalSE
(
Alerts
.
alert_handshake_failure
,
"Incorrect verify data in ClientHello "
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录