org.spongycastle.cms.PKCS5Scheme2UTF8PBEKey Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scprov-jdk15 Show documentation
Show all versions of scprov-jdk15 Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle intended for Android.
Android ships with a stripped-down version of Bouncy Castle - this causes classloader collisions if you try to add
an alternative (updated/complete) Bouncy Castle jar.
This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5.
The newest version!
package org.spongycastle.cms;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import org.spongycastle.crypto.PBEParametersGenerator;
import org.spongycastle.crypto.generators.PKCS5S2ParametersGenerator;
import org.spongycastle.crypto.params.KeyParameter;
/**
* PKCS5 scheme-2 - password converted to bytes using UTF-8.
*/
public class PKCS5Scheme2UTF8PBEKey
extends CMSPBEKey
{
public PKCS5Scheme2UTF8PBEKey(char[] password, byte[] salt, int iterationCount)
{
super(password, salt, iterationCount);
}
public PKCS5Scheme2UTF8PBEKey(char[] password, AlgorithmParameters pbeParams)
throws InvalidAlgorithmParameterException
{
super(password, getParamSpec(pbeParams));
}
byte[] getEncoded(String algorithmOid)
{
PKCS5S2ParametersGenerator gen = new PKCS5S2ParametersGenerator();
gen.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(this.getPassword()), this.getSalt(), this.getIterationCount());
return ((KeyParameter)gen.generateDerivedParameters(CMSEnvelopedHelper.INSTANCE.getKeySize(algorithmOid))).getKey();
}
}