Search in sources :

Example 6 with EmailDestination

use of i2p.bote.email.EmailDestination in project i2p.i2p-bote by i2p.

the class MigrateTo028 method migrateAddressBook.

private void migrateAddressBook(List<String> lines, Configuration configuration, PasswordHolder passwordHolder) throws IOException, GeneralSecurityException, PasswordException {
    AddressBook addressBook = new AddressBook(configuration.getAddressBookFile(), passwordHolder);
    for (String line : lines) {
        String[] fields = line.split("\\t", 2);
        try {
            EmailDestination destination = new EmailDestination(fields[0]);
            String name = null;
            if (fields.length > 1)
                name = fields[1];
            Contact contact = new Contact(name, destination);
            addressBook.add(contact);
        } catch (GeneralSecurityException e) {
            log.error("Not a valid Email Destination: <" + fields[0] + ">", e);
        }
    }
    addressBook.save();
}
Also used : AddressBook(i2p.bote.addressbook.AddressBook) EmailDestination(i2p.bote.email.EmailDestination) GeneralSecurityException(java.security.GeneralSecurityException) Contact(i2p.bote.packet.dht.Contact)

Example 7 with EmailDestination

use of i2p.bote.email.EmailDestination in project i2p.i2p-bote by i2p.

the class FolderTest method setUp.

@Before
public void setUp() throws Exception {
    File tempDir = new File(System.getProperty("java.io.tmpdir"));
    folderDir = new File(tempDir, "FolderTest-" + System.currentTimeMillis());
    folder = new EmailPacketFolder(folderDir);
    // make two email packets
    EmailDestination dest = new EmailDestination("3LbBiN2nxtQVxPXYBQL3~PjBg-xOPalsFKZ0YqobHXP1u3MiBxqthF6TJxqdPS2LWWKb90FVzaPyIIEQOT0qSb");
    emailPacket1 = createEmailPacket(dest, "Gallia est omnis divisa in partes tres...");
    emailPacket2 = createEmailPacket(dest, "...quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.");
    // create two valid files and three invalid files in the folder
    folder.store(emailPacket1);
    folder.store(emailPacket2);
    writeToFile("test1.pkt", "asdfasdf");
    writeToFile("test2.pkt", "12345");
    writeToFile("test3.pkt", "xyz");
}
Also used : EmailDestination(i2p.bote.email.EmailDestination) File(java.io.File) Before(org.junit.Before)

Example 8 with EmailDestination

use of i2p.bote.email.EmailDestination in project i2p.i2p-bote by i2p.

the class RelayPacketFolderTest method setUp.

@Before
public void setUp() throws Exception {
    File tempDir = new File(System.getProperty("java.io.tmpdir"));
    testDir = new File(tempDir, "RelayPacketFolderTest-" + System.currentTimeMillis());
    folderDir = new File(testDir, "relay_pkt");
    folder = new RelayPacketFolder(folderDir);
    // make an EncryptedEmailPacket
    String base64Destination = "X3oKYQJ~1EAz7B1ZYGSrOTIMCW5Rnn2Svoc38dx5D9~zvz8vqiWcH-pCqQDwLgPWl9RTBzHtTmZcGRPXIv54i0XWeUfX6rTPDQGuZsnBMM0xrkH2FNLNFaJa0NgW3uKXWpNj9AI1AXUXzK-2MYTYoaZHx5SBoCaKfAGMcFJvTON1~kopxBxdBF9Q7T4~PJ3I2LeU-ycmUlehe9N9bIu7adUGyPGVl8Ka-UxwQromoJ~vSWHHl8HkwcDkW--v9Aj~wvFqxqriFkB1EeBiThi3V4XtVY~GUP4IkRj9YZGTsSBf3eS4xwXgnYWlB7IvxAGBfHY9MCg3lbAa1Dg~1IH6rhtXxsXUtGcXsz9yMZTxXHd~rGo~JrXeM1y~Vcenpr6tJcum6pxevkKzzT0qDegGPH3Zhqz7sSeeIaJEcPBUAkX89csqyFWFIjTMm6yZp2rW-QYUnVNLNTjf7vndYUAEICogAkq~btqpIzrGEpm3Pr9F23br3SpbOmdxQxg51AMmAAAA";
    Destination nextDestination = new Destination(base64Destination.substring(0, 516));
    long delayMilliseconds = TimeUnit.MILLISECONDS.convert(111, TimeUnit.MINUTES);
    String content = "Warum, warum, warum\n" + "Ist die Banane krumm?\n" + "Weil niemand in den Urwald zog\n" + "Und die Banane grade bog.\n";
    byte[] messageIdBytes = new byte[] { -69, -24, -109, 1, 69, -122, -69, 113, -68, -90, 55, -28, 105, 97, 125, 70, 51, 58, 14, 2, -13, -53, 90, -29, 36, 67, 36, -94, -108, -125, 11, 123 };
    UniqueId messageId = new UniqueId(messageIdBytes, 0);
    int fragmentIndex = 0;
    InputStream contentStream = new ByteArrayInputStream(content.getBytes());
    UnencryptedEmailPacket unencryptedPacket = new UnencryptedEmailPacket(contentStream, messageId, fragmentIndex, I2PBotePacket.MAX_DATAGRAM_SIZE);
    unencryptedPacket.setNumFragments(1);
    String base64EmailDest = "rIbyUukqtsacD-MDJJ8KbIP9d3WQQo~t~zysc3bNcF1mSwz9PcGJnvWCNhnG2nzbdUAIDouESZjLRnBr7-mxNS";
    EmailDestination recipient = new EmailDestination(base64EmailDest);
    emailPacket = new EncryptedEmailPacket(unencryptedPacket, recipient);
    // make a RelayRequest
    StoreRequest storeRequest = new StoreRequest(emailPacket);
    relayRequest = new RelayRequest(storeRequest, nextDestination, delayMilliseconds, 1000);
}
Also used : Destination(net.i2p.data.Destination) EmailDestination(i2p.bote.email.EmailDestination) UniqueId(i2p.bote.UniqueId) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) EncryptedEmailPacket(i2p.bote.packet.dht.EncryptedEmailPacket) StoreRequest(i2p.bote.packet.dht.StoreRequest) ByteArrayInputStream(java.io.ByteArrayInputStream) EmailDestination(i2p.bote.email.EmailDestination) UnencryptedEmailPacket(i2p.bote.packet.dht.UnencryptedEmailPacket) File(java.io.File) RelayRequest(i2p.bote.packet.relay.RelayRequest) Before(org.junit.Before)

Example 9 with EmailDestination

use of i2p.bote.email.EmailDestination in project i2p.i2p-bote by i2p.

the class StoreRequestTest method setUp.

@Before
public void setUp() throws Exception {
    byte[] emailContent = new byte[] { 2, 109, -80, -37, -106, 83, -33, -39, -94, -76, -112, -98, 99, 25, -61, 44, -92, -85, 1, 10, -128, -2, -27, -86, -126, -33, -11, 42, 56, 3, -97, -101, 111, 7, -96, 25, 121, 74, 89, -40, -33, 82, -50, -18, 49, 106, 13, -121, 53, -83, -2, 35, -7, 71, -71, 26, 90, 1 };
    UniqueId messageId = new UniqueId(new byte[] { -69, -24, -109, 1, 69, -122, -69, 113, -68, -90, 55, -28, 105, 97, 125, 70, 51, 58, 14, 2, -13, -53, 90, -29, 36, 67, 36, -94, -108, -125, 11, 123 }, 0);
    String base64Identity = "piYT1uJ3O8~bBPZmTvehMbp3-Zksg5enhvIlp2X8txqL25l0WdQMWwyt30UAOVQqxGdnMPTqqjh~-zoa~rCQORo~J1gRxLwCX9LlHQqaIimJilrbN-rhKy4Xlft054wbgQjLSC-WICE4W64KDfitwRzdr7lV6lz~0KFiZ8erZ-~WPMG1CgWEku9lILQUdUHyFBguPcK9oPDq7oGBuFGy8w0CvAq7ex3nmbL7zQVA~VqILtOGeGK2fidCuuofj4AQsTcXmH9O0nxZGCIJBhf~4EWmazvxu8XVB8pabNQvRDbmFu6q85JTwmxC45lCjqNw30hp8q2zoqP-zchjWOrxFUhSumpBdD0xXJR~qmhejh4WnuRnnam9j3fcxH5i~T7xWgmvIbpZEI4kyc9VEbXbLI7k-bU2A6sdP-AGt5~TjGLcxpdsPnOLRXO-Dsi7E9-3Kc84s4TmdpEJdtHn1dxYyeeT-ysVOqXjv5w5Cuk0XJpUIJG8n7aXHpNb-QLxPD3yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWF3qnAX-p41Po~VNmOUzS-Yt~noD8-e~L3P5rZXBWf-XtB4hkloo6m1jwqphEdf1";
    EmailIdentity identity = new EmailIdentity(base64Identity);
    EmailDestination destination = new EmailDestination(identity.getKey());
    int fragmentIndex = 0;
    UnencryptedEmailPacket emailPacket = new UnencryptedEmailPacket(new ByteArrayInputStream(emailContent), messageId, fragmentIndex, I2PBotePacket.MAX_DATAGRAM_SIZE);
    emailPacket.setNumFragments(1);
    dhtPacket = new EncryptedEmailPacket(emailPacket, destination);
    storeRequest = new StoreRequest(dhtPacket);
}
Also used : UniqueId(i2p.bote.UniqueId) ByteArrayInputStream(java.io.ByteArrayInputStream) EmailIdentity(i2p.bote.email.EmailIdentity) EmailDestination(i2p.bote.email.EmailDestination) Before(org.junit.Before)

Example 10 with EmailDestination

use of i2p.bote.email.EmailDestination in project i2p.i2p-bote by i2p.

the class RelayRequestTest method setUp.

@Before
public void setUp() throws Exception {
    Destination nextDestination = new Destination("X3oKYQJ~1EAz7B1ZYGSrOTIMCW5Rnn2Svoc38dx5D9~zvz8vqiWcH-pCqQDwLgPWl9RTBzHtTmZcGRPXIv54i0XWeUfX6rTPDQGuZsnBMM0xrkH2FNLNFaJa0NgW3uKXWpNj9AI1AXUXzK-2MYTYoaZHx5SBoCaKfAGMcFJvTON1~kopxBxdBF9Q7T4~PJ3I2LeU-ycmUlehe9N9bIu7adUGyPGVl8Ka-UxwQromoJ~vSWHHl8HkwcDkW--v9Aj~wvFqxqriFkB1EeBiThi3V4XtVY~GUP4IkRj9YZGTsSBf3eS4xwXgnYWlB7IvxAGBfHY9MCg3lbAa1Dg~1IH6rhtXxsXUtGcXsz9yMZTxXHd~rGo~JrXeM1y~Vcenpr6tJcum6pxevkKzzT0qDegGPH3Zhqz7sSeeIaJEcPBUAkX89csqyFWFIjTMm6yZp2rW-QYUnVNLNTjf7vndYUAEICogAkq~btqpIzrGEpm3Pr9F23br3SpbOmdxQxg51AMmAAAA");
    EmailDestination destination = new EmailDestination("3LbBiN2nxtQVxPXYBQL3~PjBg-xOPalsFKZ0YqobHXP1u3MiBxqthF6TJxqdPS2LWWKb90FVzaPyIIEQOT0qSb");
    IndexPacket indexPacket = new IndexPacket(destination);
    storeRequest = new StoreRequest(indexPacket);
    long delayMilliseconds = TimeUnit.MILLISECONDS.convert(123, TimeUnit.MINUTES);
    relayRequestSingle = new RelayRequest(storeRequest, nextDestination, delayMilliseconds, 1000);
    // create a RelayPeerManager
    String localBase64DestKeys = "X3oKYQJ~1EAz7B1ZYGSrOTIMCW5Rnn2Svoc38dx5D9~zvz8vqiWcH-pCqQDwLgPWl9RTBzHtTmZcGRPXIv54i0XWeUfX6rTPDQGuZsnBMM0xrkH2FNLNFaJa0NgW3uKXWpNj9AI1AXUXzK-2MYTYoaZHx5SBoCaKfAGMcFJvTON1~kopxBxdBF9Q7T4~PJ3I2LeU-ycmUlehe9N9bIu7adUGyPGVl8Ka-UxwQromoJ~vSWHHl8HkwcDkW--v9Aj~wvFqxqriFkB1EeBiThi3V4XtVY~GUP4IkRj9YZGTsSBf3eS4xwXgnYWlB7IvxAGBfHY9MCg3lbAa1Dg~1IH6rhtXxsXUtGcXsz9yMZTxXHd~rGo~JrXeM1y~Vcenpr6tJcum6pxevkKzzT0qDegGPH3Zhqz7sSeeIaJEcPBUAkX89csqyFWFIjTMm6yZp2rW-QYUnVNLNTjf7vndYUAEICogAkq~btqpIzrGEpm3Pr9F23br3SpbOmdxQxg51AMmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBrMolZp2gbXxrAef~UFJdSfiKSSSj~KcUOKndCndDipKboKQ5rcwHu0eKElE5NIS";
    i2pClient = I2PClientFactory.createClient();
    I2PSession i2pSession = i2pClient.createSession(new ByteArrayInputStream(Base64.decode(localBase64DestKeys)), null);
    final Synchroniser synchroniser = new Synchroniser();
    Mockery mockery = new Mockery() {

        {
            setImposteriser(ClassImposteriser.INSTANCE);
            // otherwise we get errors on threads
            setThreadingPolicy(synchroniser);
        }
    };
    I2PSendQueue sendQueue = mockery.mock(I2PSendQueue.class);
    File tempDir = new File(System.getProperty("java.io.tmpdir"));
    testDir = new File(tempDir, "RelayPacketTest-" + System.currentTimeMillis());
    if (!testDir.mkdirs())
        fail("Cannot create directory: <" + testDir + ">");
    destKeys = new String[3];
    destKeys[0] = "EN2qXoeZ-x3qCejofePmMfW~1gWo4~kKyRQg5NwzGW-gZ5rKD1pUN8eHFfEid6v7GLl6XRTOCPw4OELnqKhhtLSaQQz3U9qTcpbmS1Oc9U2cpqwiOwyGru-5RF8LU9s7VwhUTB1nh~NrSzEJlbCZ9eOZiJyw7t031aHRbWTIOniq3vUkEVpEkhYbO8TlNT~4KzvINoDGUsEr2b6vV6j8IpZN-J8Jd9mRBJCaY1dxyMJ~2rZ441m2q3ndHbu5~GUPBelf7nnTh2ggzdgtHJuy~j2MOJda65rPxBEZq8cOmN-YyA5-yagIPL34QH6yp10bERN8S3qz2LeyVRcvzDEhsJUOVYv2Bt67gJ-KhXyCB7qSpQjRaT~QKpYoKfdCH2eqYUA9Yj1QaZJZjWQTN6gGf0DUHNNz2VEBRyzkYNd7XHgt5vCIhSw0U2N6s~62iEzTQHF8QbgKYeUTmx8XVOgvSau0tdg-ZzG0-UKJ3Zzng93E75B3W7juUGA~Z59fXF-PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRgSFr5W3QTfIjiKy1UjULHdz0nDnVQaC4OQOJ0baPyAq6IWu3cLrkTF5uXL9yk3r";
    destKeys[1] = "0hyT9FyR6yGcum~KP5jw40AGz-rhYvsNQd4CKrJooZtmy211zietpD8YukY3yJQ7w2XRel9CgnbkwuYd-LmdwMbcqgpn8RYwJNPU7luJuZcxNUvMsJ-TVjmVRY-6-Q~HrKABC2DU-5iQU2Qscvi3YqRiwerdK2Dd4PpPsmWZmCByUkLG46ELwjhR12JjflbPqwKPyd0EN-cDxNxj73hGMacxOw3awATkX8pBzIXvGZ6vjAsktIzNODJMLTizuILpdj-7jW8~MeRwEJGFFhHopZZkSQsAKDX5eM~gWXP9-cK3TSw-Yjx6AMZZ082SKhESW09Ec9Nj-U0tCQpgAhAI02GFS~knlBbELZGnBXS42hrMo6MDy71WhLvhqKV-Jt62AOX2MGyAy6FBAva3HEFDFVVBEkuaCF7QIGYwiy-BnQjC4GwivpcxxsAwgRE9h1tcuJozc52Cmp7nRGbPIHaCA0fEFzHh1~ObhpAqUEuWkmdccaVeDdxLkZrb4QQe~rrWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6GbqdiiIgugHmtMH0qypF1etm04sGM7X5sXVSaTG-4f0zGPSrvhsRCAT7y7gP0ae";
    destKeys[2] = "ypxYUiP70IurS7HBRaFUIl5UxAwIo0pboudvT9FrY~JcFTOVYxd3u2K9QW9IAvyeceQgXMKZVNmL6fdw8j3DDSS8faB043MMM2RB6md9ziRwBW60r7tt0b9-Jn-~98lBv4ilwH8H0ivd8S7xEsbFT0W7dvqyInJ0kkC8yfX5bUlQYedkozQxl8LikSZWL4hyfGkNcHmLGl11OkRdBf-QjIEEdUE614iVY5bRxc~XS9TedXuRFfSciwVB14M7RRz0-mY61uNeH-7tVJZ1ixsoHBCoXqY9TFZ33zZkjyUQaFJaJxWVA5069ureV0BpvO-wBfCdTqUe92v5-hZaCqzlr3PqWLMAhR82yUZlarlZdeeTvnU-4g1~2tsnyUZQlev2i9jmpCb2~N0goo6hPOWTfWADsgq8xABIfi7mUchlMz~tuzCZwOUx2WVjy66u-tccHEdGC737zyPEhvOmZqjo3tg54IeX72FVP7kHc2QYNbfO7HXzK1x6FQ0dTr-E-OUeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFD91On9qR24Vcrdp-QmybkllCrh6k~3FcBUcIETv1AG79DSell4tLImTenGkRKt1";
    peerFile = new File(testDir, "peers.txt");
    BufferedWriter writer = new BufferedWriter(new FileWriter(peerFile));
    for (String destKey : destKeys) {
        // make an entry in the peers file, set reachability to 100%
        writer.write(destKey);
        for (int i = 0; i < getMaxSamples(); i++) writer.write("\ttrue");
        writer.newLine();
    }
    writer.close();
    peerManager = new RelayPeerManager(sendQueue, i2pSession.getMyDestination(), peerFile);
    assertEquals(destKeys.length, peerManager.getAllPeers().size());
    minDelayMilliseconds = TimeUnit.MILLISECONDS.convert(120, TimeUnit.MINUTES);
    maxDelayMilliseconds = TimeUnit.MILLISECONDS.convert(600, TimeUnit.MINUTES);
    relayRequestMulti = RelayRequest.create(storeRequest, peerManager, destKeys.length, minDelayMilliseconds, maxDelayMilliseconds);
}
Also used : EmailDestination(i2p.bote.email.EmailDestination) Destination(net.i2p.data.Destination) StoreRequest(i2p.bote.packet.dht.StoreRequest) FileWriter(java.io.FileWriter) I2PSendQueue(i2p.bote.network.I2PSendQueue) RelayPeerManager(i2p.bote.service.RelayPeerManager) Mockery(org.jmock.Mockery) BufferedWriter(java.io.BufferedWriter) ByteArrayInputStream(java.io.ByteArrayInputStream) IndexPacket(i2p.bote.packet.dht.IndexPacket) EmailDestination(i2p.bote.email.EmailDestination) I2PSession(net.i2p.client.I2PSession) Synchroniser(org.jmock.lib.concurrent.Synchroniser) File(java.io.File) Before(org.junit.Before)

Aggregations

EmailDestination (i2p.bote.email.EmailDestination)14 ByteArrayInputStream (java.io.ByteArrayInputStream)7 Before (org.junit.Before)7 UniqueId (i2p.bote.UniqueId)6 EncryptedEmailPacket (i2p.bote.packet.dht.EncryptedEmailPacket)5 UnencryptedEmailPacket (i2p.bote.packet.dht.UnencryptedEmailPacket)5 File (java.io.File)5 GeneralSecurityException (java.security.GeneralSecurityException)5 EmailIdentity (i2p.bote.email.EmailIdentity)4 Contact (i2p.bote.packet.dht.Contact)4 Destination (net.i2p.data.Destination)3 AddressBook (i2p.bote.addressbook.AddressBook)2 IndexPacket (i2p.bote.packet.dht.IndexPacket)2 StoreRequest (i2p.bote.packet.dht.StoreRequest)2 IOException (java.io.IOException)2 MessagingException (javax.mail.MessagingException)2 Person (i2p.bote.android.util.Person)1 ECDH521_ECDSA521 (i2p.bote.crypto.ECDH521_ECDSA521)1 ElGamal2048_DSA1024 (i2p.bote.crypto.ElGamal2048_DSA1024)1 EmailMetadata (i2p.bote.email.EmailMetadata)1