Пример #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);
                }
            }
        }
Пример #2
0
        public SessionRequest(BufRef reader, I2PCertificate cert)
        {
            Certificate = cert;

            X = reader.ReadBufLen(Certificate.PublicKeyLength);
            var ipsize = reader.Read8();

            Address = reader.ReadBufLen(ipsize);
        }
Пример #3
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));
        }
Пример #4
0
        public SessionCreated(BufRef reader, I2PCertificate cert)
        {
            Certificate = cert;

            Y = reader.ReadBufLen(Certificate.PublicKeyLength);
            var ipsize = reader.Read8();

            Address    = reader.ReadBufLen(ipsize);
            Port       = reader.ReadBufLen(2);
            RelayTag   = reader.ReadBufLen(4);
            SignOnTime = reader.ReadBufLen(4);
            var paddedsignlen = cert.SignatureLength + BufUtils.Get16BytePadding(cert.SignatureLength);

            SignatureEncrBuf = reader.ReadBufLen(paddedsignlen);
            Signature        = new BufLen(SignatureEncrBuf, 0, cert.SignatureLength);
        }
Пример #5
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()));
        }
Пример #6
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();
        }
Пример #7
0
 public RouterContext(I2PCertificate cert)
 {
     NewIdentity(cert);
 }