public SecretKeySpec(byte[] key,
String algorithm) {
if (key == null || algorithm == null) {
throw new IllegalArgumentException("Missing argument");
}
if (key.length == 0) {
throw new IllegalArgumentException("Empty key");
}
this.key = (byte[])key.clone();
this.algorithm = algorithm;
}
Constructs a secret key from the given byte array.
This constructor does not check if the given bytes indeed specify a
secret key of the specified algorithm. For example, if the algorithm is
DES, this constructor does not check if key is 8 bytes
long, and also does not check for weak or semi-weak keys.
In order for those checks to be performed, an algorithm-specific
key specification class (in this case:
DESKeySpec )
should be used. Parameters:
key - the key material of the secret key. The contents of
the array are copied to protect against subsequent modification.
algorithm - the name of the secret-key algorithm to be associated
with the given key material.
See Appendix A in the
Java Cryptography Architecture Reference Guide
for information about standard algorithm names.
Throws:
IllegalArgumentException - if algorithm
is null or key is null or empty.
- exception:
IllegalArgumentException - if algorithm
is null or key is null or empty.
|
public SecretKeySpec(byte[] key,
int offset,
int len,
String algorithm) {
if (key == null || algorithm == null) {
throw new IllegalArgumentException("Missing argument");
}
if (key.length == 0) {
throw new IllegalArgumentException("Empty key");
}
if (key.length-offset < len) {
throw new IllegalArgumentException
("Invalid offset/length combination");
}
if (len < 0) {
throw new ArrayIndexOutOfBoundsException("len is negative");
}
this.key = new byte[len];
System.arraycopy(key, offset, this.key, 0, len);
this.algorithm = algorithm;
}
Constructs a secret key from the given byte array, using the first
len bytes of key , starting at
offset inclusive.
The bytes that constitute the secret key are
those between key[offset] and
key[offset+len-1] inclusive.
This constructor does not check if the given bytes indeed specify a
secret key of the specified algorithm. For example, if the algorithm is
DES, this constructor does not check if key is 8 bytes
long, and also does not check for weak or semi-weak keys.
In order for those checks to be performed, an algorithm-specific key
specification class (in this case:
DESKeySpec )
must be used. Parameters:
key - the key material of the secret key. The first
len bytes of the array beginning at
offset inclusive are copied to protect
against subsequent modification.
offset - the offset in key where the key material
starts.
len - the length of the key material.
algorithm - the name of the secret-key algorithm to be associated
with the given key material.
See Appendix A in the
Java Cryptography Architecture Reference Guide
for information about standard algorithm names.
Throws:
IllegalArgumentException - if algorithm
is null or key is null, empty, or too short,
i.e. key.length-offset.
ArrayIndexOutOfBoundsException - is thrown if
offset or len index bytes outside the
key .
- exception:
IllegalArgumentException - if algorithm
is null or key is null, empty, or too short,
i.e. key.length-offset.
- exception:
ArrayIndexOutOfBoundsException - is thrown if
offset or len index bytes outside the
key .
|