@eyedeekay
                        
                        
                            &eche|on
                        
                        
                            &zzz
                        
                        
                            +R4SAS
                        
                        
                            +RN
                        
                        
                            +RN_
                        
                        
                            +StormyCloud
                        
                        
                            +acetone
                        
                        
                            +dr|z3d
                        
                        
                            +eche|off
                        
                        
                            +not_bob_afk
                        
                        
                            +orignal
                        
                        
                            +postman
                        
                        
                            +snex
                        
                        
                            +wodencafe
                        
                        
                            Arch
                        
                        
                            BubbRubb
                        
                        
                            Chrono
                        
                        
                            Danny
                        
                        
                            DeltaOreo
                        
                        
                            FreefallHeavens
                        
                        
                            Irc2PGuest16752
                        
                        
                            Irc2PGuest33667
                        
                        
                            Irc2PGuest51880
                        
                        
                            Onn4l7h
                        
                        
                            Over
                        
                        
                            Sisyphus
                        
                        
                            Sleepy_
                        
                        
                            Teeed
                        
                        
                            aargh2
                        
                        
                            ac9f_
                        
                        
                            b3t4f4c3__
                        
                        
                            b4dab00m
                        
                        
                            bak83_
                        
                        
                            duanin2
                        
                        
                            duck
                        
                        
                            john231
                        
                        
                            leopold
                        
                        
                            makoto
                        
                        
                            mareki2p_
                        
                        
                            nilbog-
                        
                        
                            poriori_
                        
                        
                            profetik1
                        
                        
                            r00tobo
                        
                        
                            rapidash
                        
                        
                            shiver_
                        
                        
                            solidx66
                        
                        
                            thetia
                        
                        
                            u5657
                        
                        
                            uop23ip
                        
                        
                            vivid_reader56
                        
                        
                            x74a6
                        
                        
                            xHarr
                        
                    
                    
                        mesh
                    
                    
                        zzz: what exactly is the purpose of PrivateKeyFile?
                    
                
                
                    
                        mesh
                    
                    
                        alright so Destination.writeBytes certainly does not do what I thought it does
                    
                
                
                    
                        zzz
                    
                    
                        w00ty w00t we're getting back into debian
                    
                
                
                    
                        zzz
                    
                    
                        mesh, PKF is to store private keys :)
                    
                
                
                    
                        eche|off
                    
                    
                        ohh, good with Debian
                    
                
                
                    
                        zzz
                    
                    
                        only 0.9.48 again, but baby steps, I found the right mailing linst
                    
                
                
                    
                        eche|off
                    
                    
                        :-)
                    
                
                
                    
                        mesh
                    
                    
                        zzz: hey? Can I ask you about PrivateKeyFile?
                    
                
                
                    
                        zzz
                    
                    
                        shoot
                    
                
                
                    
                        mesh
                    
                    
                        zzz: what is the right way to turn the keystream created by I2PClient.createDestination back into a Destination?
                    
                
                
                    
                        mesh
                    
                    
                        I noticed this ctor in PrivateKeyFile:
                    
                
                
                    
                        mesh
                    
                    
                        public PrivateKeyFile(InputStream in) throws I2PSessionException { this("/dev/null"); I2PSession s = this.client.createSession(in, new Properties()); this.dest = s.getMyDestination();
                    
                
                
                    
                        mesh
                    
                    
                                this.privKey = s.getDecryptionKey();
                    
                
                
                    
                        mesh
                    
                    
                                this.signingPrivKey = s.getPrivateKey();
                    
                
                
                    
                        mesh
                    
                    
                            }
                    
                
                
                    
                        mesh
                    
                    
                        is that the right way? To actually create an I2PSession?
                    
                
                
                    
                        zzz
                    
                    
                        that's a low-level way to do it, yes
                    
                
                
                    
                        mesh
                    
                    
                        zzz: is there a better way?
                    
                
                
                    
                        zzz
                    
                    
                        for a socket-oriented app, you'll want to use the higher-level I2PSocketManagerFactory
                    
                
                
                    
                        zzz
                    
                    
                        which creates a session underneath
                    
                
                
                    
                        mesh
                    
                    
                        zzz: what method in I2PSocketManager takes a keystream and returns the Destination?
                    
                
                
                    
                        zzz
                    
                    
                        several methods take an input stream. all methods return a I2PSocketManager, from there you can get the session and the destination
                    
                
                
                    
                        mesh
                    
                    
                        oh you're talking about the factory class, the I2PSocketManagerFactory
                    
                
                
                    
                        zzz
                    
                    
                        if you don't want a session, you just want to "know" what the destination is, you can use Destination.readBytes(InputStream)
                     
                
                
                    
                        zzz
                    
                    
                        right
                    
                
                
                    
                        zzz
                    
                    
                        you can only make a I2PSocketManager via the factory
                    
                
                
                    
                        zzz
                    
                    
                        it's just an interface
                    
                
                
                    
                        mesh
                    
                    
                        I see, so the expected behavior is people should save KeyStreams and then use them to create I2PSocketManagers
                    
                
                
                    
                        mesh
                    
                    
                        zzz: if I do use I2PClient.createSession(InputStream) ... are there any side effects? This doesn't actually connect to the router? Can I just call I2PSession.destroySession and then discard the Session once I have the Destination?
                     
                
                
                    
                        zzz
                    
                    
                        that would be a little messy. If you just want to get a destination from the keystream, use Destination.readBytes()
                    
                
                
                    
                        mesh
                    
                    
                        zzz: that is guaranteed to always work, even with stuff like encrypted leasesets?
                    
                
                
                    
                        zzz
                    
                    
                        if you want a persistent destination, save the keystream to a file, then feed it back to the socket manager factory every time you start up
                    
                
                
                    
                        zzz
                    
                    
                        yes guaranteed, destinations are not leasesets, you need to know your own destination, LS encryption happens somewhere else
                    
                
                
                    
                        mesh
                    
                    
                        zzz: yeah I figured that out eventually. I think I need to know my Destination before I actually create the I2PSocketManager and connect so I'll give Destination.readBytes a shot.
                    
                
                
                    
                        mesh
                    
                    
                        zzz: the Certificate parameter is interesting. Is there any example code out there that shows how to create Certs?
                    
                
                
                    
                        zzz
                    
                    
                        you don't want to do that, you want to specify a sig type
                    
                
                
                    
                        mesh
                    
                    
                        zzz: wouldn't the Certificate be useful to prove that I own a Destination?
                    
                
                
                    
                        zzz
                    
                    
                        no, that's not how it works
                    
                
                
                    
                        mesh
                    
                    
                        ah ok.
                    
                
                
                    
                        zzz
                    
                    
                        you're thinking of X509 certificates. Certificates in Destinations are something else entirely
                    
                
                
                    
                        zzz
                    
                    
                        net.i2p.data.Certificate, not java.security.Certificate
                    
                
                
                    
                        mesh
                    
                    
                        zzz: ok. Do you think it's a good idea to listen for connections (be  a server) and also connect to other peers (be a client) using the same I2PSocketManager?
                    
                
                
                    
                        zlatinb
                    
                    
                        that's what I do in muwire
                    
                
                
                    
                        zzz
                    
                    
                        that's the common paradigm for a peer-to-peer application. For a non-p2p app, it depends on the threat model
                    
                
                
                    
                        mesh
                    
                    
                        zlatinb: you use a single SocketManager as a server and a client?
                    
                
                
                    
                        zlatinb
                    
                    
                        yes
                    
                
                
                    
                        mesh
                    
                    
                        ok, thanks, good to know
                    
                
                
                    
                        mesh
                    
                    
                        my goal is to have multiple services (listening on different "ports") and clients share the same SocketManager but I was worried about threading and stuff like that
                    
                
                
                    
                        RN
                    
                    
                        Is this error worth looking into? -
                    
                
                
                    
                        RN
                    
                    
                        ERROR [CP Reader 25] .client.ClientConnectionRunner: Disconnecting the client - java.io.EOFException: EOF reading 4 byte value