org.spongycastle.asn1.x9.X9ECParameters类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(287)

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

X9ECParameters介绍

[英]ASN.1 def for Elliptic-Curve ECParameters structure. See X9.62, for further details.
[中]ASN。1个用于椭圆曲线结构的def。参见X9。62,了解更多细节。

代码示例

代码示例来源:origin: ethereum/ethereumj

@BeforeClass
public static void beforeAll() {
  curve = new ECDomainParameters(IES_CURVE_PARAM.getCurve(), IES_CURVE_PARAM.getG(), IES_CURVE_PARAM.getN(), IES_CURVE_PARAM.getH());
}

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

public X962Parameters(
  X9ECParameters      ecParameters)
{
  this.params = ecParameters.toASN1Primitive();
}

代码示例来源:origin: stackoverflow.com

X9ECParameters x9 = NISTNamedCurves.getByName("P-224"); // or whatever curve you want to use
ECPoint g = x9.getG();
BigInteger n = x9.getN();
int nBitLength = n.bitLength();
BigInteger x;
do
{
  x = new BigInteger(nBitLength, random);
}
while (x.equals(ZERO)  || (x.compareTo(n) >= 0));
ECPoint randomPoint = g.multiply(x);

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

protected X9ECParameters createParameters()
  {
    ECCurve curve = new ECCurve.Fp(
      new BigInteger("E95E4A5F737059DC60DFC7AD95B3D8139515620F", 16), // q
      new BigInteger("340E7BE2A280EB74E2BE61BADA745D97E8F7C300", 16), // a
      new BigInteger("1E589A8595423412134FAA2DBDEC95C8D8675E58", 16)); // b
    return new X9ECParameters(
      curve,
      curve.decodePoint(Hex.decode("04BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC31667CB477A1A8EC338F94741669C976316DA6321")), // G
      new BigInteger("E95E4A5F737059DC60DF5991D45029409E60FC09", 16), //n
      new BigInteger("01", 16)); // h
  }
};

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

ECCurve curve = EC5Util.convertCurve(ecSpec.getCurve());
X9ECParameters ecP = new X9ECParameters(
  curve,
  EC5Util.convertPoint(curve, ecSpec.getGenerator(), withCompression),
  ecSpec.getOrder(),
  BigInteger.valueOf(ecSpec.getCofactor()),
  ecSpec.getCurve().getSeed());

代码示例来源:origin: QuincySx/BlockchainWallet-Crypto

public static ExtendedKey create(byte[] seed) throws ValidationException {
  try {
    Mac mac = Mac.getInstance("HmacSHA512", "BC");
    SecretKey seedkey = new SecretKeySpec(BITCOIN_SEED, "HmacSHA512");
    mac.init(seedkey);
    byte[] lr = mac.doFinal(seed);
    byte[] l = Arrays.copyOfRange(lr, 0, 32);
    byte[] r = Arrays.copyOfRange(lr, 32, 64);
    BigInteger m = new BigInteger(1, l);
    if (m.compareTo(curve.getN()) >= 0) {
      throw new ValidationException("This is rather unlikely, but it did just happen");
    }
    ECKeyPair keyPair = new ECKeyPair(l, true);
    return new ExtendedKey(keyPair, r, 0, 0, 0);
  } catch (NoSuchAlgorithmException e) {
    throw new ValidationException(e);
  } catch (NoSuchProviderException e) {
    throw new ValidationException(e);
  } catch (InvalidKeyException e) {
    throw new ValidationException(e);
  }
}

代码示例来源:origin: blockcypher/java-client

bytes = Arrays.copyOf(bytes, 32);  // Chop off the additional marker byte.
BigInteger privKeyB = new BigInteger(1, bytes);
ECDomainParameters CURVE = new ECDomainParameters(params.getCurve(), params.getG(), params.getN(), params.getH());
BigInteger HALF_CURVE_ORDER = params.getN().shiftRight(1);
SecureRandom secureRandom = new SecureRandom();

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

private static void implPrintRootZ(X9ECParameters x9)
{
  ECFieldElement z = x9.getCurve().fromBigInteger(BigInteger.valueOf(2));
  ECFieldElement rootZ = z.sqrt();
  System.out.println(rootZ.toBigInteger().toString(16).toUpperCase());
  if (!rootZ.square().equals(z))
  {
    throw new IllegalStateException("Optimized-sqrt sanity check failed");
  }
}

代码示例来源:origin: stackoverflow.com

X9ECParameters x9 = NISTNamedCurves.getByName("P-224");
 ECCurve.Fp curve = (Fp) x9.getCurve();
 BigInteger q = curve.getQ();
 ECFieldElement x1 = new ECFieldElement.Fp(q, new BigInteger("8"));
 ECFieldElement y1 = new ECFieldElement.Fp(q, new BigInteger("9"));

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

protected X9ECParameters createParameters()
  {
    BigInteger p = fromHex("F1FD178C0B3AD58F10126DE8CE42435B3961ADBCABC8CA6DE8FCF353D86E9C03");
    BigInteger a = fromHex("F1FD178C0B3AD58F10126DE8CE42435B3961ADBCABC8CA6DE8FCF353D86E9C00");
    BigInteger b = fromHex("EE353FCA5428A9300D4ABA754A44C00FDFEC0C9AE4B1A1803075ED967B7BB73F");
    byte[] S = null;
    BigInteger n = fromHex("F1FD178C0B3AD58F10126DE8CE42435B53DC67E140D2BF941FFDD459C6D655E1");
    BigInteger h = BigInteger.valueOf(1);
    ECCurve curve = configureCurve(new ECCurve.Fp(p, a, b, n, h));
    X9ECPoint G = new X9ECPoint(curve, Hex.decode("04"
      + "B6B3D4C356C139EB31183D4749D423958C27D2DCAF98B70164C97A2DD98F5CFF"
      + "6142E0F7C8B204911F9271F0F3ECEF8C2701C307E8E4C9E183115A1554062CFB"));
    return new X9ECParameters(curve, G, n, h, S);
  }
};

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

public static void discoverEndomorphisms(X9ECParameters x9)
{
  if (x9 == null)
  {
    throw new NullPointerException("x9");
  }
  ECCurve c = x9.getCurve();
  if (ECAlgorithms.isFpCurve(c))
  {
    BigInteger characteristic = c.getField().getCharacteristic();
    if (c.getA().isZero() && characteristic.mod(ECConstants.THREE).equals(ECConstants.ONE))
    {
      System.out.println("Curve has a 'GLV Type B' endomorphism with these parameters:");
      printGLVTypeBParameters(x9);
    }
  }
}

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

public static ECParameterSpec convertToSpec(
  X9ECParameters domainParameters)
{
  return new ECParameterSpec(
    convertCurve(domainParameters.getCurve(), null),  // JDK 1.5 has trouble with this if it's not null...
    new ECPoint(
      domainParameters.getG().getAffineXCoord().toBigInteger(),
      domainParameters.getG().getAffineYCoord().toBigInteger()),
    domainParameters.getN(),
    domainParameters.getH().intValue());
}

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

/**
 * Output this ECKey as an ASN.1 encoded private key, as understood by OpenSSL or used by the BitCoin reference
 * implementation in its wallet storage format.
 */
public byte[] toASN1() {
  try {
    ByteArrayOutputStream baos = new ByteArrayOutputStream(400);
    // ASN1_SEQUENCE(EC_PRIVATEKEY) = {
    //   ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
    //   ASN1_SIMPLE(EC_PRIVATEKEY, privateKey, ASN1_OCTET_STRING),
    //   ASN1_EXP_OPT(EC_PRIVATEKEY, parameters, ECPKPARAMETERS, 0),
    //   ASN1_EXP_OPT(EC_PRIVATEKEY, publicKey, ASN1_BIT_STRING, 1)
    // } ASN1_SEQUENCE_END(EC_PRIVATEKEY)
    DERSequenceGenerator seq = new DERSequenceGenerator(baos);
    seq.addObject(new ASN1Integer(1)); // version
    seq.addObject(new DEROctetString(priv.toByteArray()));
    seq.addObject(new DERTaggedObject(0, SECNamedCurves.getByName("secp256k1").toASN1Primitive()));
    seq.addObject(new DERTaggedObject(1, new DERBitString(getPubKey())));
    seq.close();
    return baos.toByteArray();
  } catch (IOException e) {
    throw new RuntimeException(e);  // Cannot happen, writing to memory stream.
  }
}

代码示例来源:origin: ontio/ontology-java-sdk

private static ECPoint decode(final byte[] toAdd) {
  return CURVE.getCurve().decodePoint(toAdd);
}

代码示例来源:origin: lhalcyon/dapp-wallet-demo

private static ECPoint gMultiply(BigInteger p) {
    return CURVE.getG()
        .multiply(p);
  }
}

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

private static void printGLVTypeBParameters(X9ECParameters x9)
{
  // x^2 + x + 1 = 0 mod n
  BigInteger[] lambdas = solveQuadraticEquation(x9.getN(), ECConstants.ONE, ECConstants.ONE);
  /*
   * The 'Beta' values are field elements of order 3. There are only two such values besides 1, each corresponding
   * to one choice for 'Lambda'.
   */
  ECFieldElement[] betas = findBetaValues(x9.getCurve());
  printGLVTypeBParameters(x9, lambdas[0], betas);
  System.out.println("OR");
  printGLVTypeBParameters(x9, lambdas[1], betas);
}

代码示例来源:origin: lhalcyon/dapp-wallet-demo

static BigInteger n() {
  return CURVE.getN();
}

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

curve = ecP.getCurve();
X9ECParameters ecP = X9ECParameters.getInstance(params.getParameters());
curve = ecP.getCurve();

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

public static X9ECParameters getInstance(Object obj)
{
  if (obj instanceof X9ECParameters)
  {
    return (X9ECParameters)obj;
  }
  if (obj != null)
  {
    return new X9ECParameters(ASN1Sequence.getInstance(obj));
  }
  return null;
}

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

public Object parseObject(PemObject obj)
    throws IOException
  {
    try
    {
      Object param = ASN1Primitive.fromByteArray(obj.getContent());
      if (param instanceof ASN1ObjectIdentifier)
      {
        return ASN1Primitive.fromByteArray(obj.getContent());
      }
      else if (param instanceof ASN1Sequence)
      {
        return X9ECParameters.getInstance(param);
      }
      else
      {
        return null;  // implicitly CA
      }
    }
    catch (IOException e)
    {
      throw e;
    }
    catch (Exception e)
    {
      throw new PEMException("exception extracting EC named curve: " + e.toString());
    }
  }
}

相关文章