@Override public FreenetURI[] generateKeyPair(String docName) { InsertableClientSSK key = InsertableClientSSK.createRandom(random, docName); return new FreenetURI[] { key.getInsertURI(), key.getURI() }; }
@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 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)); }
@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 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)); }
InsertableClientSSK key = InsertableClientSSK.createRandom(r, ""); outsb.append("Insert URI: ").append(key.getInsertURI().toString(false, false)).append("\r\n"); outsb.append("Request URI: ").append(key.getURI().toString(false, false)).append("\r\n"); FreenetURI insertURI = key.getInsertURI().setDocName("testsite"); String fixedInsertURI = insertURI.toString(false, false); outsb.append("Note that you MUST add a filename to the end of the above URLs e.g.:\r\n").append(fixedInsertURI).append("\r\n"); outsb.append("Normally you will then do PUTSSKDIR:<insert URI>#<directory to upload>, for example:\r\nPUTSSKDIR:").append(fixedInsertURI).append("#directoryToUpload/\r\n"); outsb.append("This will then produce a manifest site containing all the files, the default document can be accessed at\r\n").append(key.getURI().toString(false, false)).append("testsite/"); } else if(uline.startsWith("PUTSSK:")) { String cmd = line.substring("PUTSSK:".length());
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)); }
@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)); }
@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)); }
@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])); }
SimpleFieldSet exportPublicCryptoFieldSet(boolean forSetup, boolean forAnonInitiator) { SimpleFieldSet fs = new SimpleFieldSet(true); int[] negTypes = packetMangler.supportedNegTypes(true); if(!forSetup) { // These are invariant. They cannot change on connection setup. They can safely be excluded. fs.put("ecdsa", ecdsaP256.asFieldSet(false)); fs.putSingle("identity", Base64.encode(myIdentity)); } if(!forAnonInitiator) { // Short-lived connections don't need ARK and don't need negTypes either. fs.put("auth.negTypes", negTypes); if(!forSetup) { fs.put("ark.number", myARKNumber); // Can be changed on setup fs.putSingle("ark.pubURI", myARK.getURI().toString(false, false)); // Can be changed on setup } } return fs; }
newURI = newURI.sskForUSK(); InsertableClientSSK issk = InsertableClientSSK.create(newURI); newURI = issk.getURI(); if(originalURI.isUSK()) { newURI = newURI.uskForSSK();