Beispiel #1
0
        public void VerifyWithSHA1(byte[] data, byte[] expected)
        {
            BigInteger result = VerifyBI(data);

            byte[] finaldata = RSAUtil.StripPKCS1Pad(result, 1).getBytes();

            if (finaldata.Length != PKIUtil.SHA1_ASN_ID.Length + expected.Length)
            {
                throw new VerifyException("result is too short");
            }
            else
            {
                byte[] r = new byte[finaldata.Length];
                Array.Copy(PKIUtil.SHA1_ASN_ID, 0, r, 0, PKIUtil.SHA1_ASN_ID.Length);
                Array.Copy(expected, 0, r, PKIUtil.SHA1_ASN_ID.Length, expected.Length);
                if (SSHUtil.memcmp(r, finaldata) != 0)
                {
                    throw new VerifyException("failed to verify");
                }
            }
        }