示例#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
        public bool VerifySignature()
        {
            var versig = I2PSignature.SupportedSignatureType(Identity.Certificate.SignatureType);

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

            versig = I2PSignature.DoVerify(Identity.SigningPublicKey, Signature, Data);
            if (!versig)
            {
                DebugUtils.LogDebug("RouterInfo: I2PSignature.DoVerify failed: " + Identity.Certificate.SignatureType.ToString());
                return(false);
            }

            return(true);
        }