本文整理汇总了Java中org.bouncycastle.crypto.digests.GOST3411Digest.update方法的典型用法代码示例。如果您正苦于以下问题:Java GOST3411Digest.update方法的具体用法?Java GOST3411Digest.update怎么用?Java GOST3411Digest.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.bouncycastle.crypto.digests.GOST3411Digest
的用法示例。
在下文中一共展示了GOST3411Digest.update方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generateKey
import org.bouncycastle.crypto.digests.GOST3411Digest; //导入方法依赖的package包/类
private byte[] generateKey(byte[] startkey)
{
byte[] newKey = new byte[GOST28147_KEY_LENGTH];
GOST3411Digest digest = new GOST3411Digest();
digest.update(startkey, 0, startkey.length);
digest.doFinal(newKey, 0);
return newKey;
}
示例2: ecGOST3410_TestParam
import org.bouncycastle.crypto.digests.GOST3411Digest; //导入方法依赖的package包/类
/**
* Test Sign & Verify with test parameters
* see: http://www.ietf.org/internet-drafts/draft-popov-cryptopro-cpalgs-01.txt
* gostR3410-2001-TestParamSet P.46
*/
private void ecGOST3410_TestParam()
{
SecureRandom random = new SecureRandom();
BigInteger mod_p = new BigInteger("57896044618658097711785492504343953926634992332820282019728792003956564821041"); //p
BigInteger mod_q = new BigInteger("57896044618658097711785492504343953927082934583725450622380973592137631069619");
ECCurve.Fp curve = new ECCurve.Fp(
mod_p, // p
new BigInteger("7"), // a
new BigInteger("43308876546767276905765904595650931995942111794451039583252968842033849580414"), // b
mod_q, ECConstants.ONE);
ECDomainParameters params = new ECDomainParameters(
curve,
curve.createPoint(
new BigInteger("2"), // x
new BigInteger("4018974056539037503335449422937059775635739389905545080690979365213431566280")), // y
mod_q);
ECKeyPairGenerator pGen = new ECKeyPairGenerator();
ECKeyGenerationParameters genParam = new ECKeyGenerationParameters(
params,
random);
pGen.init(genParam);
AsymmetricCipherKeyPair pair = pGen.generateKeyPair();
ParametersWithRandom param = new ParametersWithRandom(pair.getPrivate(), random);
ECGOST3410Signer ecgost3410 = new ECGOST3410Signer();
ecgost3410.init(true, param);
//get hash message using the digest GOST3411.
byte[] message = "Message for sign".getBytes();
GOST3411Digest gost3411 = new GOST3411Digest();
gost3411.update(message, 0, message.length);
byte[] hashmessage = new byte[gost3411.getDigestSize()];
gost3411.doFinal(hashmessage, 0);
BigInteger[] sig = ecgost3410.generateSignature(hashmessage);
ecgost3410.init(false, pair.getPublic());
if (!ecgost3410.verifySignature(hashmessage, sig[0], sig[1]))
{
fail("signature fails");
}
}
示例3: ecGOST3410_TestParam
import org.bouncycastle.crypto.digests.GOST3411Digest; //导入方法依赖的package包/类
/**
* Test Sign & Verify with test parameters
* see: http://www.ietf.org/internet-drafts/draft-popov-cryptopro-cpalgs-01.txt
* gostR3410-2001-TestParamSet P.46
*/
private void ecGOST3410_TestParam()
{
SecureRandom random = new SecureRandom();
BigInteger mod_p = new BigInteger("57896044618658097711785492504343953926634992332820282019728792003956564821041"); //p
ECCurve.Fp curve = new ECCurve.Fp(
mod_p, // p
new BigInteger("7"), // a
new BigInteger("43308876546767276905765904595650931995942111794451039583252968842033849580414")); // b
ECDomainParameters params = new ECDomainParameters(
curve,
new ECPoint.Fp(curve,
new ECFieldElement.Fp(mod_p,new BigInteger("2")), // x
new ECFieldElement.Fp(mod_p,new BigInteger("4018974056539037503335449422937059775635739389905545080690979365213431566280"))), // y
new BigInteger("57896044618658097711785492504343953927082934583725450622380973592137631069619")); // q
ECKeyPairGenerator pGen = new ECKeyPairGenerator();
ECKeyGenerationParameters genParam = new ECKeyGenerationParameters(
params,
random);
pGen.init(genParam);
AsymmetricCipherKeyPair pair = pGen.generateKeyPair();
ParametersWithRandom param = new ParametersWithRandom(pair.getPrivate(), random);
ECGOST3410Signer ecgost3410 = new ECGOST3410Signer();
ecgost3410.init(true, param);
//get hash message using the digest GOST3411.
byte[] message = "Message for sign".getBytes();
GOST3411Digest gost3411 = new GOST3411Digest();
gost3411.update(message, 0, message.length);
byte[] hashmessage = new byte[gost3411.getDigestSize()];
gost3411.doFinal(hashmessage, 0);
BigInteger[] sig = ecgost3410.generateSignature(hashmessage);
ecgost3410.init(false, pair.getPublic());
if (!ecgost3410.verifySignature(hashmessage, sig[0], sig[1]))
{
fail("signature fails");
}
}