Search in sources :

Example 1 with KeyGenerator

use of io.nem.symbol.core.crypto.KeyGenerator in project nem2-sdk-java by nemtech.

the class Ed25519KeyGeneratorTest method derivePublicKey.

@Test
public void derivePublicKey() {
    final KeyGenerator generator = this.getKeyGenerator();
    final KeyPair keyPair = KeyPair.fromPrivate(PrivateKey.fromHexString("787225aaff3d2c71f4ffa32d4f19ec4922f3cd869747f267378f81f8e3fcb12d"));
    final PublicKey publicKey = generator.derivePublicKey(keyPair.getPrivateKey());
    final PublicKey expected = PublicKey.fromHexString("2134E47AEE6F2392A5B3D1238CD7714EABEB739361B7CCF24BAE127F10DF17F2");
    MatcherAssert.assertThat(publicKey, IsEqual.equalTo(expected));
}
Also used : KeyPair(io.nem.symbol.core.crypto.KeyPair) PublicKey(io.nem.symbol.core.crypto.PublicKey) KeyGenerator(io.nem.symbol.core.crypto.KeyGenerator) Test(org.junit.jupiter.api.Test) KeyGeneratorTest(io.nem.symbol.core.crypto.KeyGeneratorTest)

Example 2 with KeyGenerator

use of io.nem.symbol.core.crypto.KeyGenerator in project nem2-sdk-java by nemtech.

the class Ed25519KeyGeneratorTest method derivePublicKeyReturnsExpectedPublicKey.

@Test
public void derivePublicKeyReturnsExpectedPublicKey() {
    // Arrange:
    final KeyGenerator generator = this.getKeyGenerator();
    for (int i = 0; i < 100; i++) {
        final KeyPair kp = generator.generateKeyPair();
        // Act:
        final PublicKey publicKey1 = generator.derivePublicKey(kp.getPrivateKey());
        final PublicKey publicKey2 = MathUtils.derivePublicKey(kp.getPrivateKey());
        // Assert:
        MatcherAssert.assertThat(publicKey1, IsEqual.equalTo(publicKey2));
    }
}
Also used : KeyPair(io.nem.symbol.core.crypto.KeyPair) PublicKey(io.nem.symbol.core.crypto.PublicKey) KeyGenerator(io.nem.symbol.core.crypto.KeyGenerator) Test(org.junit.jupiter.api.Test) KeyGeneratorTest(io.nem.symbol.core.crypto.KeyGeneratorTest)

Example 3 with KeyGenerator

use of io.nem.symbol.core.crypto.KeyGenerator in project nem2-sdk-java by nemtech.

the class Ed25519KeyGeneratorTest method derivedPublicKeyIsValidPointOnCurve.

@Test
public void derivedPublicKeyIsValidPointOnCurve() {
    // Arrange:
    final KeyGenerator generator = this.getKeyGenerator();
    for (int i = 0; i < 100; i++) {
        final KeyPair kp = generator.generateKeyPair();
        // Act:
        final PublicKey publicKey = generator.derivePublicKey(kp.getPrivateKey());
        // Assert (throws if not on the curve):
        Ed25519GroupElement decode = new Ed25519EncodedGroupElement(publicKey.getBytes()).decode();
        Assertions.assertNotNull(decode);
    }
}
Also used : KeyPair(io.nem.symbol.core.crypto.KeyPair) PublicKey(io.nem.symbol.core.crypto.PublicKey) Ed25519GroupElement(io.nem.symbol.core.crypto.ed25519.arithmetic.Ed25519GroupElement) KeyGenerator(io.nem.symbol.core.crypto.KeyGenerator) Ed25519EncodedGroupElement(io.nem.symbol.core.crypto.ed25519.arithmetic.Ed25519EncodedGroupElement) Test(org.junit.jupiter.api.Test) KeyGeneratorTest(io.nem.symbol.core.crypto.KeyGeneratorTest)

Aggregations

KeyGenerator (io.nem.symbol.core.crypto.KeyGenerator)3 KeyGeneratorTest (io.nem.symbol.core.crypto.KeyGeneratorTest)3 KeyPair (io.nem.symbol.core.crypto.KeyPair)3 PublicKey (io.nem.symbol.core.crypto.PublicKey)3 Test (org.junit.jupiter.api.Test)3 Ed25519EncodedGroupElement (io.nem.symbol.core.crypto.ed25519.arithmetic.Ed25519EncodedGroupElement)1 Ed25519GroupElement (io.nem.symbol.core.crypto.ed25519.arithmetic.Ed25519GroupElement)1