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); }
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); }