本文整理汇总了Java中org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters类的典型用法代码示例。如果您正苦于以下问题:Java ElGamalPrivateKeyParameters类的具体用法?Java ElGamalPrivateKeyParameters怎么用?Java ElGamalPrivateKeyParameters使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ElGamalPrivateKeyParameters类属于org.bouncycastle.crypto.params包,在下文中一共展示了ElGamalPrivateKeyParameters类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generateKeyPair
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
public AsymmetricCipherKeyPair generateKeyPair()
{
BigInteger p, g, x, y;
int qLength = param.getStrength() - 1;
ElGamalParameters elParams = param.getParameters();
p = elParams.getP();
g = elParams.getG();
//
// calculate the private key
//
x = new BigInteger(qLength, param.getRandom());
//
// calculate the public key.
//
y = g.modPow(x, p);
return new AsymmetricCipherKeyPair(
new ElGamalPublicKeyParameters(y, elParams),
new ElGamalPrivateKeyParameters(x, elParams));
}
示例2: testInvalidP
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
private void testInvalidP()
{
ElGamalParameters dhParams = new ElGamalParameters(pPgpBogusPSamp, gPgpBogusPSamp, lPgpBogusPSamp);
ElGamalPublicKeyParameters pu = new ElGamalPublicKeyParameters(yPgpBogusPSamp, dhParams);
ElGamalPrivateKeyParameters pv = new ElGamalPrivateKeyParameters(xPgpBogusPSamp, dhParams);
ElGamalEngine e = new ElGamalEngine();
e.init(true, pu);
byte[] message = Hex.decode("5468697320697320612074657374");
byte[] pText = message;
byte[] cText = e.processBlock(pText, 0, pText.length);
e.init(false, pv);
pText = e.processBlock(cText, 0, cText.length);
if (Arrays.areEqual(message, pText))
{
fail("invalid test failed");
}
}
示例3: generateKeyPair
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
public AsymmetricCipherKeyPair generateKeyPair()
{
DHKeyGeneratorHelper helper = DHKeyGeneratorHelper.INSTANCE;
ElGamalParameters egp = param.getParameters();
DHParameters dhp = new DHParameters(egp.getP(), egp.getG(), null, egp.getL());
BigInteger x = helper.calculatePrivate(dhp, param.getRandom());
BigInteger y = helper.calculatePublic(dhp, x);
return new AsymmetricCipherKeyPair(
new ElGamalPublicKeyParameters(y, egp),
new ElGamalPrivateKeyParameters(x, egp));
}
示例4: generatePrivateKeyParameter
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
static public AsymmetricKeyParameter generatePrivateKeyParameter(
PrivateKey key)
throws InvalidKeyException
{
if (key instanceof ElGamalPrivateKey)
{
ElGamalPrivateKey k = (ElGamalPrivateKey)key;
return new ElGamalPrivateKeyParameters(k.getX(),
new ElGamalParameters(k.getParams().getP(), k.getParams().getG()));
}
throw new InvalidKeyException("can't identify ElGamal private key.");
}
示例5: checkKeySize
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
private void checkKeySize(
int privateValueSize,
ElGamalPrivateKeyParameters priv)
{
if (privateValueSize != 0)
{
if (priv.getX().bitLength() != privateValueSize)
{
fail("limited key check failed for key size " + privateValueSize);
}
}
}
示例6: decryptWithPrivateKey
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
@Override
public byte[] decryptWithPrivateKey(byte[] data) {
ElGamalParameters params = new ElGamalParameters(keys.getP(), keys.getG());
ElGamalPrivateKeyParameters privKey = new ElGamalPrivateKeyParameters(keys.getPrivateKey(), params);
ElGamalEngine e = new ElGamalEngine();
e.init(false, privKey);
return e.processBlock(data, 0, data.length) ;
}
示例7: GenerateKeys
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
/**
* This method is used to generate Public Key and Private Key
* @param params
*/
private void GenerateKeys(ElGamalParameters params, String password){
ElGamalKeyGenerationParameters elGP = new ElGamalKeyGenerationParameters(random,params);
ElGamalKeyPairGenerator KeyPair = new ElGamalKeyPairGenerator();
KeyPair.init(elGP);
AsymmetricCipherKeyPair cipher1 = KeyPair.generateKeyPair();
publicKey = ((ElGamalPublicKeyParameters) cipher1.getPublic()).getY();
privateKey = ((ElGamalPrivateKeyParameters)cipher1.getPrivate()).getX();
wellGenerated = true;
encryptPrivateKey(password);
}
示例8: generates1536bitKeys
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
@Test
public void generates1536bitKeys() throws Exception {
final AsymmetricCipherKeyPair pair = ElgamalKeyGenerator.elgamal1536().generate(random);
assertThat(pair.getPrivate())
.isInstanceOf(ElGamalPrivateKeyParameters.class);
final ElGamalPrivateKeyParameters privateKeys = (ElGamalPrivateKeyParameters) pair.getPrivate();
assertThat(privateKeys.getParameters().getP().toByteArray().length)
.isEqualTo(193);
}
示例9: generates2048bitKeys
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
@Test
public void generates2048bitKeys() throws Exception {
final AsymmetricCipherKeyPair pair = ElgamalKeyGenerator.elgamal2048().generate(random);
assertThat(pair.getPrivate())
.isInstanceOf(ElGamalPrivateKeyParameters.class);
final ElGamalPrivateKeyParameters privateKeys = (ElGamalPrivateKeyParameters) pair
.getPrivate();
assertThat(privateKeys.getParameters().getP().toByteArray().length)
.isEqualTo(257);
}
示例10: generates4096bitKeys
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
@Test
public void generates4096bitKeys() throws Exception {
final AsymmetricCipherKeyPair pair = ElgamalKeyGenerator.elgamal4096().generate(random);
assertThat(pair.getPrivate())
.isInstanceOf(ElGamalPrivateKeyParameters.class);
final ElGamalPrivateKeyParameters privateKeys = (ElGamalPrivateKeyParameters) pair
.getPrivate();
assertThat(privateKeys.getParameters().getP().toByteArray().length)
.isEqualTo(513);
}
示例11: generates8192bitKeys
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
@Test
public void generates8192bitKeys() throws Exception {
final AsymmetricCipherKeyPair pair = ElgamalKeyGenerator.elgamal8192().generate(random);
assertThat(pair.getPrivate())
.isInstanceOf(ElGamalPrivateKeyParameters.class);
final ElGamalPrivateKeyParameters privateKeys = (ElGamalPrivateKeyParameters) pair
.getPrivate();
assertThat(privateKeys.getParameters().getP().toByteArray().length)
.isEqualTo(1025);
}
示例12: JCEElGamalPrivateKey
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
JCEElGamalPrivateKey(
ElGamalPrivateKeyParameters params)
{
this.x = params.getX();
this.elSpec = new ElGamalParameterSpec(params.getParameters().getP(), params.getParameters().getG());
}
示例13: BCElGamalPrivateKey
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
BCElGamalPrivateKey(
ElGamalPrivateKeyParameters params)
{
this.x = params.getX();
this.elSpec = new ElGamalParameterSpec(params.getParameters().getP(), params.getParameters().getG());
}
示例14: testGeneration
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters; //导入依赖的package包/类
/**
* this test is can take quiet a while
*
* @param size size of key in bits.
*/
private void testGeneration(
int size)
{
ElGamalParametersGenerator pGen = new ElGamalParametersGenerator();
pGen.init(size, 10, new SecureRandom());
ElGamalParameters elParams = pGen.generateParameters();
if (elParams.getL() != 0)
{
fail("ElGamalParametersGenerator failed to set L to 0 in generated ElGamalParameters");
}
ElGamalKeyGenerationParameters params = new ElGamalKeyGenerationParameters(new SecureRandom(), elParams);
ElGamalKeyPairGenerator kpGen = new ElGamalKeyPairGenerator();
kpGen.init(params);
//
// generate first pair
//
AsymmetricCipherKeyPair pair = kpGen.generateKeyPair();
ElGamalPublicKeyParameters pu = (ElGamalPublicKeyParameters)pair.getPublic();
ElGamalPrivateKeyParameters pv = (ElGamalPrivateKeyParameters)pair.getPrivate();
ElGamalEngine e = new ElGamalEngine();
e.init(true, new ParametersWithRandom(pu, new SecureRandom()));
byte[] message = Hex.decode("5468697320697320612074657374");
byte[] pText = message;
byte[] cText = e.processBlock(pText, 0, pText.length);
e.init(false, pv);
pText = e.processBlock(cText, 0, cText.length);
if (!Arrays.areEqual(message, pText))
{
fail("generation test failed");
}
}