当前位置: 首页>>代码示例>>Java>>正文


Java PBEParametersGenerator类代码示例

本文整理汇总了Java中org.bouncycastle.crypto.PBEParametersGenerator的典型用法代码示例。如果您正苦于以下问题:Java PBEParametersGenerator类的具体用法?Java PBEParametersGenerator怎么用?Java PBEParametersGenerator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


PBEParametersGenerator类属于org.bouncycastle.crypto包,在下文中一共展示了PBEParametersGenerator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: makePBEMacParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * generate a PBE based key suitable for a MAC algorithm, the
 * key size is chosen according the MAC size, or the hashing algorithm,
 * whichever is greater.
 */
public static CipherParameters makePBEMacParameters(
    PBEKeySpec keySpec,
    int type,
    int hash,
    int keySize)
{
    PBEParametersGenerator  generator = makePBEGenerator(type, hash);
    byte[]                  key;
    CipherParameters        param;
    
    key = convertPassword(type, keySpec);
    
    generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());
    
    param = generator.generateDerivedMacParameters(keySize);
    
    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }
    
    return param;
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:29,代码来源:PBE.java

示例2: convertPassword

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static byte[] convertPassword(int type, PBEKeySpec keySpec)
{
    byte[] key;

    if (type == PKCS12)
    {
        key = PBEParametersGenerator.PKCS12PasswordToBytes(keySpec.getPassword());
    }
    else if (type == PKCS5S2_UTF8 || type == PKCS5S1_UTF8)
    {
        key = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(keySpec.getPassword());
    }
    else
    {
        key = PBEParametersGenerator.PKCS5PasswordToBytes(keySpec.getPassword());
    }
    return key;
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:19,代码来源:PBE.java

示例3: compareModes

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
@Test
public void compareModes() {
    BlockCipher engine = new AESEngine();
    int blockSize = engine.getBlockSize();
    BlockCipher ref = new SICBlockCipher(engine); // reference implementation
    BlockCipher uut = new CtrBlockCipher(engine); // unit under test
    PBEParametersGenerator gen = new PKCS5S2ParametersGenerator();
    byte[] salt = new byte[blockSize]; // used as salt and cipher input
    new SecureRandom().nextBytes(salt);
    gen.init("top secret".getBytes(), salt, 1);
    ParametersWithIV
            param = (ParametersWithIV) gen.generateDerivedParameters(
                blockSize * 8,
                blockSize * 8);

    ref.init(true, param);
    uut.init(true, param);
    assertModes(ref, uut);

    ref.init(false, param);
    uut.init(false, param);
    assertModes(ref, uut);
}
 
开发者ID:christian-schlichtherle,项目名称:truevfs,代码行数:24,代码来源:CtrBlockCipherTest.java

示例4: getKey

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static SecretKey getKey(
    char[]  password,
    String  algorithm,
    int     keyLength,
    byte[]  salt,
    boolean des2)
    throws IOException
{
    OpenSSLPBEParametersGenerator   pGen = new OpenSSLPBEParametersGenerator();

    pGen.init(PBEParametersGenerator.PKCS5PasswordToBytes(password), salt);

    KeyParameter keyParam;
    keyParam = (KeyParameter) pGen.generateDerivedParameters(keyLength * 8);
    byte[] key = keyParam.getKey();
    if (des2 && key.length >= 24)
    {
        // For DES2, we must copy first 8 bytes into the last 8 bytes.
        System.arraycopy(key, 0, key, 16, 8);
    }
    return new javax.crypto.spec.SecretKeySpec(key, algorithm);
}
 
开发者ID:thangbn,项目名称:Direct-File-Downloader,代码行数:23,代码来源:PEMUtilities.java

示例5: makePBEMacParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * generate a PBE based key suitable for a MAC algorithm, the
 * key size is chosen according the MAC size, or the hashing algorithm,
 * whichever is greater.
 */
public static CipherParameters makePBEMacParameters(
    BCPBEKey pbeKey,
    AlgorithmParameterSpec spec)
{
    if ((spec == null) || !(spec instanceof PBEParameterSpec))
    {
        throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");
    }
    
    PBEParameterSpec        pbeParam = (PBEParameterSpec)spec;
    PBEParametersGenerator  generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());
    byte[]                  key = pbeKey.getEncoded();
    CipherParameters        param;
    
    generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());

    param = generator.generateDerivedMacParameters(pbeKey.getKeySize());
    
    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }

    return param;
}
 
开发者ID:thedrummeraki,项目名称:Aki-SSL,代码行数:31,代码来源:PBE.java

示例6: getKey

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static KeyParameter getKey(
    char[]  password,
    int     keyLength,
    byte[]  salt,
    boolean des2)
    throws PEMException
{
    PBEParametersGenerator paramsGen = new OpenSSLPBEParametersGenerator();

    paramsGen.init(PBEParametersGenerator.PKCS5PasswordToBytes(password), salt, 1);

    KeyParameter kp = (KeyParameter)paramsGen.generateDerivedParameters(keyLength * 8);

    if (des2 && kp.getKey().length == 24)
    {
        // For DES2, we must copy first 8 bytes into the last 8 bytes.
        byte[] key = kp.getKey();

        System.arraycopy(key, 0, key, 16, 8);

        return new KeyParameter(key);
    }

    return kp;
}
 
开发者ID:thedrummeraki,项目名称:Aki-SSL,代码行数:26,代码来源:PEMUtilities.java

示例7: decrypt

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * A password-based data decryption using a constant salt value "<b>constantSalt</b>"
 * @param cipher
 * @param password
 * @param salt
 * @param iterationCount
 * @return
 * @throws Exception
 */
public static byte[] decrypt(byte[] cipher, String password) throws Exception
{
    PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA256Digest());
    char[] passwordChars = password.toCharArray();
    final byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS12PasswordToBytes(passwordChars);
    pGen.init(pkcs12PasswordBytes, constantSalt.getBytes(), iterations);
    CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine());
    ParametersWithIV aesCBCParams = (ParametersWithIV) pGen.generateDerivedParameters(256, 128);
    aesCBC.init(false, aesCBCParams);
    PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding());
    byte[] plainTemp = new byte[aesCipher.getOutputSize(cipher.length)];
    int offset = aesCipher.processBytes(cipher, 0, cipher.length, plainTemp, 0);
    int last = aesCipher.doFinal(plainTemp, offset);
    final byte[] plain = new byte[offset + last];
    System.arraycopy(plainTemp, 0, plain, 0, plain.length);
    return plain;
}
 
开发者ID:giuseppeurso-eu,项目名称:java-security,代码行数:27,代码来源:PasswordBasedEncryption.java

示例8: makePBEMacParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * generate a PBE based key suitable for a MAC algorithm, the
 * key size is chosen according the MAC size, or the hashing algorithm,
 * whichever is greater.
 */
public static CipherParameters makePBEMacParameters(
    PBEKeySpec keySpec,
    int type,
    int hash,
    int keySize)
{
    PBEParametersGenerator  generator = makePBEGenerator(type, hash);
    byte[]                  key;
    CipherParameters        param;
    
    key = convertPassword(type, keySpec);
    
    generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());

    param = generator.generateDerivedMacParameters(keySize);

    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }
    
    return param;
}
 
开发者ID:NoYouShutup,项目名称:CryptMeme,代码行数:29,代码来源:PBE.java

示例9: getKey

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static SecretKey getKey(
    char[]  password,
    String  algorithm,
    int     keyLength,
    byte[]  salt,
    boolean des2)
{
    OpenSSLPBEParametersGenerator   pGen = new OpenSSLPBEParametersGenerator();

    pGen.init(PBEParametersGenerator.PKCS5PasswordToBytes(password), salt);

    KeyParameter keyParam;
    keyParam = (KeyParameter) pGen.generateDerivedParameters(keyLength * 8);
    byte[] key = keyParam.getKey();
    if (des2 && key.length >= 24)
    {
        // For DES2, we must copy first 8 bytes into the last 8 bytes.
        System.arraycopy(key, 0, key, 16, 8);
    }
    return new SecretKeySpec(key, algorithm);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:22,代码来源:PEMUtilities.java

示例10: getKey

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static SecretKey getKey(
    char[] password,
    String algorithm,
    int keyLength,
    byte[] salt,
    boolean des2)
{
    OpenSSLPBEParametersGenerator pGen = new OpenSSLPBEParametersGenerator();

    pGen.init(PBEParametersGenerator.PKCS5PasswordToBytes(password), salt);

    KeyParameter keyParam;
    keyParam = (KeyParameter)pGen.generateDerivedParameters(keyLength * 8);
    byte[] key = keyParam.getKey();
    if (des2 && key.length >= 24)
    {
        // For DES2, we must copy first 8 bytes into the last 8 bytes.
        System.arraycopy(key, 0, key, 16, 8);
    }
    return new javax.crypto.spec.SecretKeySpec(key, algorithm);
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:22,代码来源:PEMReader.java

示例11: crypt

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static byte[] crypt(final boolean encrypt, final byte[] bytes, final String password, final byte[] salt) throws InvalidCipherTextException {
    final PBEParametersGenerator keyGenerator = new PKCS12ParametersGenerator(new SHA256Digest());
    keyGenerator.init(PKCS12ParametersGenerator.PKCS12PasswordToBytes(password.toCharArray()), salt, 20);
    final CipherParameters keyParams = keyGenerator.generateDerivedParameters(256, 128);

    final BufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new CBCBlockCipher(new AESEngine()), new PKCS7Padding());
    cipher.init(encrypt, keyParams);

    final byte[] processed = new byte[cipher.getOutputSize(bytes.length)];
    int outputLength = cipher.processBytes(bytes, 0, bytes.length, processed, 0);
    outputLength += cipher.doFinal(processed, outputLength);

    final byte[] results = new byte[outputLength];
    System.arraycopy(processed, 0, results, 0, outputLength);
    return results;
}
 
开发者ID:Kloudtek,项目名称:kloudmake,代码行数:17,代码来源:AESHelper.java

示例12: makePBEMacParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * generate a PBE based key suitable for a MAC algorithm, the
 * key size is chosen according the MAC size, or the hashing algorithm,
 * whichever is greater.
 */
static CipherParameters makePBEMacParameters(
    JCEPBEKey               pbeKey,
    AlgorithmParameterSpec  spec)
{
    if ((spec == null) || !(spec instanceof PBEParameterSpec))
    {
        throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");
    }
    
    PBEParameterSpec        pbeParam = (PBEParameterSpec)spec;
    PBEParametersGenerator  generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());
    byte[]                  key = pbeKey.getEncoded();
    CipherParameters        param;
    
    if (pbeKey.shouldTryWrongPKCS12())
    {
        key = new byte[2];
    }
    
    generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());

    param = generator.generateDerivedMacParameters(pbeKey.getKeySize());
    
    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }

    return param;
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:36,代码来源:PBE.java

示例13: makePBEParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * construct a key and iv (if necessary) suitable for use with a 
 * Cipher.
 */
static CipherParameters makePBEParameters(
    PBEKeySpec              keySpec,
    int                     type,
    int                     hash,
    int                     keySize,
    int                     ivSize)
{    
    PBEParametersGenerator  generator = makePBEGenerator(type, hash);
    byte[]                  key;
    CipherParameters        param;
    
    if (type == PKCS12)
    {
        key = PBEParametersGenerator.PKCS12PasswordToBytes(keySpec.getPassword());
    }
    else
    {   
        key = PBEParametersGenerator.PKCS5PasswordToBytes(keySpec.getPassword());
    }
    
    generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());
    
    if (ivSize != 0)
    {
        param = generator.generateDerivedParameters(keySize, ivSize);
    }
    else
    {
        param = generator.generateDerivedParameters(keySize);
    }
    
    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }
    
    return param;
}
 
开发者ID:PhilippC,项目名称:keepass2android,代码行数:43,代码来源:PBE.java

示例14: makePBEMacParameters

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
/**
 * generate a PBE based key suitable for a MAC algorithm, the
 * key size is chosen according the MAC size, or the hashing algorithm,
 * whichever is greater.
 */
static CipherParameters makePBEMacParameters(
    BCPBEKey pbeKey,
    AlgorithmParameterSpec  spec,
    int                     type,
    int                     hash,
    int                     keySize)
{
    if ((spec == null) || !(spec instanceof PBEParameterSpec))
    {
        throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");
    }
    
    PBEParameterSpec        pbeParam = (PBEParameterSpec)spec;
    PBEParametersGenerator  generator = makePBEGenerator(type, hash);
    byte[]                  key = pbeKey.getEncoded();
    CipherParameters        param;
    
    generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());

    param = generator.generateDerivedMacParameters(keySize);
    
    for (int i = 0; i != key.length; i++)
    {
        key[i] = 0;
    }

    return param;
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:34,代码来源:BrokenPBE.java

示例15: SingleIterationPBKDF2

import org.bouncycastle.crypto.PBEParametersGenerator; //导入依赖的package包/类
private static byte[] SingleIterationPBKDF2(byte[] P, byte[] S, int dkLen)
{
    PBEParametersGenerator pGen = new PKCS5S2ParametersGenerator(new SHA256Digest());
    pGen.init(P, S, 1);
    KeyParameter key = (KeyParameter) pGen.generateDerivedMacParameters(dkLen * 8);
    return key.getKey();
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:8,代码来源:SCrypt.java


注:本文中的org.bouncycastle.crypto.PBEParametersGenerator类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。