Search in sources :

Example 36 with Binder

use of net.sergeych.tools.Binder in project universa by UniversaBlockchain.

the class RoleReferencesTest method serializeAny.

@Test
public void serializeAny() throws Exception {
    SimpleRole sr = new SimpleRole("tr1");
    sr.addKeyRecord(new KeyRecord(keys.get(0).getPublicKey()));
    sr.addRequiredReference("ref", Role.RequiredMode.ANY_OF);
    Binder serialized = DefaultBiMapper.serialize(sr);
    Role r1 = DefaultBiMapper.deserialize(serialized);
    assertEquals(sr, r1);
    assertTrue(sr.getReferences(Role.RequiredMode.ALL_OF).isEmpty());
    assertEquals(sr.getReferences(Role.RequiredMode.ANY_OF).size(), 1);
    assertEquals(sr.getReferences(Role.RequiredMode.ANY_OF).iterator().next(), "ref");
}
Also used : KeyRecord(com.icodici.universa.contract.KeyRecord) Binder(net.sergeych.tools.Binder) Test(org.junit.Test)

Example 37 with Binder

use of net.sergeych.tools.Binder in project universa by UniversaBlockchain.

the class SimpleRoleTest method testAddressRole.

@Test
public void testAddressRole() throws Exception {
    Set<KeyAddress> keyAddresses = new HashSet<>();
    keyAddresses.add(new KeyAddress(keys.get(0).getPublicKey(), 0, true));
    SimpleRole sr = new SimpleRole("tr1", keyAddresses);
    Binder serialized = DefaultBiMapper.serialize(sr);
    Role r1 = DefaultBiMapper.deserialize(serialized);
    Set<PublicKey> pubKeys = new HashSet<>();
    pubKeys.add(keys.get(0).getPublicKey());
    assertTrue(sr.isAllowedForKeys(pubKeys));
    assertTrue(r1.isAllowedForKeys(pubKeys));
    assertEquals(sr, r1);
}
Also used : Binder(net.sergeych.tools.Binder) PublicKey(com.icodici.crypto.PublicKey) KeyAddress(com.icodici.crypto.KeyAddress) Test(org.junit.Test)

Example 38 with Binder

use of net.sergeych.tools.Binder in project universa by UniversaBlockchain.

the class SimpleRoleTest method serializeMany.

@Test
public void serializeMany() throws Exception {
    SimpleRole sr = new SimpleRole("tr1");
    keys.forEach(k -> sr.addKeyRecord(new KeyRecord(k.getPublicKey())));
    Binder serialized = DefaultBiMapper.serialize(sr);
    Role r1 = DefaultBiMapper.deserialize(serialized);
    assertEquals(sr, r1);
    Set<PublicKey> kk = r1.getKeys();
    keys.forEach(k -> assertTrue(kk.contains(k.getPublicKey())));
}
Also used : KeyRecord(com.icodici.universa.contract.KeyRecord) Binder(net.sergeych.tools.Binder) PublicKey(com.icodici.crypto.PublicKey) Test(org.junit.Test)

Example 39 with Binder

use of net.sergeych.tools.Binder in project universa by UniversaBlockchain.

the class KeyRingTest method saveAndRestore.

@Test
public void saveAndRestore() throws Exception {
    KeyRing kr = new KeyRing();
    SymmetricKey sk1 = new SymmetricKey();
    SymmetricKey sk2 = new SymmetricKey();
    AbstractKey privateKey = TestKeys.privateKey(0);
    AbstractKey publicKey1 = TestKeys.privateKey(1).getPublicKey();
    AbstractKey publicKey2 = privateKey.getPublicKey();
    kr.addKeys(sk1, sk2, privateKey, publicKey1, publicKey2);
    Binder b = kr.toBinder();
    KeyRing kr2 = KeyRing.fromBinder(b);
    for (AbstractKey k : kr2.keySet()) {
        assertTrue(kr2.contains(k));
        assertTrue(kr.contains(k));
    }
    assertEquals(kr, kr2);
}
Also used : Binder(net.sergeych.tools.Binder) Test(org.junit.Test)

Example 40 with Binder

use of net.sergeych.tools.Binder in project universa by UniversaBlockchain.

the class KeyRingTest method findKey.

@Test
public void findKey() throws Exception {
    KeyInfo i1 = new KeyInfo(KeyInfo.PRF.HMAC_SHA256, 1024, null, null);
    AbstractKey pk1 = i1.derivePassword("helluva");
    KeyInfo i2 = new KeyInfo(KeyInfo.PRF.HMAC_SHA256, 1025, null, "the tag".getBytes());
    AbstractKey pk2 = i2.derivePassword("helluva");
    assertEquals(i2.getTag(), pk2.info().getTag());
    KeyRing kr = new KeyRing();
    SymmetricKey sk1 = new SymmetricKey();
    SymmetricKey sk2 = new SymmetricKey();
    AbstractKey privateKey = TestKeys.privateKey(0);
    AbstractKey publicKey1 = TestKeys.privateKey(1).getPublicKey();
    AbstractKey publicKey2 = privateKey.getPublicKey();
    kr.addKeys(sk1, sk2, privateKey, publicKey1, publicKey2, pk1, pk2);
    kr.addKeys(pk1, pk2);
    Binder b = kr.toBinder();
    KeyRing kr2 = KeyRing.fromBinder(b);
    assertTrue(kr.keySet().contains(pk1));
    assertTrue(kr.keySet().contains(pk2));
    assertEquals(pk2, kr.findKey(i2).toArray()[0]);
    assertEquals(pk2, kr2.findKey(i2).toArray()[0]);
    final Collection<AbstractKey> keys = kr.findKey(i1);
    assertTrue(keys.contains(pk1));
    assertTrue(keys.contains(pk1));
    assertTrue(keys.contains(sk1));
    assertTrue(keys.contains(sk2));
    assertEquals(4, kr2.findKey(i1).size());
}
Also used : Binder(net.sergeych.tools.Binder) Test(org.junit.Test)

Aggregations

Binder (net.sergeych.tools.Binder)136 Test (org.junit.Test)67 PrivateKey (com.icodici.crypto.PrivateKey)21 Contract (com.icodici.universa.contract.Contract)14 PublicKey (com.icodici.crypto.PublicKey)13 IOException (java.io.IOException)11 KeyRecord (com.icodici.universa.contract.KeyRecord)10 SimpleRole (com.icodici.universa.contract.roles.SimpleRole)10 Yaml (org.yaml.snakeyaml.Yaml)9 Bytes (net.sergeych.utils.Bytes)8 Decimal (com.icodici.universa.Decimal)7 ListRole (com.icodici.universa.contract.roles.ListRole)6 NonNull (org.checkerframework.checker.nullness.qual.NonNull)5 Gson (com.google.gson.Gson)4 GsonBuilder (com.google.gson.GsonBuilder)4 XStream (com.thoughtworks.xstream.XStream)4 DomDriver (com.thoughtworks.xstream.io.xml.DomDriver)4 List (java.util.List)4 RoleLink (com.icodici.universa.contract.roles.RoleLink)3 ItemResult (com.icodici.universa.node.ItemResult)3