org.bouncycastle.cms.CMSPBEKey Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcmail-jdk15 Show documentation
Show all versions of bcmail-jdk15 Show documentation
The Bouncy Castle Java CMS and S/MIME APIs for handling the CMS and S/MIME protocols. This jar contains CMS and S/MIME APIs for JDK 1.5. The APIs can be used in conjunction with a JCE/JCA provider such as the one provided with the Bouncy Castle Cryptography APIs. If the S/MIME API is used, the JavaMail API and the Java activation framework will also be needed.
package org.bouncycastle.cms;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.spec.InvalidParameterSpecException;
import javax.crypto.interfaces.PBEKey;
import javax.crypto.spec.PBEParameterSpec;
public abstract class CMSPBEKey
implements PBEKey
{
private char[] password;
private byte[] salt;
private int iterationCount;
protected static PBEParameterSpec getParamSpec(AlgorithmParameters algParams)
throws InvalidAlgorithmParameterException
{
try
{
return algParams.getParameterSpec(PBEParameterSpec.class);
}
catch (InvalidParameterSpecException e)
{
throw new InvalidAlgorithmParameterException("cannot process PBE spec: " + e.getMessage());
}
}
public CMSPBEKey(char[] password, byte[] salt, int iterationCount)
{
this.password = password;
this.salt = salt;
this.iterationCount = iterationCount;
}
public CMSPBEKey(char[] password, PBEParameterSpec pbeSpec)
{
this(password, pbeSpec.getSalt(), pbeSpec.getIterationCount());
}
public char[] getPassword()
{
return password;
}
public byte[] getSalt()
{
return salt;
}
public int getIterationCount()
{
return iterationCount;
}
public String getAlgorithm()
{
return "PKCS5S2";
}
public String getFormat()
{
return "RAW";
}
public byte[] getEncoded()
{
return null;
}
abstract byte[] getEncoded(String algorithmOid);
}