@Override public FreenetURI[] generateKeyPair(String docName) { InsertableClientSSK key = InsertableClientSSK.createRandom(random, docName); return new FreenetURI[] { key.getInsertURI(), key.getURI() }; }
static FreenetURI checkEmptySSK(FreenetURI uri, String filename, ClientContext context) { if("SSK".equals(uri.getKeyType()) && uri.getDocName() == null && uri.getRoutingKey() == null) { if(filename == null || filename.equals("")) filename = "key"; // SSK@ = use a random SSK. InsertableClientSSK key = InsertableClientSSK.createRandom(context.random, ""); return key.getInsertURI().setDocName(filename); } else { return uri; } }
@Override public void run(FCPConnectionHandler handler, Node node) throws MessageInvalidException { InsertableClientSSK key = InsertableClientSSK.createRandom(node.random, ""); FreenetURI insertURI = key.getInsertURI(); FreenetURI requestURI = key.getURI(); SSKKeypairMessage msg = new SSKKeypairMessage(insertURI, requestURI, identifier); handler.outputHandler.queue(msg); }
@Test public void registeringAnActiveUskWillSubscribeToItCorrectly() { FreenetURI freenetUri = createRandom(randomSource, "test-0").getURI().uskForSSK(); final USKCallback uskCallback = mock(USKCallback.class); freenetInterface.registerActiveUsk(freenetUri, uskCallback); verify(uskManager).subscribe(any(USK.class), eq(uskCallback), eq(true), any(RequestClient.class)); }
@Test public void registeringAnInactiveUskWillSubscribeToItCorrectly() { FreenetURI freenetUri = createRandom(randomSource, "test-0").getURI().uskForSSK(); final USKCallback uskCallback = mock(USKCallback.class); freenetInterface.registerPassiveUsk(freenetUri, uskCallback); verify(uskManager).subscribe(any(USK.class), eq(uskCallback), eq(false), any(RequestClient.class)); }
@Test public void callbackForNormalUskForwardsImportantParameters() throws MalformedURLException { Callback callback = mock(Callback.class); FreenetURI uri = createRandom(randomSource, "test-0").getURI().uskForSSK(); freenetInterface.registerUsk(uri, callback); USK key = mock(USK.class); when(key.getURI()).thenReturn(uri); callbackCaptor.getValue().onFoundEdition(3, key, null, false, (short) 0, null, true, true); verify(callback).editionFound(eq(uri), eq(3L), eq(true), eq(true)); }
@Test public void registeringAnActiveNonUskWillNotSubscribeToAUsk() throws MalformedURLException { FreenetURI freenetUri = createRandom(randomSource, "test-0").getURI(); freenetInterface.registerActiveUsk(freenetUri, null); verify(uskManager, never()).subscribe(any(USK.class), any(USKCallback.class), anyBoolean(), eq((RequestClient) highLevelSimpleClient)); }
@Test public void registeringAnInactiveNonUskWillNotSubscribeToAUsk() throws MalformedURLException { FreenetURI freenetUri = createRandom(randomSource, "test-0").getURI(); freenetInterface.registerPassiveUsk(freenetUri, null); verify(uskManager, never()).subscribe(any(USK.class), any(USKCallback.class), anyBoolean(), eq((RequestClient) highLevelSimpleClient)); }
@Test public void callbackForNormalUskUsesDifferentPriorities() { Callback callback = mock(Callback.class); FreenetURI soneUri = createRandom(randomSource, "test-0").getURI().uskForSSK(); freenetInterface.registerUsk(soneUri, callback); assertThat(callbackCaptor.getValue().getPollingPriorityNormal(), is(PREFETCH_PRIORITY_CLASS)); assertThat(callbackCaptor.getValue().getPollingPriorityProgress(), is(INTERACTIVE_PRIORITY_CLASS)); }
private ClientSSKBlock encodeBlockSSK(String test, RandomSource random) throws IOException, SSKEncodeException, InvalidCompressionCodecException { byte[] data = test.getBytes("UTF-8"); SimpleReadOnlyArrayBucket bucket = new SimpleReadOnlyArrayBucket(data); InsertableClientSSK ik = InsertableClientSSK.createRandom(random, test); return ik.encode(bucket, false, false, (short)-1, bucket.size(), random, Compressor.DEFAULT_COMPRESSORDESCRIPTOR, false); } }
private ClientSSKBlock encodeBlockSSK(String test, RandomSource random) throws IOException, SSKEncodeException, InvalidCompressionCodecException { byte[] data = test.getBytes("UTF-8"); SimpleReadOnlyArrayBucket bucket = new SimpleReadOnlyArrayBucket(data); InsertableClientSSK ik = InsertableClientSSK.createRandom(random, test); return ik.encode(bucket, false, false, (short)-1, bucket.size(), random, Compressor.DEFAULT_COMPRESSORDESCRIPTOR, false); } }
@Test public void unregisteringANotRegisteredUskDoesNothing() { FreenetURI freenetURI = createRandom(randomSource, "test-0").getURI().uskForSSK(); freenetInterface.unregisterUsk(freenetURI); verify(uskManager, never()).unsubscribe(any(USK.class), any(USKCallback.class)); }
@Test public void registeringAUsk() { FreenetURI freenetUri = createRandom(randomSource, "test-0").getURI().uskForSSK(); Callback callback = mock(Callback.class); freenetInterface.registerUsk(freenetUri, callback); verify(uskManager).subscribe(any(USK.class), any(USKCallback.class), anyBoolean(), eq((RequestClient) highLevelSimpleClient)); }
@Test public void unregisteringARegisteredUsk() { FreenetURI freenetURI = createRandom(randomSource, "test-0").getURI().uskForSSK(); Callback callback = mock(Callback.class); freenetInterface.registerUsk(freenetURI, callback); freenetInterface.unregisterUsk(freenetURI); verify(uskManager).unsubscribe(any(USK.class), any(USKCallback.class)); }
private void setupSone(Sone sone, Class<? extends Identity> identityClass) { Identity identity = mock(identityClass); InsertableClientSSK clientSSK = createRandom(new DummyRandomSource(), "WoT"); when(identity.getRequestUri()).thenReturn(clientSSK.getURI().toString()); when(identity.getId()).thenReturn("identity"); when(sone.getId()).thenReturn("identity"); when(sone.getIdentity()).thenReturn(identity); requestUri = clientSSK.getURI().setKeyType("USK").setDocName("Sone"); when(sone.getRequestUri()).thenAnswer(new Answer<FreenetURI>() { @Override public FreenetURI answer(InvocationOnMock invocation) throws Throwable { return requestUri; } }); when(sone.getTime()) .thenReturn(currentTimeMillis() - DAYS.toMillis(1)); }
@Before public void setupSone() { Sone sone = SoneDownloaderTest.this.sone; Identity identity = mock(Identity.class); InsertableClientSSK clientSSK = createRandom(new DummyRandomSource(), "WoT"); when(identity.getRequestUri()).thenReturn(clientSSK.getURI().toString()); when(identity.getId()).thenReturn("identity"); when(sone.getId()).thenReturn("identity"); when(sone.getIdentity()).thenReturn(identity); requestUri = clientSSK.getURI().setKeyType("USK").setDocName("Sone"); when(sone.getRequestUri()).thenAnswer(new Answer<FreenetURI>() { @Override public FreenetURI answer(InvocationOnMock invocation) throws Throwable { return requestUri; } }); when(sone.getTime()).thenReturn(currentTimeMillis() - DAYS.toMillis(1)); }
@Before public void setupSone() { InsertableClientSSK insertSsk = createRandom(randomSource, "test-0"); when(sone.getId()).thenReturn(Base64.encode(insertSsk.getURI().getRoutingKey())); when(sone.getRequestUri()).thenReturn(insertSsk.getURI().uskForSSK()); }
@Test public void returnedUriHasCorrectDocNameAndMetaStrings() { FreenetURI uri = createRandom(new DummyRandomSource(), "test-0").getURI().uskForSSK(); assertThat(create(uri.toString()).getDocName(), is("Sone")); assertThat(create(uri.toString()).getAllMetaStrings(), is(new String[0])); }
/** * Create the cryptographic keys etc from scratch */ public void initCrypto() { ecdsaP256 = new ECDSA(ECDSA.Curves.P256); ecdsaPubKeyHash = SHA256.digest(ecdsaP256.getPublicKey().getEncoded()); myARK = InsertableClientSSK.createRandom(random, "ark"); myARKNumber = 0; clientNonce = new byte[32]; node.random.nextBytes(clientNonce); myIdentity = new byte[IDENTITY_LENGTH]; node.random.nextBytes(myIdentity); identityHash = SHA256.digest(myIdentity); identityHashHash = SHA256.digest(identityHash); anonSetupCipher.initialize(identityHash); }
protected InsertBlock generateBlock(DummyRandomSource random) throws MalformedURLException { byte[] data = new byte[FILE_SIZE]; random.nextBytes(data); RandomAccessBucket bucket = new SimpleReadOnlyArrayBucket(data); FreenetURI uri = InsertableClientSSK.createRandom(random, "test").getInsertURI(); return new InsertBlock(bucket, new ClientMetadata(null), uri); }