.keyPair(key1).start();
futurePut1.awaitUninterruptibly();
assertTrue(futurePut1.isSuccess());
// try to remove without content protection keys using from/to
FutureRemove futureRemove1 = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
.to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).start();
futureRemove1.awaitUninterruptibly();
assertFalse(futureRemove1.isSuccess());
// verify failed remove
FutureGet futureGet2 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
.start();
futureGet2.awaitUninterruptibly();
assertTrue(futureGet2.isSuccess());
// should have been not modified
assertEquals(testData1, (String) futureGet2.getData().object());
assertEquals(key1.getPublic(), futureGet2.getData().publicKey());
// remove with wrong content protection keys 2 using from/to
FutureRemove futureRemove2a = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
.to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).keyPair(key2).start();
futureRemove2a.awaitUninterruptibly();
assertFalse(futureRemove2a.isSuccess());
// verify failed remove
FutureGet futureGet3 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
.start();
futureGet3.awaitUninterruptibly();
assertTrue(futureGet3.isSuccess());
// should have been not modified
assertEquals(testData1, (String) futureGet3.getData().object());
assertEquals(key1.getPublic(), futureGet3.getData().publicKey());
// remove with correct content protection keys 1 using from/to
FutureRemove futureRemove4 = p1.remove(lKey).from(new Number640(lKey, dKey, cKey, Number160.ZERO))
.to(new Number640(lKey, dKey, cKey, Number160.MAX_VALUE)).keyPair(key1).start();
futureRemove4.awaitUninterruptibly();
assertTrue(futureRemove4.isSuccess());
// verify remove
FutureGet futureGet4 = p2.get(lKey).setDomainKey(dKey).setContentKey(cKey).setVersionKey(vKey)
.start();
futureGet4.awaitUninterruptibly();