# RC5ParameterSpec

public class **RC5ParameterSpec** extends [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)  
implements [AlgorithmParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/spec/AlgorithmParameterSpec.html) This class specifies the parameters used with the
[*RC5*](http://www.ietf.org/rfc/rfc2040.txt)
algorithm.

The parameters consist of a version number, a rounds count, a word
size, and optionally an initialization vector (IV) (only in feedback mode).

This class can be used to initialize a `Cipher` object that
implements the *RC5* algorithm as supplied by
[RSA Security Inc.](http://www.rsasecurity.com),
or any parties authorized by RSA Security.

### Public Constructor Summary

|---|---|
|   | [RC5ParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#RC5ParameterSpec(int,%20int,%20int))(int version, int rounds, int wordSize) Constructs a parameter set for RC5 from the given version, number of rounds and word size (in bits). |
|   | [RC5ParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#RC5ParameterSpec(int,%20int,%20int,%20byte[]))(int version, int rounds, int wordSize, byte\[\] iv) Constructs a parameter set for RC5 from the given version, number of rounds, word size (in bits), and IV. |
|   | [RC5ParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#RC5ParameterSpec(int,%20int,%20int,%20byte[],%20int))(int version, int rounds, int wordSize, byte\[\] iv, int offset) Constructs a parameter set for RC5 from the given version, number of rounds, word size (in bits), and IV. |

### Public Method Summary

|---|---|
| boolean | [equals](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#equals(java.lang.Object))([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj) Tests for equality between the specified object and this object. |
| byte\[\] | [getIV](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#getIV())() Returns the IV or null if this parameter set does not contain an IV. |
| int | [getRounds](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#getRounds())() Returns the number of rounds. |
| int | [getVersion](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#getVersion())() Returns the version. |
| int | [getWordSize](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#getWordSize())() Returns the word size in bits. |
| int | [hashCode](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/RC5ParameterSpec.html#hashCode())() Calculates a hash code value for the object. |

### Inherited Method Summary

From class [java.lang.Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)

|---|---|
| [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [clone](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |
| boolean | [equals](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#equals(java.lang.Object))([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |
| void | [finalize](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |
| final [Class](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html)\<?\> | [getClass](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#getClass())() Returns the unique instance of `https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html` that represents this object's class. |
| int | [hashCode](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |
| final void | [notify](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| final void | [notifyAll](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [toString](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |

## Public Constructors

#### public
**RC5ParameterSpec**
(int version, int rounds, int wordSize)

Constructs a parameter set for RC5 from the given version, number of
rounds and word size (in bits).

##### Parameters

| version | the version. |
| rounds | the number of rounds. |
| wordSize | the word size in bits. |
|---|---|

#### public
**RC5ParameterSpec**
(int version, int rounds, int wordSize, byte\[\] iv)

Constructs a parameter set for RC5 from the given version, number of
rounds, word size (in bits), and IV.

Note that the size of the IV (block size) must be twice the word
size. The bytes that constitute the IV are those between
`iv[0]` and `iv[2*(wordSize/8)-1]` inclusive.

##### Parameters

| version | the version. |
| rounds | the number of rounds. |
| wordSize | the word size in bits. |
| iv | the buffer with the IV. The first `2*(wordSize/8) ` bytes of the buffer are copied to protect against subsequent modification. |
|---|---|

##### Throws

| [IllegalArgumentException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/IllegalArgumentException.html) | if `iv` is `null` or `(iv.length < 2 * (wordSize / 8))` |
|---|---|

#### public
**RC5ParameterSpec**
(int version, int rounds, int wordSize, byte\[\] iv, int offset)

Constructs a parameter set for RC5 from the given version, number of
rounds, word size (in bits), and IV.

The IV is taken from `iv`, starting at
`offset` inclusive.
Note that the size of the IV (block size), starting at
`offset` inclusive, must be twice the word size.
The bytes that constitute the IV are those between
`iv[offset]` and `iv[offset+2*(wordSize/8)-1]`
inclusive.

##### Parameters

| version | the version. |
| rounds | the number of rounds. |
| wordSize | the word size in bits. |
| iv | the buffer with the IV. The first `2*(wordSize/8) ` bytes of the buffer beginning at `offset` inclusive are copied to protect against subsequent modification. |
| offset | the offset in `iv` where the IV starts. |
|---|---|

##### Throws

| [IllegalArgumentException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/IllegalArgumentException.html) | if `iv` is `null` or `(iv.length - offset < 2 * (wordSize / 8))` |
|---|---|

## Public Methods

#### public boolean
**equals**
([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj)

Tests for equality between the specified object and this
object. Two RC5ParameterSpec objects are considered equal if their
version numbers, number of rounds, word sizes, and IVs are equal.
(Two IV references are considered equal if both are null.)

##### Parameters

| obj | the object to test for equality with this object. |
|---|---|

##### Returns

- true if the objects are considered equal, false if `obj` is null or otherwise.

#### public byte\[\]
**getIV**
()

Returns the IV or null if this parameter set does not contain an IV.

##### Returns

- the IV or null if this parameter set does not contain an IV. Returns a new array each time this method is called.

#### public int
**getRounds**
()

Returns the number of rounds.

##### Returns

- the number of rounds.

#### public int
**getVersion**
()

Returns the version.

##### Returns

- the version.

#### public int
**getWordSize**
()

Returns the word size in bits.

##### Returns

- the word size in bits.

#### public int
**hashCode**
()

Calculates a hash code value for the object.
Objects that are equal will also have the same hashcode.

##### Returns

- this object's hash code.