Ejemplo n.º 1
0
        private void Load(string filename)
        {
            using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
            {
                using (var ms = new MemoryStream())
                {
                    byte[] buf = new byte[8192];
                    int    len;
                    while ((len = fs.Read(buf, 0, buf.Length)) != 0)
                    {
                        ms.Write(buf, 0, len);
                    }

                    var reader = new BufRefLen(ms.ToArray());

                    Certificate       = new I2PCertificate(reader);
                    PrivateSigningKey = new I2PSigningPrivateKey(reader, Certificate);
                    PublicSigningKey  = new I2PSigningPublicKey(reader, Certificate);

                    PrivateKey = new I2PPrivateKey(reader, Certificate);
                    PublicKey  = new I2PPublicKey(reader, Certificate);

                    MyRouterIdentity = new I2PRouterIdentity(reader);
                    Published        = new I2PDate(reader);
                    IntroKey         = reader.ReadBufLen(32);
                }
            }
        }
Ejemplo n.º 2
0
        public I2NPMessagesTest()
        {
            Private        = new I2PPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            Public         = new I2PPublicKey(Private);
            PrivateSigning = new I2PSigningPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            PublicSigning  = new I2PSigningPublicKey(PrivateSigning);

            var CertificateEd25519 = new I2PCertificate(I2PSigningKey.SigningKeyTypes.EdDSA_SHA512_Ed25519);

            PrivateSigningEd25519 = new I2PSigningPrivateKey(CertificateEd25519);
            PublicSigningEd25519  = new I2PSigningPublicKey(PrivateSigningEd25519);

            Me = new I2PRouterIdentity(Public, new I2PSigningPublicKey(new BigInteger("12"), I2PKeyType.DefaultSigningKeyCert));
        }
Ejemplo n.º 3
0
        public CreateLeaseSetMessage(BufRef reader, I2CPSession session)
            : base(ProtocolMessageType.CreateLS)
        {
            SessionId = reader.ReadFlip16();

            var cert = session.SessionIds[SessionId].Config.Destination.Certificate;

            DSAPrivateSigningKey = new I2PSigningPrivateKey(
                reader,
                new I2PCertificate(I2PSigningKey.SigningKeyTypes.DSA_SHA1));

            PrivateKey = new I2PPrivateKey(reader, cert);
            Leases     = new I2PLeaseSet(reader);
        }
Ejemplo n.º 4
0
        public GarlicTest()
        {
            Private = new I2PPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            Public  = new I2PPublicKey(Private);

            Me = new I2PRouterIdentity(Public, new I2PSigningPublicKey(new BigInteger("12"), I2PKeyType.DefaultSigningKeyCert));

            DestinationPrivate = new I2PPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            DestinationPublic  = new I2PPublicKey(DestinationPrivate);
            Destination        = new I2PRouterIdentity(DestinationPublic, new I2PSigningPublicKey(new BigInteger("277626"), I2PKeyType.DefaultSigningKeyCert));

            PrivateSigning = new I2PSigningPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            PublicSigning  = new I2PSigningPublicKey(PrivateSigning);
        }
Ejemplo n.º 5
0
        public GarlicTest()
        {
            Logging.LogToConsole = true;
            Logging.LogLevel     = Logging.LogLevels.DebugData;

            Private = new I2PPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            Public  = new I2PPublicKey(Private);

            Me = new I2PRouterIdentity(Public, new I2PSigningPublicKey(new BigInteger("12"), I2PKeyType.DefaultSigningKeyCert));

            DestinationPrivate = new I2PPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            DestinationPublic  = new I2PPublicKey(DestinationPrivate);
            Destination        = new I2PRouterIdentity(DestinationPublic, new I2PSigningPublicKey(new BigInteger("277626"), I2PKeyType.DefaultSigningKeyCert));

            PrivateSigning = new I2PSigningPrivateKey(I2PKeyType.DefaultAsymetricKeyCert);
            PublicSigning  = new I2PSigningPublicKey(PrivateSigning);
        }
Ejemplo n.º 6
0
        public void TestI2PDestination()
        {
            var certificate = new I2PCertificate(I2PSigningKey.SigningKeyTypes.EdDSA_SHA512_Ed25519);

            var keys = I2PPrivateKey.GetNewKeyPair();

            var privkey  = keys.PrivateKey;
            var privskey = new I2PSigningPrivateKey(certificate);

            var dest = new I2PDestination(
                keys.PublicKey,
                new I2PSigningPublicKey(privskey));

            var d2 = new I2PDestination(new BufRefLen(dest.ToByteArray()));

            Assert.IsTrue(BufUtils.Equal(dest.ToByteArray(), d2.ToByteArray()));
        }
Ejemplo n.º 7
0
        private void NewIdentity(I2PCertificate cert)
        {
            Published   = new I2PDate(DateTime.UtcNow.AddMinutes(-1));
            Certificate = cert != null ? cert : new I2PCertificate(I2PSigningKey.SigningKeyTypes.EdDSA_SHA512_Ed25519);
            //Certificate = new I2PCertificate( I2PSigningKey.SigningKeyTypes.EdDSA_SHA512_Ed25519 );
            //Certificate = new I2PCertificate( I2PSigningKey.SigningKeyTypes.ECDSA_SHA256_P256 );
            //Certificate = new I2PCertificate( I2PSigningKey.SigningKeyTypes.ECDSA_SHA384_P384 );
            //Certificate = new I2PCertificate( I2PSigningKey.SigningKeyTypes.DSA_SHA1 );
            PrivateSigningKey = new I2PSigningPrivateKey(Certificate);
            PublicSigningKey  = new I2PSigningPublicKey(PrivateSigningKey);

            var keys = I2PPrivateKey.GetNewKeyPair();

            PrivateKey = keys.PrivateKey;
            PublicKey  = keys.PublicKey;

            MyRouterIdentity = new I2PRouterIdentity(PublicKey, PublicSigningKey);
            IntroKey.Randomize();
        }
Ejemplo n.º 8
0
        public override void Write(List <byte> dest)
        {
            dest.AddRange(BitConverter.GetBytes(SessionId));
            var dummy = new I2PSigningPrivateKey(new I2PCertificate());

            dummy.Write(dest);
            //Info.PrivateSigningKey.Write( dest );
            Info.PrivateKey.Write(dest);
            Leases.Write(dest);

            /*
             * var ar = dest.ToArray();
             * int ix = 22;
             * var pivk = new I2PPrivateKey( ar, ref ix );
             * ix = 665;
             * var refpubk = new I2PPublicKey( ar, ref ix );
             * var diff = ( new I2PPublicKey( pivk ) ).Key.Subtract( refpubk.Key );
             * var ok = diff.CompareTo( BigInteger.Zero ) == 0;
             */
        }