Search in sources :

Example 1 with ElGamalParametersGenerator

use of com.github.zhenwei.core.crypto.generators.ElGamalParametersGenerator in project LinLong-Java by zhenwei1108.

the class KeyPairGeneratorSpi method generateKeyPair.

public KeyPair generateKeyPair() {
    if (!initialised) {
        DHParameterSpec dhParams = WeGooProvider.CONFIGURATION.getDHDefaultParameters(strength);
        if (dhParams != null) {
            param = new ElGamalKeyGenerationParameters(random, new ElGamalParameters(dhParams.getP(), dhParams.getG(), dhParams.getL()));
        } else {
            ElGamalParametersGenerator pGen = new ElGamalParametersGenerator();
            pGen.init(strength, certainty, random);
            param = new ElGamalKeyGenerationParameters(random, pGen.generateParameters());
        }
        engine.init(param);
        initialised = true;
    }
    AsymmetricCipherKeyPair pair = engine.generateKeyPair();
    ElGamalPublicKeyParameters pub = (ElGamalPublicKeyParameters) pair.getPublic();
    ElGamalPrivateKeyParameters priv = (ElGamalPrivateKeyParameters) pair.getPrivate();
    return new KeyPair(new BCElGamalPublicKey(pub), new BCElGamalPrivateKey(priv));
}
Also used : KeyPair(java.security.KeyPair) AsymmetricCipherKeyPair(com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair) ElGamalParameters(com.github.zhenwei.core.crypto.params.ElGamalParameters) ElGamalPrivateKeyParameters(com.github.zhenwei.core.crypto.params.ElGamalPrivateKeyParameters) ElGamalKeyGenerationParameters(com.github.zhenwei.core.crypto.params.ElGamalKeyGenerationParameters) DHParameterSpec(javax.crypto.spec.DHParameterSpec) ElGamalPublicKeyParameters(com.github.zhenwei.core.crypto.params.ElGamalPublicKeyParameters) ElGamalParametersGenerator(com.github.zhenwei.core.crypto.generators.ElGamalParametersGenerator) AsymmetricCipherKeyPair(com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair)

Example 2 with ElGamalParametersGenerator

use of com.github.zhenwei.core.crypto.generators.ElGamalParametersGenerator in project LinLong-Java by zhenwei1108.

the class AlgorithmParameterGeneratorSpi method engineGenerateParameters.

protected AlgorithmParameters engineGenerateParameters() {
    ElGamalParametersGenerator pGen = new ElGamalParametersGenerator();
    if (random != null) {
        pGen.init(strength, 20, random);
    } else {
        pGen.init(strength, 20, CryptoServicesRegistrar.getSecureRandom());
    }
    ElGamalParameters p = pGen.generateParameters();
    AlgorithmParameters params;
    try {
        params = createParametersInstance("ElGamal");
        params.init(new DHParameterSpec(p.getP(), p.getG(), l));
    } catch (Exception e) {
        throw new RuntimeException(e.getMessage());
    }
    return params;
}
Also used : ElGamalParameters(com.github.zhenwei.core.crypto.params.ElGamalParameters) DHParameterSpec(javax.crypto.spec.DHParameterSpec) ElGamalParametersGenerator(com.github.zhenwei.core.crypto.generators.ElGamalParametersGenerator) InvalidAlgorithmParameterException(java.security.InvalidAlgorithmParameterException) AlgorithmParameters(java.security.AlgorithmParameters)

Aggregations

ElGamalParametersGenerator (com.github.zhenwei.core.crypto.generators.ElGamalParametersGenerator)2 ElGamalParameters (com.github.zhenwei.core.crypto.params.ElGamalParameters)2 DHParameterSpec (javax.crypto.spec.DHParameterSpec)2 AsymmetricCipherKeyPair (com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair)1 ElGamalKeyGenerationParameters (com.github.zhenwei.core.crypto.params.ElGamalKeyGenerationParameters)1 ElGamalPrivateKeyParameters (com.github.zhenwei.core.crypto.params.ElGamalPrivateKeyParameters)1 ElGamalPublicKeyParameters (com.github.zhenwei.core.crypto.params.ElGamalPublicKeyParameters)1 AlgorithmParameters (java.security.AlgorithmParameters)1 InvalidAlgorithmParameterException (java.security.InvalidAlgorithmParameterException)1 KeyPair (java.security.KeyPair)1