Пример #1
0
        public bool VerifySignature()
        {
            var versig = I2PSignature.SupportedSignatureType(PublicSigningKey.Certificate.SignatureType);

            if (!versig)
            {
                DebugUtils.LogDebug("I2PLeaseSet: VerifySignature false. Not supported: " +
                                    PublicSigningKey.Certificate.SignatureType.ToString());
                return(false);
            }

            var signfields = new List <BufLen>();

            signfields.Add(new BufLen(Destination.ToByteArray()));
            signfields.Add(PublicKey.Key);
            signfields.Add(PublicSigningKey.Key);
            signfields.Add((BufLen)(byte)Leases.Count);

            lock ( Leases )
            {
                foreach (var lease in Leases)
                {
                    signfields.Add(new BufLen(lease.ToByteArray()));
                }
            }

            versig = I2PSignature.DoVerify(PublicSigningKey, Signature, signfields.ToArray());
            if (!versig)
            {
                DebugUtils.LogDebug("I2PLeaseSet: I2PSignature.DoVerify failed: " + PublicSigningKey.Certificate.SignatureType.ToString());
                return(false);
            }

            return(true);
        }
Пример #2
0
        static BufLen CreateKnCBuf(I2PKeysAndCert kns)
        {
            var ar  = kns.ToByteArray();
            var buf = new BufLen(I2PHashSHA256.GetHash(ar, 0, ar.Length));

            return(buf);
        }
Пример #3
0
        public I2PIdentHash(I2PKeysAndCert kns)
        {
            var ar = kns.ToByteArray();

            Hash       = new BufLen(I2PHashSHA256.GetHash(ar, 0, ar.Length));
            CachedHash = Hash.GetHashCode();
        }