提交 ec368531 编写于 作者: A ascarpino

6750584: Cipher.wrap/unwrap methods should define UnsupportedOperationException

Reviewed-by: mullan
上级 6a2bb2ec
...@@ -1158,6 +1158,9 @@ public class Cipher { ...@@ -1158,6 +1158,9 @@ public class Cipher {
* determined from the given key, or if the given key has a keysize that * determined from the given key, or if the given key has a keysize that
* exceeds the maximum allowable keysize (as determined from the * exceeds the maximum allowable keysize (as determined from the
* configured jurisdiction policy files). * configured jurisdiction policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key) throws InvalidKeyException { public final void init(int opmode, Key key) throws InvalidKeyException {
init(opmode, key, JceSecurity.RANDOM); init(opmode, key, JceSecurity.RANDOM);
...@@ -1208,6 +1211,9 @@ public class Cipher { ...@@ -1208,6 +1211,9 @@ public class Cipher {
* determined from the given key, or if the given key has a keysize that * determined from the given key, or if the given key has a keysize that
* exceeds the maximum allowable keysize (as determined from the * exceeds the maximum allowable keysize (as determined from the
* configured jurisdiction policy files). * configured jurisdiction policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key, SecureRandom random) public final void init(int opmode, Key key, SecureRandom random)
throws InvalidKeyException throws InvalidKeyException
...@@ -1285,6 +1291,9 @@ public class Cipher { ...@@ -1285,6 +1291,9 @@ public class Cipher {
* algorithm parameters imply a cryptographic strength that would exceed * algorithm parameters imply a cryptographic strength that would exceed
* the legal limits (as determined from the configured jurisdiction * the legal limits (as determined from the configured jurisdiction
* policy files). * policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key, AlgorithmParameterSpec params) public final void init(int opmode, Key key, AlgorithmParameterSpec params)
throws InvalidKeyException, InvalidAlgorithmParameterException throws InvalidKeyException, InvalidAlgorithmParameterException
...@@ -1343,6 +1352,9 @@ public class Cipher { ...@@ -1343,6 +1352,9 @@ public class Cipher {
* algorithm parameters imply a cryptographic strength that would exceed * algorithm parameters imply a cryptographic strength that would exceed
* the legal limits (as determined from the configured jurisdiction * the legal limits (as determined from the configured jurisdiction
* policy files). * policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key, AlgorithmParameterSpec params, public final void init(int opmode, Key key, AlgorithmParameterSpec params,
SecureRandom random) SecureRandom random)
...@@ -1416,6 +1428,9 @@ public class Cipher { ...@@ -1416,6 +1428,9 @@ public class Cipher {
* algorithm parameters imply a cryptographic strength that would exceed * algorithm parameters imply a cryptographic strength that would exceed
* the legal limits (as determined from the configured jurisdiction * the legal limits (as determined from the configured jurisdiction
* policy files). * policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key, AlgorithmParameters params) public final void init(int opmode, Key key, AlgorithmParameters params)
throws InvalidKeyException, InvalidAlgorithmParameterException throws InvalidKeyException, InvalidAlgorithmParameterException
...@@ -1474,6 +1489,9 @@ public class Cipher { ...@@ -1474,6 +1489,9 @@ public class Cipher {
* algorithm parameters imply a cryptographic strength that would exceed * algorithm parameters imply a cryptographic strength that would exceed
* the legal limits (as determined from the configured jurisdiction * the legal limits (as determined from the configured jurisdiction
* policy files). * policy files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Key key, AlgorithmParameters params, public final void init(int opmode, Key key, AlgorithmParameters params,
SecureRandom random) SecureRandom random)
...@@ -1552,6 +1570,9 @@ public class Cipher { ...@@ -1552,6 +1570,9 @@ public class Cipher {
* in the given certificate has a keysize that exceeds the maximum * in the given certificate has a keysize that exceeds the maximum
* allowable keysize (as determined by the configured jurisdiction policy * allowable keysize (as determined by the configured jurisdiction policy
* files). * files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Certificate certificate) public final void init(int opmode, Certificate certificate)
throws InvalidKeyException throws InvalidKeyException
...@@ -1619,6 +1640,9 @@ public class Cipher { ...@@ -1619,6 +1640,9 @@ public class Cipher {
* in the given certificate has a keysize that exceeds the maximum * in the given certificate has a keysize that exceeds the maximum
* allowable keysize (as determined by the configured jurisdiction policy * allowable keysize (as determined by the configured jurisdiction policy
* files). * files).
* @throws UnsupportedOperationException if (@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} but the mode is not implemented
* by the underlying {@code CipherSpi}.
*/ */
public final void init(int opmode, Certificate certificate, public final void init(int opmode, Certificate certificate,
SecureRandom random) SecureRandom random)
...@@ -2410,6 +2434,9 @@ public class Cipher { ...@@ -2410,6 +2434,9 @@ public class Cipher {
* @exception InvalidKeyException if it is impossible or unsafe to * @exception InvalidKeyException if it is impossible or unsafe to
* wrap the key with this cipher (e.g., a hardware protected key is * wrap the key with this cipher (e.g., a hardware protected key is
* being passed to a software-only cipher). * being passed to a software-only cipher).
*
* @throws UnsupportedOperationException if the corresponding method in the
* {@code CipherSpi} is not supported.
*/ */
public final byte[] wrap(Key key) public final byte[] wrap(Key key)
throws IllegalBlockSizeException, InvalidKeyException { throws IllegalBlockSizeException, InvalidKeyException {
...@@ -2451,6 +2478,9 @@ public class Cipher { ...@@ -2451,6 +2478,9 @@ public class Cipher {
* @exception InvalidKeyException if <code>wrappedKey</code> does not * @exception InvalidKeyException if <code>wrappedKey</code> does not
* represent a wrapped key of type <code>wrappedKeyType</code> for * represent a wrapped key of type <code>wrappedKeyType</code> for
* the <code>wrappedKeyAlgorithm</code>. * the <code>wrappedKeyAlgorithm</code>.
*
* @throws UnsupportedOperationException if the corresponding method in the
* {@code CipherSpi} is not supported.
*/ */
public final Key unwrap(byte[] wrappedKey, public final Key unwrap(byte[] wrappedKey,
String wrappedKeyAlgorithm, String wrappedKeyAlgorithm,
......
/* /*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -347,6 +347,9 @@ public abstract class CipherSpi { ...@@ -347,6 +347,9 @@ public abstract class CipherSpi {
* initializing this cipher, or requires * initializing this cipher, or requires
* algorithm parameters that cannot be * algorithm parameters that cannot be
* determined from the given key. * determined from the given key.
* @throws UnsupportedOperationException if {@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} is not implemented
* by the cipher.
*/ */
protected abstract void engineInit(int opmode, Key key, protected abstract void engineInit(int opmode, Key key,
SecureRandom random) SecureRandom random)
...@@ -399,6 +402,9 @@ public abstract class CipherSpi { ...@@ -399,6 +402,9 @@ public abstract class CipherSpi {
* parameters are inappropriate for this cipher, * parameters are inappropriate for this cipher,
* or if this cipher requires * or if this cipher requires
* algorithm parameters and <code>params</code> is null. * algorithm parameters and <code>params</code> is null.
* @throws UnsupportedOperationException if {@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} is not implemented
* by the cipher.
*/ */
protected abstract void engineInit(int opmode, Key key, protected abstract void engineInit(int opmode, Key key,
AlgorithmParameterSpec params, AlgorithmParameterSpec params,
...@@ -452,6 +458,9 @@ public abstract class CipherSpi { ...@@ -452,6 +458,9 @@ public abstract class CipherSpi {
* parameters are inappropriate for this cipher, * parameters are inappropriate for this cipher,
* or if this cipher requires * or if this cipher requires
* algorithm parameters and <code>params</code> is null. * algorithm parameters and <code>params</code> is null.
* @throws UnsupportedOperationException if {@code opmode} is
* {@code WRAP_MODE} or {@code UNWRAP_MODE} is not implemented
* by the cipher.
*/ */
protected abstract void engineInit(int opmode, Key key, protected abstract void engineInit(int opmode, Key key,
AlgorithmParameters params, AlgorithmParameters params,
...@@ -863,6 +872,8 @@ public abstract class CipherSpi { ...@@ -863,6 +872,8 @@ public abstract class CipherSpi {
* @exception InvalidKeyException if it is impossible or unsafe to * @exception InvalidKeyException if it is impossible or unsafe to
* wrap the key with this cipher (e.g., a hardware protected key is * wrap the key with this cipher (e.g., a hardware protected key is
* being passed to a software-only cipher). * being passed to a software-only cipher).
*
* @throws UnsupportedOperationException if this method is not supported.
*/ */
protected byte[] engineWrap(Key key) protected byte[] engineWrap(Key key)
throws IllegalBlockSizeException, InvalidKeyException throws IllegalBlockSizeException, InvalidKeyException
...@@ -899,6 +910,8 @@ public abstract class CipherSpi { ...@@ -899,6 +910,8 @@ public abstract class CipherSpi {
* @exception InvalidKeyException if <code>wrappedKey</code> does not * @exception InvalidKeyException if <code>wrappedKey</code> does not
* represent a wrapped key of type <code>wrappedKeyType</code> for * represent a wrapped key of type <code>wrappedKeyType</code> for
* the <code>wrappedKeyAlgorithm</code>. * the <code>wrappedKeyAlgorithm</code>.
*
* @throws UnsupportedOperationException if this method is not supported.
*/ */
protected Key engineUnwrap(byte[] wrappedKey, protected Key engineUnwrap(byte[] wrappedKey,
String wrappedKeyAlgorithm, String wrappedKeyAlgorithm,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册