java.security.spec.EllipticCurve.getB()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(11.8k)|赞(0)|评价(0)|浏览(98)

本文整理了Java中java.security.spec.EllipticCurve.getB()方法的一些代码示例,展示了EllipticCurve.getB()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。EllipticCurve.getB()方法的具体详情如下:
包路径:java.security.spec.EllipticCurve
类名称:EllipticCurve
方法名:getB

EllipticCurve.getB介绍

[英]Returns the coefficient b of this elliptic curve.
[中]返回此椭圆曲线的系数b。

代码示例

代码示例来源:origin: org.xipki/security

public static boolean isSm2primev2Curve(EllipticCurve curve) {
 return curve.getB().equals(sm2primev2CurveA);
}

代码示例来源:origin: com.google.crypto.tink/tink

/**
 * Computes the y coordinate of a point on an elliptic curve. This method can be used to
 * decompress elliptic curve points.
 *
 * @param x the x-coordinate of the point
 * @param lsb the least significant bit of the y-coordinate of the point.
 * @param curve this must be an elliptic curve over a prime field using Weierstrass
 *     representation.
 * @return the y coordinate.
 * @throws GeneralSecurityException if there is no point with coordinate x on the curve, or if
 *     curve is not supported.
 */
public static BigInteger getY(BigInteger x, boolean lsb, EllipticCurve curve)
  throws GeneralSecurityException {
 BigInteger p = getModulus(curve);
 BigInteger a = curve.getA();
 BigInteger b = curve.getB();
 BigInteger rhs = x.multiply(x).add(a).multiply(x).add(b).mod(p);
 BigInteger y = modSqrt(rhs, p);
 if (lsb != y.testBit(0)) {
  y = p.subtract(y).mod(p);
 }
 return y;
}

代码示例来源:origin: com.madgag.spongycastle/pkix

private static ECCurve convertCurve(
  EllipticCurve ec, BigInteger order, int coFactor)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b, order, BigInteger.valueOf(coFactor));
  }
  else
  {
    throw new IllegalStateException("not implemented yet!!!");
  }
}

代码示例来源:origin: com.madgag.spongycastle/bcpkix-jdk15on

private static ECCurve convertCurve(
  EllipticCurve ec, BigInteger order, int coFactor)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b, order, BigInteger.valueOf(coFactor));
  }
  else
  {
    throw new IllegalStateException("not implemented yet!!!");
  }
}

代码示例来源:origin: org.xbib/jsch-core

public boolean validate(byte[] r, byte[] s) throws Exception {
  BigInteger x = new BigInteger(1, r);
  BigInteger y = new BigInteger(1, s);
  ECPoint w = new ECPoint(x, y);
  if (w.equals(ECPoint.POINT_INFINITY)) {
    return false;
  }
  ECParameterSpec params = publicKey.getParams();
  EllipticCurve curve = params.getCurve();
  BigInteger p = ((ECFieldFp) curve.getField()).getP();
  BigInteger p_sub1 = p.subtract(BigInteger.ONE);
  if (!(x.compareTo(p_sub1) <= 0 && y.compareTo(p_sub1) <= 0)) {
    return false;
  }
  BigInteger tmp = x.multiply(curve.getA()).
      add(curve.getB()).
      add(x.modPow(three, p)).
      mod(p);
  BigInteger y_2 = y.modPow(two, p);
  return y_2.equals(tmp);
}

代码示例来源:origin: es.gob.afirma.jmulticard/jmulticard

private static ECCurve toSpongyCastleECCurve(final ECParameterSpec params) {
  final EllipticCurve curve = params.getCurve();
  final ECField field = curve.getField();
  if (!(field instanceof ECFieldFp)) {
    throw new IllegalArgumentException(
      "Solo se soporta 'ECFieldFp' y se proporciono  " + field.getClass().getCanonicalName() //$NON-NLS-1$
    );
  }
  final int coFactor = params.getCofactor();
  final BigInteger order = params.getOrder();
  final BigInteger a = curve.getA();
  final BigInteger b = curve.getB();
  final BigInteger p = getPrime(params);
  return new ECCurve.Fp(p, a, b, order, BigInteger.valueOf(coFactor));
}

代码示例来源:origin: com.madgag.spongycastle/bctls-jdk15on

private static ECCurve convertCurve(EllipticCurve ec, BigInteger order, int cofactor)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b, order, BigInteger.valueOf(cofactor));
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b, order, BigInteger.valueOf(cofactor));
  }
}

代码示例来源:origin: org.bouncycastle/bcprov-debug-jdk15on

public static ECCurve convertCurve(
  EllipticCurve ec)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    ECCurve.Fp curve = new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);
    if (customCurves.containsKey(curve))
    {
      return (ECCurve)customCurves.get(curve);
    }
    return curve;
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b); 
  }
}

代码示例来源:origin: com.madgag.spongycastle/prov

public static ECCurve convertCurve(
  EllipticCurve ec)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    ECCurve.Fp curve = new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);
    if (customCurves.containsKey(curve))
    {
      return (ECCurve)customCurves.get(curve);
    }
    return curve;
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b); 
  }
}

代码示例来源:origin: ibinti/bugvm

public static OpenSSLECGroupContext getInstance(ECParameterSpec params)
    throws InvalidAlgorithmParameterException {
  final String curveName = params.getCurveName();
  if (curveName != null) {
    return OpenSSLECGroupContext.getCurveByName(curveName);
  }
  final EllipticCurve curve = params.getCurve();
  final ECField field = curve.getField();
  final int type;
  final BigInteger p;
  if (field instanceof ECFieldFp) {
    type = NativeCrypto.EC_CURVE_GFP;
    p = ((ECFieldFp) field).getP();
  } else if (field instanceof ECFieldF2m) {
    type = NativeCrypto.EC_CURVE_GF2M;
    p = ((ECFieldF2m) field).getReductionPolynomial();
  } else {
    throw new InvalidParameterException("unhandled field class "
        + field.getClass().getName());
  }
  final ECPoint generator = params.getGenerator();
  return OpenSSLECGroupContext.getInstance(type, p, curve.getA(), curve.getB(),
      generator.getAffineX(), generator.getAffineY(), params.getOrder(),
      BigInteger.valueOf(params.getCofactor()));
}

代码示例来源:origin: com.bugvm/bugvm-rt

public static OpenSSLECGroupContext getInstance(ECParameterSpec params)
    throws InvalidAlgorithmParameterException {
  final String curveName = params.getCurveName();
  if (curveName != null) {
    return OpenSSLECGroupContext.getCurveByName(curveName);
  }
  final EllipticCurve curve = params.getCurve();
  final ECField field = curve.getField();
  final int type;
  final BigInteger p;
  if (field instanceof ECFieldFp) {
    type = NativeCrypto.EC_CURVE_GFP;
    p = ((ECFieldFp) field).getP();
  } else if (field instanceof ECFieldF2m) {
    type = NativeCrypto.EC_CURVE_GF2M;
    p = ((ECFieldF2m) field).getReductionPolynomial();
  } else {
    throw new InvalidParameterException("unhandled field class "
        + field.getClass().getName());
  }
  final ECPoint generator = params.getGenerator();
  return OpenSSLECGroupContext.getInstance(type, p, curve.getA(), curve.getB(),
      generator.getAffineX(), generator.getAffineY(), params.getOrder(),
      BigInteger.valueOf(params.getCofactor()));
}

代码示例来源:origin: com.bugvm/bugvm-rt

public static ECCurve convertCurve(
  EllipticCurve ec)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b); 
  }
}

代码示例来源:origin: com.madgag/scprov-jdk15on

public static ECCurve convertCurve(
  EllipticCurve ec)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b); 
  }
}

代码示例来源:origin: ibinti/bugvm

public static ECCurve convertCurve(
  EllipticCurve ec)
{
  ECField field = ec.getField();
  BigInteger a = ec.getA();
  BigInteger b = ec.getB();
  if (field instanceof ECFieldFp)
  {
    return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);
  }
  else
  {
    ECFieldF2m fieldF2m = (ECFieldF2m)field;
    int m = fieldF2m.getM();
    int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
    return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b); 
  }
}

代码示例来源:origin: termd/termd

public static void assertCurveEquals(String message, EllipticCurve expected, EllipticCurve actual) {
  if (expected == actual) {
    return;
  }
  assertEquals(message + "[A]", expected.getA(), actual.getA());
  assertEquals(message + "[B]", expected.getB(), actual.getB());
  assertArrayEquals(message + "[seed]", expected.getSeed(), actual.getSeed());
  assertECFieldEquals(message + "[field]", expected.getField(), actual.getField());
}

代码示例来源:origin: io.termd/termd-core

public static void assertCurveEquals(String message, EllipticCurve expected, EllipticCurve actual) {
  if (expected == actual) {
    return;
  }
  assertEquals(message + "[A]", expected.getA(), actual.getA());
  assertEquals(message + "[B]", expected.getB(), actual.getB());
  assertArrayEquals(message + "[seed]", expected.getSeed(), actual.getSeed());
  assertECFieldEquals(message + "[field]", expected.getField(), actual.getField());
}

代码示例来源:origin: com.alibaba.middleware/termd-core

public static void assertCurveEquals(String message, EllipticCurve expected, EllipticCurve actual) {
  if (expected == actual) {
    return;
  }
  assertEquals(message + "[A]", expected.getA(), actual.getA());
  assertEquals(message + "[B]", expected.getB(), actual.getB());
  assertArrayEquals(message + "[seed]", expected.getSeed(), actual.getSeed());
  assertECFieldEquals(message + "[field]", expected.getField(), actual.getField());
}

代码示例来源:origin: es.gob.afirma.jmulticard/jmulticard

private static ECParameterSpec mapNonceGMWithECDH(final BigInteger nonceS,
                         final ECPoint sharedSecretPointH,
                         final ECParameterSpec params) {
  // D~ = (p, a, b, G~, n, h) where G~ = [s]G + H
  final ECPoint generator = params.getGenerator();
  final EllipticCurve curve = params.getCurve();
  final BigInteger a = curve.getA();
  final BigInteger b = curve.getB();
  final ECFieldFp field = (ECFieldFp)curve.getField();
  final BigInteger p = field.getP();
  final BigInteger order = params.getOrder();
  final int cofactor = params.getCofactor();
  final ECPoint ephemeralGenerator = add(multiply(nonceS, generator, params), sharedSecretPointH, params);
  if (!toSpongyCastleECPoint(ephemeralGenerator, params).isValid()) {
    LOGGER.warning("Se ha generado un punto invalido"); //$NON-NLS-1$
  }
  return new ECParameterSpec(new EllipticCurve(new ECFieldFp(p), a, b), ephemeralGenerator, order, cofactor);
}

代码示例来源:origin: com.madgag.spongycastle/bcpkix-jdk15on

public PublicKeyDataObject getPublicKeyDataObject(ASN1ObjectIdentifier usage, PublicKey publicKey)
{
  if (publicKey instanceof java.security.interfaces.RSAPublicKey)
  {
    java.security.interfaces.RSAPublicKey pubKey = (java.security.interfaces.RSAPublicKey)publicKey;
    return new RSAPublicKey(usage, pubKey.getModulus(), pubKey.getPublicExponent());
  }
  else
  {
    ECPublicKey pubKey = (ECPublicKey)publicKey;
    java.security.spec.ECParameterSpec params = pubKey.getParams();
    return new ECDSAPublicKey(
      usage,
      ((ECFieldFp)params.getCurve().getField()).getP(),
      params.getCurve().getA(), params.getCurve().getB(),
      convertPoint(convertCurve(params.getCurve(), params.getOrder(), params.getCofactor()), params.getGenerator()).getEncoded(),
      params.getOrder(),
      convertPoint(convertCurve(params.getCurve(), params.getOrder(), params.getCofactor()), pubKey.getW()).getEncoded(),
      params.getCofactor());
  }
}

代码示例来源:origin: com.madgag.spongycastle/pkix

public PublicKeyDataObject getPublicKeyDataObject(ASN1ObjectIdentifier usage, PublicKey publicKey)
{
  if (publicKey instanceof java.security.interfaces.RSAPublicKey)
  {
    java.security.interfaces.RSAPublicKey pubKey = (java.security.interfaces.RSAPublicKey)publicKey;
    return new RSAPublicKey(usage, pubKey.getModulus(), pubKey.getPublicExponent());
  }
  else
  {
    ECPublicKey pubKey = (ECPublicKey)publicKey;
    java.security.spec.ECParameterSpec params = pubKey.getParams();
    return new ECDSAPublicKey(
      usage,
      ((ECFieldFp)params.getCurve().getField()).getP(),
      params.getCurve().getA(), params.getCurve().getB(),
      convertPoint(convertCurve(params.getCurve(), params.getOrder(), params.getCofactor()), params.getGenerator()).getEncoded(),
      params.getOrder(),
      convertPoint(convertCurve(params.getCurve(), params.getOrder(), params.getCofactor()), pubKey.getW()).getEncoded(),
      params.getCofactor());
  }
}

相关文章