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


Java DSASigner.init方法代码示例

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


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

示例1: performTest

import org.bouncycastle.crypto.signers.DSASigner; //导入方法依赖的package包/类
public void performTest()
{
    BigInteger              r = new BigInteger("68076202252361894315274692543577577550894681403");
    BigInteger              s = new BigInteger("1089214853334067536215539335472893651470583479365");
    DSAParametersGenerator  pGen = new DSAParametersGenerator();

    pGen.init(512, 80, random);

    DSAParameters           params = pGen.generateParameters();
    DSAValidationParameters pValid = params.getValidationParameters();

    if (pValid.getCounter() != 105)
    {
        fail("Counter wrong");
    }

    if (!pValue.equals(params.getP()) || !qValue.equals(params.getQ()))
    {
        fail("p or q wrong");
    }

    DSAKeyPairGenerator         dsaKeyGen = new DSAKeyPairGenerator();
    DSAKeyGenerationParameters  genParam = new DSAKeyGenerationParameters(keyRandom, params);

    dsaKeyGen.init(genParam);

    AsymmetricCipherKeyPair  pair = dsaKeyGen.generateKeyPair();

    ParametersWithRandom param = new ParametersWithRandom(pair.getPrivate(), keyRandom);

    DSASigner dsa = new DSASigner();

    dsa.init(true, param);

    byte[] message = BigIntegers.asUnsignedByteArray(new BigInteger("968236873715988614170569073515315707566766479517"));
    BigInteger[] sig = dsa.generateSignature(message);

    if (!r.equals(sig[0]))
    {
        fail("r component wrong.", r, sig[0]);
    }

    if (!s.equals(sig[1]))
    {
        fail("s component wrong.", s, sig[1]);
    }

    dsa.init(false, pair.getPublic());

    if (!dsa.verifySignature(message, sig[0], sig[1]))
    {
        fail("verification fails");
    }

    dsa2Test1();
    dsa2Test2();
    dsa2Test3();
    dsa2Test4();
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:60,代码来源:DSATest.java

示例2: performTest

import org.bouncycastle.crypto.signers.DSASigner; //导入方法依赖的package包/类
public void performTest()
{
    BigInteger              r = new BigInteger("68076202252361894315274692543577577550894681403");
    BigInteger              s = new BigInteger("1089214853334067536215539335472893651470583479365");
    DSAParametersGenerator  pGen = new DSAParametersGenerator();

    pGen.init(512, 20, random);

    DSAParameters           params = pGen.generateParameters();
    DSAValidationParameters pValid = params.getValidationParameters();

    if (pValid.getCounter() != 105)
    {
        fail("Counter wrong");
    }

    if (!pValue.equals(params.getP()) || !qValue.equals(params.getQ()))
    {
        fail("p or q wrong");
    }

    DSAKeyPairGenerator         dsaKeyGen = new DSAKeyPairGenerator();
    DSAKeyGenerationParameters  genParam = new DSAKeyGenerationParameters(keyRandom, params);

    dsaKeyGen.init(genParam);

    AsymmetricCipherKeyPair  pair = dsaKeyGen.generateKeyPair();

    ParametersWithRandom param = new ParametersWithRandom(pair.getPrivate(), keyRandom);

    DSASigner dsa = new DSASigner();

    dsa.init(true, param);

    byte[] message = BigIntegers.asUnsignedByteArray(new BigInteger("968236873715988614170569073515315707566766479517"));
    BigInteger[] sig = dsa.generateSignature(message);

    if (!r.equals(sig[0]))
    {
        fail("r component wrong.", r, sig[0]);
    }

    if (!s.equals(sig[1]))
    {
        fail("s component wrong.", s, sig[1]);
    }

    dsa.init(false, pair.getPublic());

    if (!dsa.verifySignature(message, sig[0], sig[1]))
    {
        fail("verification fails");
    }

    //dsa2Test1();
    //dsa2Test2();
    //dsa2Test3();
    //dsa2Test4();
}
 
开发者ID:credentials,项目名称:irma_future_id,代码行数:60,代码来源:DSATest.java

示例3: testNONEwithDSA

import org.bouncycastle.crypto.signers.DSASigner; //导入方法依赖的package包/类
private void testNONEwithDSA()
    throws Exception
{
    byte[] dummySha1 = Hex.decode("01020304050607080910111213141516");

    KeyPairGenerator kpGen = KeyPairGenerator.getInstance("DSA", "BC");

    kpGen.initialize(512);

    KeyPair          kp = kpGen.generateKeyPair();

    Signature        sig = Signature.getInstance("NONEwithDSA", "BC");

    sig.initSign(kp.getPrivate());

    sig.update(dummySha1);

    byte[] sigBytes = sig.sign();

    sig.initVerify(kp.getPublic());

    sig.update(dummySha1);

    sig.verify(sigBytes);

    // reset test

    sig.update(dummySha1);

    if (!sig.verify(sigBytes))
    {
        fail("NONEwithDSA failed to reset");
    }

    // lightweight test
    DSAPublicKey  key = (DSAPublicKey)kp.getPublic();
    DSAParameters params = new DSAParameters(key.getParams().getP(), key.getParams().getQ(), key.getParams().getG());
    DSAPublicKeyParameters keyParams = new DSAPublicKeyParameters(key.getY(), params);
    DSASigner signer = new DSASigner();
    ASN1Sequence derSig = ASN1Sequence.getInstance(ASN1Primitive.fromByteArray(sigBytes));

    signer.init(false, keyParams);

    if (!signer.verifySignature(dummySha1, DERInteger.getInstance(derSig.getObjectAt(0)).getValue(), DERInteger.getInstance(derSig.getObjectAt(1)).getValue()))
    {
        fail("NONEwithDSA not really NONE!");
    }
}
 
开发者ID:NoYouShutup,项目名称:CryptMeme,代码行数:49,代码来源:DSATest.java


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