Package org.hive2hive.core.network

Examples of org.hive2hive.core.network.NetworkManager


  }

  @Test
  public void testMessageWithSignatureSameUser() throws NoPeerConnectionException, NoSessionException {
    NetworkTestUtil.createSameKeyPair(network);
    NetworkManager sender = network.get(0);
    NetworkManager receiver = network.get(1);

    // putting of the public key is not necessary

    // location key is target node id
    String locationKey = receiver.getNodeId();

    // create a message with target node B
    TestSignedMessage message = new TestSignedMessage(locationKey);

    // send message
    assertTrue(sender.getMessageManager().send(message, receiver.getSession().getKeyPair().getPublic()));
  }
View Full Code Here


  }

  @Test
  public void testMessageWithSignatureDifferentUser() throws NoPeerConnectionException, NoSessionException {
    NetworkTestUtil.createKeyPairs(network);
    NetworkManager sender = network.get(0);
    NetworkManager receiver = network.get(1);

    // put the public key of the sender into the cache
    receiver.getSession().getKeyManager().putPublicKey(sender.getUserId(), getPublicKey(sender));

    // location key is target node id
    String locationKey = receiver.getNodeId();

    // create a message with target node B
    TestSignedMessage message = new TestSignedMessage(locationKey);

    // send message
View Full Code Here

  }

  @Test
  public void testMessageWithWrongSignature() throws NoPeerConnectionException, NoSessionException {
    NetworkTestUtil.createKeyPairs(network);
    NetworkManager sender = network.get(0);
    NetworkManager receiver = network.get(1);

    // put a wrong public key of the sender into the cache
    receiver.getSession()
        .getKeyManager()
        .putPublicKey(sender.getUserId(),
            EncryptionUtil.generateRSAKeyPair(H2HConstants.KEYLENGTH_USER_KEYS).getPublic());

    // location key is target node id
    String locationKey = receiver.getNodeId();

    // create a message with target node B, assign random public key
    TestSignedMessage message = new TestSignedMessage(locationKey);

    // send message
View Full Code Here

    String locationKey = NetworkTestUtil.randomString();
    String domainKey = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    KeyPair protectionKey = EncryptionUtil.generateRSAKeyPair();

    NetworkManager node = network.get(random.nextInt(networkSize));

    // initial put
    H2HTestData data1 = new H2HTestData("bla1");
    Parameters parameters1 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data1).setProtectionKeys(protectionKey);
    FuturePut futurePut = node.getDataManager().putUnblocked(parameters1);
    futurePut.awaitUninterruptibly();

    // verify initial put
    FutureGet futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to put without a protection key
    H2HTestData data2 = new H2HTestData("bla2");
    Parameters parameters2 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data2);
    futurePut = node.getDataManager().putUnblocked(parameters2);
    futurePut.awaitUninterruptibly();

    // should have been not modified
    futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());
  }
View Full Code Here

    String locationKey = NetworkTestUtil.randomString();
    String domainKey = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    KeyPair protectionKey = EncryptionUtil.generateRSAKeyPair();

    NetworkManager node = network.get(random.nextInt(networkSize));

    // initial put
    H2HTestData data1 = new H2HTestData("bla1");
    Parameters parameters1 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data1).setProtectionKeys(protectionKey);
    FuturePut futurePut = node.getDataManager().putUnblocked(parameters1);
    futurePut.awaitUninterruptibly();

    // verify initial put
    FutureGet futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // overwrite with correct protection key
    H2HTestData data2 = new H2HTestData("bla2");
    Parameters parameters2 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data2).setProtectionKeys(protectionKey);
    futurePut = node.getDataManager().putUnblocked(parameters2);
    futurePut.awaitUninterruptibly();

    // verify overwrite
    futureGet = node.getDataManager().getUnblocked(parameters2);
    futureGet.awaitUninterruptibly();
    assertEquals(data2.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to overwrite without protection key
    H2HTestData data3 = new H2HTestData("bla3");
    Parameters parameters3 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data3);
    futurePut = node.getDataManager().putUnblocked(parameters3);
    futurePut.awaitUninterruptibly();

    // should have been not changed
    futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data2.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());
  }
View Full Code Here

    String domainKey = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    KeyPair protectionKey1 = EncryptionUtil.generateRSAKeyPair();
    KeyPair protectionKey2 = EncryptionUtil.generateRSAKeyPair();

    NetworkManager node = network.get(random.nextInt(networkSize));

    // initial put
    H2HTestData data1 = new H2HTestData("bla1");
    Parameters parameters1 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data1).setProtectionKeys(protectionKey1);
    FuturePut futurePut = node.getDataManager().putUnblocked(parameters1);
    futurePut.awaitUninterruptibly();

    // verify initial put
    FutureGet futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to overwrite with wrong protection key
    H2HTestData data2 = new H2HTestData("bla2");
    Parameters parameters2 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data2).setProtectionKeys(protectionKey2);
    futurePut = node.getDataManager().putUnblocked(parameters2);
    futurePut.awaitUninterruptibly();

    // should have been not changed;
    futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());
  }
View Full Code Here

    String domainKey = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    KeyPair protectionKey1 = EncryptionUtil.generateRSAKeyPair();
    KeyPair protectionKey2 = EncryptionUtil.generateRSAKeyPair();

    NetworkManager node = network.get(random.nextInt(networkSize));

    // initial put
    H2HTestData data1 = new H2HTestData("bla1");
    Parameters parameters1 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setData(data1).setProtectionKeys(protectionKey1);
    FuturePut futurePut = node.getDataManager().putUnblocked(parameters1);
    futurePut.awaitUninterruptibly();

    // verify initial put
    FutureGet futureGet = node.getDataManager().getUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to remove without protection keys
    Parameters parameters2 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey);
    FutureRemove futureRemove = node.getDataManager().removeUnblocked(parameters2);
    futureRemove.awaitUninterruptibly();

    // should have been not changed
    futureGet = node.getDataManager().getUnblocked(parameters2);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to remove with wrong protection keys
    Parameters parameters3 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setProtectionKeys(protectionKey2);
    futureRemove = node.getDataManager().removeUnblocked(parameters3);
    futureRemove.awaitUninterruptibly();

    // should have been not changed
    futureGet = node.getDataManager().getUnblocked(parameters2);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // remove with correct protection keys
    futureRemove = node.getDataManager().removeUnblocked(parameters1);
    futureRemove.awaitUninterruptibly();

    // should have been removed
    futureGet = node.getDataManager().getUnblocked(parameters2);
    futureGet.awaitUninterruptibly();
    assertNull(futureGet.getData());
  }
View Full Code Here

    String domainKey = NetworkTestUtil.randomString();
    String contentKey = NetworkTestUtil.randomString();
    KeyPair protectionKey1 = EncryptionUtil.generateRSAKeyPair();
    KeyPair protectionKey2 = EncryptionUtil.generateRSAKeyPair();

    NetworkManager node = network.get(random.nextInt(networkSize));

    H2HTestData data1 = new H2HTestData("bla1");
    data1.generateVersionKey();
    Parameters parameters1 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setVersionKey(data1.getVersionKey()).setData(data1)
        .setProtectionKeys(protectionKey1);

    // initial put
    FuturePut futurePut = node.getDataManager().putUnblocked(parameters1);
    futurePut.awaitUninterruptibly();

    // check if put was ok
    FutureGet futureGet = node.getDataManager().getVersionUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to remove without a protection key
    Parameters parameters2 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setVersionKey(data1.getVersionKey()).setData(data1);
    FutureRemove futureRemove = node.getDataManager().removeVersionUnblocked(parameters2);
    futureRemove.awaitUninterruptibly();

    // should have been not modified
    futureGet = node.getDataManager().getVersionUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // try to remove with wrong protection key
    Parameters parameters3 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setVersionKey(data1.getVersionKey())
        .setProtectionKeys(protectionKey2);
    futureRemove = node.getDataManager().removeVersionUnblocked(parameters3);
    futureRemove.awaitUninterruptibly();

    // should have been not modified
    futureGet = node.getDataManager().getVersionUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertEquals(data1.getTestString(), ((H2HTestData) futureGet.getData().object()).getTestString());

    // remove with correct content protection key
    Parameters parameters4 = new Parameters().setLocationKey(locationKey).setDomainKey(domainKey)
        .setContentKey(contentKey).setVersionKey(data1.getVersionKey()).setData(data1)
        .setProtectionKeys(protectionKey1);
    futureRemove = node.getDataManager().removeVersionUnblocked(parameters4);
    futureRemove.awaitUninterruptibly();

    // should have been removed
    futureGet = node.getDataManager().getVersionUnblocked(parameters1);
    futureGet.awaitUninterruptibly();
    assertNull(futureGet.getData());
  }
View Full Code Here

  }

  @Test
  public void testCleanUpOutdatedVersion() throws InterruptedException, IOException,
      NoPeerConnectionException {
    NetworkManager node = network.get(random.nextInt(networkSize));

    Parameters parameters = new Parameters().setLocationKey(NetworkTestUtil.randomString())
        .setDomainKey(NetworkTestUtil.randomString()).setContentKey(NetworkTestUtil.randomString())
        .setProtectionKeys(EncryptionUtil.generateRSAKeyPair());

    int numVersions = H2HConstants.MAX_VERSIONS_HISTORY + random.nextInt(5) + 1;
    List<H2HTestData> versions = new ArrayList<H2HTestData>();
    List<H2HTestData> newerVersions = new ArrayList<H2HTestData>();

    H2HTestData last = null;
    for (int i = 0; i < numVersions; i++) {
      long timeStamp = new Date().getTime();
      timeStamp += 2 * H2HConstants.MIN_VERSION_AGE_BEFORE_REMOVAL_MS;
      H2HTestData testData = generateTestData(timeStamp);
      if (last != null)
        testData.setBasedOnKey(last.getVersionKey());
      last = testData;
      versions.add(testData);
      if (i >= numVersions - H2HConstants.MAX_VERSIONS_HISTORY - 1)
        newerVersions.add(testData);
      synchronized (this) {
        Thread.sleep(10);
      }
    }

    long timeDiff = versions.get(numVersions - 1).getVersionKey().timestamp()
        - versions.get(0).getVersionKey().timestamp();
    if (timeDiff < H2HConstants.MIN_VERSION_AGE_BEFORE_REMOVAL_MS)
      Assert.fail("H2H constant is too low to generate appropriate time stamps.");

    for (H2HTestData testData : versions) {
      parameters.setVersionKey(testData.getVersionKey()).setData(testData);
      node.getDataManager().putUnblocked(parameters).awaitUninterruptibly();
    }

    FutureDigest futureDigest = node.getDataManager().getDigestUnblocked(parameters);
    futureDigest.awaitUninterruptibly();

    assertEquals(H2HConstants.MAX_VERSIONS_HISTORY, futureDigest.getDigest().keyDigest().size());
    int i = 0;
    for (Number160 storedVersion : futureDigest.getDigest().keyDigest().values()) {
View Full Code Here

    network = NetworkTestUtil.createNetwork(networkSize);
  }

  @Test
  public void testRemove() throws NoPeerConnectionException {
    NetworkManager nodeA = network.get(random.nextInt(networkSize));
    NetworkManager nodeB = network.get(random.nextInt(networkSize));

    H2HTestData data = new H2HTestData(NetworkTestUtil.randomString());
    Parameters parameters = new Parameters().setLocationKey(nodeA.getNodeId())
        .setContentKey(NetworkTestUtil.randomString()).setData(data);

    nodeA.getDataManager().putUnblocked(parameters).awaitUninterruptibly();

    boolean success = nodeB.getDataManager().remove(parameters);
    assertTrue(success);

    FutureGet futureGet = nodeA.getDataManager().getUnblocked(parameters);
    futureGet.awaitUninterruptibly();
    assertNull(futureGet.getData());
View Full Code Here

TOP

Related Classes of org.hive2hive.core.network.NetworkManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.