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


Java ECPublicKeyParameters.getQ方法代码示例

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


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

示例1: JCEECPublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public JCEECPublicKey(
    String                  algorithm,
    ECPublicKeyParameters   params,
    ECParameterSpec         spec)
{
    ECDomainParameters      dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        EllipticCurve ellipticCurve = EC5Util.convertCurve(dp.getCurve(), dp.getSeed());

        this.ecSpec = createSpec(ellipticCurve, dp);
    }
    else
    {
        this.ecSpec = spec;
    }
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:22,代码来源:JCEECPublicKey.java

示例2: BCDSTU4145PublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public BCDSTU4145PublicKey(
    String algorithm,
    ECPublicKeyParameters params,
    ECParameterSpec spec)
{
    ECDomainParameters dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        EllipticCurve ellipticCurve = EC5Util.convertCurve(dp.getCurve(), dp.getSeed());

        this.ecSpec = createSpec(ellipticCurve, dp);
    }
    else
    {
        this.ecSpec = spec;
    }
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:22,代码来源:BCDSTU4145PublicKey.java

示例3: BCECPublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public BCECPublicKey(
    String algorithm,
    ECPublicKeyParameters params,
    ECParameterSpec spec,
    ProviderConfiguration configuration)
{
    ECDomainParameters      dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        EllipticCurve ellipticCurve = EC5Util.convertCurve(dp.getCurve(), dp.getSeed());

        this.ecSpec = createSpec(ellipticCurve, dp);
    }
    else
    {
        this.ecSpec = spec;
    }

    this.configuration = configuration;
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:25,代码来源:BCECPublicKey.java

示例4: BCECGOST3410PublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public BCECGOST3410PublicKey(
    String algorithm,
    ECPublicKeyParameters params,
    ECParameterSpec spec)
{
    ECDomainParameters      dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        EllipticCurve ellipticCurve = EC5Util.convertCurve(dp.getCurve(), dp.getSeed());

        this.ecSpec = createSpec(ellipticCurve, dp);
    }
    else
    {
        this.ecSpec = spec;
    }
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:22,代码来源:BCECGOST3410PublicKey.java

示例5: JCEECPublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
JCEECPublicKey(
    String                  algorithm,
    ECPublicKeyParameters   params,
    ECParameterSpec         spec)
{
    ECDomainParameters      dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        this.ecSpec = new ECParameterSpec(
                        dp.getCurve(),
                        dp.getG(),
                        dp.getN(),
                        dp.getH(),
                        dp.getSeed());
    }
    else
    {
        this.ecSpec = spec;
    }
}
 
开发者ID:thangbn,项目名称:Direct-File-Downloader,代码行数:25,代码来源:JCEECPublicKey.java

示例6: BCECGOST3410PublicKey

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public BCECGOST3410PublicKey(
    String algorithm,
    ECPublicKeyParameters params,
    ECParameterSpec spec)
{
    ECDomainParameters dp = params.getParameters();

    this.algorithm = algorithm;
    this.q = params.getQ();

    if (spec == null)
    {
        EllipticCurve ellipticCurve = EC5Util.convertCurve(dp.getCurve(), dp.getSeed());

        this.ecSpec = createSpec(ellipticCurve, dp);
    }
    else
    {
        this.ecSpec = spec;
    }
}
 
开发者ID:thedrummeraki,项目名称:Aki-SSL,代码行数:22,代码来源:BCECGOST3410PublicKey.java

示例7: initEnc

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
public ECPoint initEnc(SM2 sm2, ECPoint userKey) {
    AsymmetricCipherKeyPair key = sm2.ecc_key_pair_generator.generateKeyPair();
    ECPrivateKeyParameters ecpriv = (ECPrivateKeyParameters) key.getPrivate();
    ECPublicKeyParameters ecpub = (ECPublicKeyParameters) key.getPublic();
    BigInteger k = ecpriv.getD();
    ECPoint c1 = ecpub.getQ();
    this.p2 = userKey.multiply(k);
    reset();
    return c1;
}
 
开发者ID:nuls-io,项目名称:nuls,代码行数:11,代码来源:Cipher.java

示例8: calculateMqvAgreement

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
private ECPoint calculateMqvAgreement(
        ECDomainParameters      parameters,
        ECPrivateKeyParameters  d1U,
        ECPrivateKeyParameters  d2U,
        ECPublicKeyParameters   Q2U,
        ECPublicKeyParameters   Q1V,
        ECPublicKeyParameters   Q2V)
    {
        BigInteger n = parameters.getN();
        int e = (n.bitLength() + 1) / 2;
        BigInteger powE = ECConstants.ONE.shiftLeft(e);

        // The Q2U public key is optional
        ECPoint q;
        if (Q2U == null)
        {
            q = parameters.getG().multiply(d2U.getD());
        }
        else
        {
            q = Q2U.getQ();
        }

        BigInteger x = q.getX().toBigInteger();
        BigInteger xBar = x.mod(powE);
        BigInteger Q2UBar = xBar.setBit(e);
        BigInteger s = d1U.getD().multiply(Q2UBar).mod(n).add(d2U.getD()).mod(n);

        BigInteger xPrime = Q2V.getQ().getX().toBigInteger();
        BigInteger xPrimeBar = xPrime.mod(powE);
        BigInteger Q2VBar = xPrimeBar.setBit(e);

        BigInteger hs = parameters.getH().multiply(s).mod(n);

//        ECPoint p = Q1V.getQ().multiply(Q2VBar).add(Q2V.getQ()).multiply(hs);
        ECPoint p = ECAlgorithms.sumOfTwoMultiplies(
            Q1V.getQ(), Q2VBar.multiply(hs).mod(n), Q2V.getQ(), hs);

        if (p.isInfinity())
        {
            throw new IllegalStateException("Infinity is not a valid agreement value for MQV");
        }

        return p;
    }
 
开发者ID:Appdome,项目名称:ipack,代码行数:46,代码来源:ECMQVBasicAgreement.java

示例9: verifySignature

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
/**
 * return true if the value r and s represent a signature for the 
 * message passed in. Generally, the order of the curve should be at 
 * least as long as the hash of the message of interest, and with 
 * ECNR, it *must* be at least as long.  But just in case the signer
 * applied mod(n) to the longer digest, this implementation will
 * apply mod(n) during verification.
 *
 * @param digest  the digest to be verified.
 * @param r       the r value of the signature.
 * @param s       the s value of the signature.
 * @exception DataLengthException if the digest is longer than the key allows
 */
public boolean verifySignature(
    byte[]      digest,
    BigInteger  r,
    BigInteger  s)
{
    if (this.forSigning) 
    {
        throw new IllegalStateException("not initialised for verifying");
    }

    ECPublicKeyParameters pubKey = (ECPublicKeyParameters)key;
    BigInteger n = pubKey.getParameters().getN();
    int nBitLength = n.bitLength();
    
    BigInteger e = new BigInteger(1, digest);
    int eBitLength = e.bitLength();
    
    if (eBitLength > nBitLength) 
    {
        throw new DataLengthException("input too large for ECNR key.");
    }
    
    // r in the range [1,n-1]
    if (r.compareTo(ECConstants.ONE) < 0 || r.compareTo(n) >= 0) 
    {
        return false;
    }

    // s in the range [0,n-1]           NB: ECNR spec says 0
    if (s.compareTo(ECConstants.ZERO) < 0 || s.compareTo(n) >= 0) 
    {
        return false;
    }

    // compute P = sG + rW

    ECPoint G = pubKey.getParameters().getG();
    ECPoint W = pubKey.getQ();
    // calculate P using Bouncy math
    ECPoint P = ECAlgorithms.sumOfTwoMultiplies(G, s, W, r);

    // components must be bogus.
    if (P.isInfinity())
    {
        return false;
    }

    BigInteger x = P.getX().toBigInteger();
    BigInteger t = r.subtract(x).mod(n);

    return t.equals(e);
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:66,代码来源:ECNRSigner.java

示例10: verifySignature

import org.bouncycastle.crypto.params.ECPublicKeyParameters; //导入方法依赖的package包/类
/**
 * return true if the value r and s represent a signature for the 
 * message passed in. Generally, the order of the curve should be at 
 * least as long as the hash of the message of interest, and with 
 * ECNR, it *must* be at least as long.  But just in case the signer
 * applied mod(n) to the longer digest, this implementation will
 * apply mod(n) during verification.
 *
 * @param digest  the digest to be verified.
 * @param r       the r value of the signature.
 * @param s       the s value of the signature.
 * @exception DataLengthException if the digest is longer than the key allows
 */
public boolean verifySignature(
    byte[]      digest,
    BigInteger  r,
    BigInteger  s)
{
    if (this.forSigning) 
    {
        throw new IllegalStateException("not initialised for verifying");
    }

    ECPublicKeyParameters pubKey = (ECPublicKeyParameters)key;
    BigInteger n = pubKey.getParameters().getN();
    int nBitLength = n.bitLength();
    
    BigInteger e = new BigInteger(1, digest);
    int eBitLength = e.bitLength();
    
    if (eBitLength > nBitLength) 
    {
        throw new DataLengthException("input too large for ECNR key.");
    }
    
    // r in the range [1,n-1]
    if (r.compareTo(ECConstants.ONE) < 0 || r.compareTo(n) >= 0) 
    {
        return false;
    }

    // s in the range [0,n-1]           NB: ECNR spec says 0
    if (s.compareTo(ECConstants.ZERO) < 0 || s.compareTo(n) >= 0) 
    {
        return false;
    }

    // compute P = sG + rW

    ECPoint G = pubKey.getParameters().getG();
    ECPoint W = pubKey.getQ();
    // calculate P using Bouncy math
    ECPoint P = ECAlgorithms.sumOfTwoMultiplies(G, s, W, r).normalize();

    // components must be bogus.
    if (P.isInfinity())
    {
        return false;
    }

    BigInteger x = P.getAffineXCoord().toBigInteger();
    BigInteger t = r.subtract(x).mod(n);

    return t.equals(e);
}
 
开发者ID:ttt43ttt,项目名称:gwt-crypto,代码行数:66,代码来源:ECNRSigner.java


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