Top Description Fields Constructors Methods
javax.crypto.spec

public Class GCMParameterSpec

extends Object
implements AlgorithmParameterSpec
Class Inheritance
All Implemented Interfaces
java.security.spec.AlgorithmParameterSpec
Imports
java.security.spec.AlgorithmParameterSpec

Specifies the set of parameters required by a javax.crypto.Cipher using the Galois/Counter Mode (GCM) mode.

Simple block cipher modes (such as CBC) generally require only an initialization vector (such as IvParameterSpec), but GCM needs these parameters:

In addition to the parameters described here, other GCM inputs/output (Additional Authenticated Data (AAD), Keys, block ciphers, plain/ciphertext and authentication tags) are handled in the Cipher class.

Please see RFC 5116 for more information on the Authenticated Encryption with Associated Data (AEAD) algorithm, and NIST Special Publication 800-38D, "NIST Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC."

The GCM specification states that tLen may only have the values {128, 120, 112, 104, 96}, or {64, 32} for certain applications. Other values can be specified for this class, but not all CSP implementations will support them.

Since
1.7
See Also
javax.crypto.Cipher

Field Summary

Modifier and TypeField and Description
private byte[]
private int

Constructor Summary

AccessConstructor and Description
public
GCMParameterSpec(int
the authentication tag length (in bits)
tLen
,
byte[]
the IV source buffer. The contents of the buffer are copied to protect against subsequent modification.
src
)

Constructs a GCMParameterSpec using the specified authentication tag bit-length and IV buffer.

public
GCMParameterSpec(int
the authentication tag length (in bits)
tLen
,
byte[]
the IV source buffer. The contents of the buffer are copied to protect against subsequent modification.
src
,
int
the offset in src where the IV starts
offset
,
int
the number of IV bytes
len
)

Constructs a GCMParameterSpec object using the specified authentication tag bit-length and a subset of the specified buffer as the IV.

Method Summary

Modifier and TypeMethod and Description
public byte[]

Returns:

the IV. Creates a new array each time this method is called.
getIV
()

Returns the Initialization Vector (IV).

public int

Returns:

the authentication tag length (in bits)
getTLen
()

Returns the authentication tag length.

private void
init(int tLen, byte[] src, int offset, int len)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ivback to summary
private byte[] iv
tLenback to summary
private int tLen

Constructor Detail

GCMParameterSpecback to summary
public GCMParameterSpec(int tLen, byte[] src)

Constructs a GCMParameterSpec using the specified authentication tag bit-length and IV buffer.

Parameters
tLen:int

the authentication tag length (in bits)

src:byte[]

the IV source buffer. The contents of the buffer are copied to protect against subsequent modification.

Exceptions
IllegalArgumentException:
if tLen is negative, or src is null.
GCMParameterSpecback to summary
public GCMParameterSpec(int tLen, byte[] src, int offset, int len)

Constructs a GCMParameterSpec object using the specified authentication tag bit-length and a subset of the specified buffer as the IV.

Parameters
tLen:int

the authentication tag length (in bits)

src:byte[]

the IV source buffer. The contents of the buffer are copied to protect against subsequent modification.

offset:int

the offset in src where the IV starts

len:int

the number of IV bytes

Exceptions
IllegalArgumentException:
if tLen is negative, src is null, len or offset is negative, or the sum of offset and len is greater than the length of the src byte array.

Method Detail

getIVback to summary
public byte[] getIV()

Returns the Initialization Vector (IV).

Returns:byte[]

the IV. Creates a new array each time this method is called.

getTLenback to summary
public int getTLen()

Returns the authentication tag length.

Returns:int

the authentication tag length (in bits)

initback to summary
private void init(int tLen, byte[] src, int offset, int len)