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


Java GOST3411Digest.getDigestSize方法代码示例

本文整理汇总了Java中org.bouncycastle.crypto.digests.GOST3411Digest.getDigestSize方法的典型用法代码示例。如果您正苦于以下问题:Java GOST3411Digest.getDigestSize方法的具体用法?Java GOST3411Digest.getDigestSize怎么用?Java GOST3411Digest.getDigestSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.bouncycastle.crypto.digests.GOST3411Digest的用法示例。


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

示例1: 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");
    }
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:57,代码来源:ECGOST3410Test.java

示例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

    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");
    }
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:55,代码来源:ECGOST3410Test.java


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