public SecretKeySpec (byte[] key, int offset, int len, String 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 the Java Security Standard Algorithm Names document for information about standard algorithm names.

Exceptions:
IllegalArgumentException    if algorithm is null or key is null, empty, or too short, i.e. key.length-offset<len.
ArrayIndexOutOfBoundsException    is thrown if offset or len index bytes outside the key.