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


Java ECCurve.decodePoint方法代码示例

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


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

示例1: testPointCompression

import org.spongycastle.math.ec.ECCurve; //导入方法依赖的package包/类
@Test
public void testPointCompression() {
    List<String> testPubKey = Arrays.asList(
            "044f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa385b6b1b8ead809ca67454d9683fcf2ba03456d6fe2c4abe2b07f0fbdbb2f1c1",
            "04ed83704c95d829046f1ac27806211132102c34e9ac7ffa1b71110658e5b9d1bdedc416f5cefc1db0625cd0c75de8192d2b592d7e3b00bcfb4a0e860d880fd1fc",
            "042596957532fc37e40486b910802ff45eeaa924548c0e1c080ef804e523ec3ed3ed0a9004acf927666eee18b7f5e8ad72ff100a3bb710a577256fd7ec81eb1cb3");

    ECDomainParameters ecp = ECKey.CURVE;
    ECCurve curve = ecp.getCurve();

    for (String testpkStr : testPubKey) {
        byte[] testpk = Hex.decode(testpkStr);

        BigInteger pubX = new BigInteger(1, Arrays.copyOfRange(testpk, 1, 33));
        BigInteger pubY = new BigInteger(1, Arrays.copyOfRange(testpk, 33, 65));

        ECPoint ptFlat = curve.createPoint(pubX, pubY, false); // 65
        ECPoint ptComp = curve.createPoint(pubX, pubY, true);  // 33
        ECPoint uncompressed = HDUtils.toUncompressed(ptComp);
        ECPoint recompressed = HDUtils.compressedCopy(uncompressed);
        ECPoint orig = curve.decodePoint(testpk);

        log.info("====================");
        log.info("Flat:              {}", asHexStr(ptFlat));
        log.info("Compressed:        {}", asHexStr(ptComp));
        log.info("Uncompressed:      {}", asHexStr(uncompressed));
        log.info("Recompressed:      {}", asHexStr(recompressed));
        log.info("Original (uncomp): {}", asHexStr(orig));

        // assert point equality:
        Assert.assertEquals(ptFlat, uncompressed);
        Assert.assertEquals(ptFlat, ptComp);
        Assert.assertEquals(ptComp, recompressed);
        Assert.assertEquals(ptComp, orig);

        // assert bytes equality:
        Assert.assertArrayEquals(ptFlat.getEncoded(), uncompressed.getEncoded());
        Assert.assertArrayEquals(ptComp.getEncoded(), recompressed.getEncoded());
        Assert.assertArrayEquals(ptFlat.getEncoded(), orig.getEncoded());
        Assert.assertFalse(Arrays.equals(ptFlat.getEncoded(), ptComp.getEncoded()));

        // todo: assert header byte
    }
}
 
开发者ID:HashEngineering,项目名称:megacoinj,代码行数:45,代码来源:HDUtilsTest.java

示例2: testPointCompression

import org.spongycastle.math.ec.ECCurve; //导入方法依赖的package包/类
@Test
public void testPointCompression() {
    List<String> testPubKey = Arrays.asList(
            "044f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa385b6b1b8ead809ca67454d9683fcf2ba03456d6fe2c4abe2b07f0fbdbb2f1c1",
            "04ed83704c95d829046f1ac27806211132102c34e9ac7ffa1b71110658e5b9d1bdedc416f5cefc1db0625cd0c75de8192d2b592d7e3b00bcfb4a0e860d880fd1fc",
            "042596957532fc37e40486b910802ff45eeaa924548c0e1c080ef804e523ec3ed3ed0a9004acf927666eee18b7f5e8ad72ff100a3bb710a577256fd7ec81eb1cb3");

    ECDomainParameters ecp = ECKey.CURVE;
    ECCurve curve = ecp.getCurve();

    for (String testpkStr : testPubKey) {
        byte[] testpk = Hex.decode(testpkStr);

        ECPoint orig = curve.decodePoint(testpk);
        ECPoint ptFlat = curve.decodePoint(orig.getEncoded(false));
        ECPoint ptComp = curve.decodePoint(ptFlat.getEncoded(true));
        ECPoint uncompressed = curve.decodePoint(ptComp.getEncoded(false));
        ECPoint recompressed = curve.decodePoint(uncompressed.getEncoded(true));

        log.info("====================");
        log.info("Flat:              {}", asHexStr(ptFlat));
        log.info("Compressed:        {}", asHexStr(ptComp));
        log.info("Uncompressed:      {}", asHexStr(uncompressed));
        log.info("Recompressed:      {}", asHexStr(recompressed));
        log.info("Original (uncomp): {}", asHexStr(orig));

        // assert point equality:
        Assert.assertEquals(ptFlat, uncompressed);
        Assert.assertEquals(ptFlat, ptComp);
        Assert.assertEquals(ptComp, recompressed);
        Assert.assertEquals(ptComp, orig);

        // assert bytes equality:
        Assert.assertArrayEquals(ptFlat.getEncoded(), uncompressed.getEncoded());
        Assert.assertArrayEquals(ptComp.getEncoded(), recompressed.getEncoded());
        Assert.assertArrayEquals(ptFlat.getEncoded(), orig.getEncoded());
        Assert.assertFalse(Arrays.equals(ptFlat.getEncoded(), ptComp.getEncoded()));

        // todo: assert header byte
    }
}
 
开发者ID:pavel4n,项目名称:wowdoge.org,代码行数:42,代码来源:HDUtilsTest.java

示例3: testPointCompression

import org.spongycastle.math.ec.ECCurve; //导入方法依赖的package包/类
@Test
public void testPointCompression() {
    List<String> testPubKey = Arrays.asList(
            "044f355bdcb7cc0af728ef3cceb9615d90684bb5b2ca5f859ab0f0b704075871aa385b6b1b8ead809ca67454d9683fcf2ba03456d6fe2c4abe2b07f0fbdbb2f1c1",
            "04ed83704c95d829046f1ac27806211132102c34e9ac7ffa1b71110658e5b9d1bdedc416f5cefc1db0625cd0c75de8192d2b592d7e3b00bcfb4a0e860d880fd1fc",
            "042596957532fc37e40486b910802ff45eeaa924548c0e1c080ef804e523ec3ed3ed0a9004acf927666eee18b7f5e8ad72ff100a3bb710a577256fd7ec81eb1cb3");

    ECDomainParameters ecp = HDUtils.getEcParams();
    ECCurve curve = ecp.getCurve();

    for (String testpkStr : testPubKey) {
        byte[] testpk = Hex.decode(testpkStr);

        BigInteger pubX = HDUtils.toBigInteger(Arrays.copyOfRange(testpk, 1, 33));
        BigInteger pubY = HDUtils.toBigInteger(Arrays.copyOfRange(testpk, 33, 65));

        ECPoint ptFlat = curve.createPoint(pubX, pubY, false); // 65
        ECPoint ptComp = curve.createPoint(pubX, pubY, true);  // 33
        ECPoint uncompressed = HDUtils.toUncompressed(ptComp);
        ECPoint recompressed = HDUtils.compressedCopy(uncompressed);
        ECPoint orig = curve.decodePoint(testpk);

        log.info("====================");
        log.info("Flat:              {}", asHexStr(ptFlat));
        log.info("Compressed:        {}", asHexStr(ptComp));
        log.info("Uncompressed:      {}", asHexStr(uncompressed));
        log.info("Recompressed:      {}", asHexStr(recompressed));
        log.info("Original (uncomp): {}", asHexStr(orig));

        // assert point equality:
        Assert.assertEquals(ptFlat, uncompressed);
        Assert.assertEquals(ptFlat, ptComp);
        Assert.assertEquals(ptComp, recompressed);
        Assert.assertEquals(ptComp, orig);

        // assert bytes equality:
        Assert.assertArrayEquals(ptFlat.getEncoded(), uncompressed.getEncoded());
        Assert.assertArrayEquals(ptComp.getEncoded(), recompressed.getEncoded());
        Assert.assertArrayEquals(ptFlat.getEncoded(), orig.getEncoded());
        Assert.assertFalse(Arrays.equals(ptFlat.getEncoded(), ptComp.getEncoded()));

        // todo: assert header byte
    }
}
 
开发者ID:sserrano44,项目名称:bitcoinj-watcher-service,代码行数:45,代码来源:HDUtilsTest.java


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