コード例 #1
0
        public void RestoreLeadingZeros_doesnt_change_valid_parameters()
        {
            var rsa = new RSAParameters
            {
                Exponent = RsaKeyData.Exponent.Decode64Loose(),
                Modulus  = RsaKeyData.Modulus.Decode64Loose(),
                P        = RsaKeyData.P.Decode64Loose(),
                Q        = RsaKeyData.Q.Decode64Loose(),
                DP       = RsaKeyData.DP.Decode64Loose(),
                DQ       = RsaKeyData.DQ.Decode64Loose(),
                InverseQ = RsaKeyData.InverseQ.Decode64Loose(),
                D        = RsaKeyData.D.Decode64Loose(),
            };

            var padded = RsaKey.RestoreLeadingZeros(rsa);

            Assert.Equal(rsa.Exponent, padded.Exponent);
            Assert.Equal(rsa.Modulus, padded.Modulus);
            Assert.Equal(rsa.P, padded.P);
            Assert.Equal(rsa.Q, padded.Q);
            Assert.Equal(rsa.DP, padded.DP);
            Assert.Equal(rsa.DQ, padded.DQ);
            Assert.Equal(rsa.InverseQ, padded.InverseQ);
            Assert.Equal(rsa.D, padded.D);
        }
コード例 #2
0
        public void RestoreLeadingZeros_pads_to_correct_length()
        {
            var rsa = new RSAParameters
            {
                Exponent = new byte[3],
                Modulus  = new byte[2048 / 8 - 1],
                P        = new byte[13],
                Q        = new byte[17],
                DP       = new byte[23],
                DQ       = new byte[37],
                InverseQ = new byte[53],
                D        = new byte[133],
            };

            var padded = RsaKey.RestoreLeadingZeros(rsa);

            Assert.Equal(3, padded.Exponent.Length);
            Assert.Equal(2048 / 8, padded.Modulus.Length);
            Assert.Equal(1024 / 8, padded.P.Length);
            Assert.Equal(1024 / 8, padded.Q.Length);
            Assert.Equal(1024 / 8, padded.DP.Length);
            Assert.Equal(1024 / 8, padded.DQ.Length);
            Assert.Equal(1024 / 8, padded.InverseQ.Length);
            Assert.Equal(2048 / 8, padded.D.Length);
        }