org.bouncycastle.jce.spec.IESParameterSpec Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk14 Show documentation
Show all versions of bcprov-jdk14 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.4.
package org.bouncycastle.jce.spec;
import java.security.spec.AlgorithmParameterSpec;
/**
* Parameter spec for an integrated encryptor, as in IEEE P1363a
*/
public class IESParameterSpec
implements AlgorithmParameterSpec
{
private byte[] derivation;
private byte[] encoding;
private int macKeySize;
private int cipherKeySize;
/**
* Set the IES engine parameters.
*
* @param derivation the optional derivation vector for the KDF.
* @param encoding the optional encoding vector for the KDF.
* @param macKeySize the key size (in bits) for the MAC.
*/
public IESParameterSpec(
byte[] derivation,
byte[] encoding,
int macKeySize)
{
this(derivation, encoding, macKeySize, -1);
}
/**
* Set the IES engine parameters.
*
* @param derivation the optional derivation vector for the KDF.
* @param encoding the optional encoding vector for the KDF.
* @param macKeySize the key size (in bits) for the MAC.
* @param cipherKeySize the key size (in bits) for the block cipher.
*/
public IESParameterSpec(
byte[] derivation,
byte[] encoding,
int macKeySize,
int cipherKeySize)
{
if (derivation != null)
{
this.derivation = new byte[derivation.length];
System.arraycopy(derivation, 0, this.derivation, 0, derivation.length);
}
else
{
this.derivation = null;
}
if (encoding != null)
{
this.encoding = new byte[encoding.length];
System.arraycopy(encoding, 0, this.encoding, 0, encoding.length);
}
else
{
this.encoding = null;
}
this.macKeySize = macKeySize;
this.cipherKeySize = cipherKeySize;
}
/**
* return the derivation vector.
*/
public byte[] getDerivationV()
{
return derivation;
}
/**
* return the encoding vector.
*/
public byte[] getEncodingV()
{
return encoding;
}
/**
* return the key size in bits for the MAC used with the message
*/
public int getMacKeySize()
{
return macKeySize;
}
/**
* return the key size in bits for the block cipher used with the message
*/
public int getCipherKeySize()
{
return cipherKeySize;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy