org.bouncycastle.cms.PKCS5Scheme2PBEKey Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcmail-jdk16 Show documentation
Show all versions of bcmail-jdk16 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.6. 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.
The newest version!
package org.bouncycastle.cms;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import org.bouncycastle.crypto.PBEParametersGenerator;
import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator;
import org.bouncycastle.crypto.params.KeyParameter;
/**
* PKCS5 scheme-2 - password converted to bytes assuming ASCII.
*/
public class PKCS5Scheme2PBEKey
extends CMSPBEKey
{
public PKCS5Scheme2PBEKey(char[] password, byte[] salt, int iterationCount)
{
super(password, salt, iterationCount);
}
public PKCS5Scheme2PBEKey(char[] password, AlgorithmParameters pbeParams)
throws InvalidAlgorithmParameterException
{
super(password, getParamSpec(pbeParams));
}
byte[] getEncoded(String algorithmOid)
{
PKCS5S2ParametersGenerator gen = new PKCS5S2ParametersGenerator();
gen.init(PBEParametersGenerator.PKCS5PasswordToBytes(this.getPassword()), this.getSalt(), this.getIterationCount());
return ((KeyParameter)gen.generateDerivedParameters(CMSEnvelopedHelper.INSTANCE.getKeySize(algorithmOid))).getKey();
}
}