public void TestEnumerableNotEqual_Different_Size_Collections2() { var collection1 = new[] { new TestClass { IntValue = 1 }, new TestClass { IntValue = 2 }, new TestClass { IntValue = 3 }, }; var collection2 = new[] { new TestClass { IntValue = 1 }, new TestClass { IntValue = 2 }, }; Assert.IsFalse(Compare.AreEqual(collection2, collection1)); }
private void TestKey() { MPKCParameters encParams = (MPKCParameters)MPKCParamSets.MPKCFM11T40S256.DeepCopy(); MPKCKeyGenerator keyGen = new MPKCKeyGenerator(encParams); IAsymmetricKeyPair keyPair = keyGen.GenerateKeyPair(); byte[] enc, dec, data; // encrypt an array using (MPKCEncrypt cipher = new MPKCEncrypt(encParams)) { cipher.Initialize(keyPair.PublicKey); data = new byte[66]; new CSPRng().GetBytes(data); enc = cipher.Encrypt(data); } // decrypt the cipher text using (MPKCEncrypt cipher = new MPKCEncrypt(encParams)) { cipher.Initialize(keyPair.PrivateKey); dec = cipher.Decrypt(enc); } if (!Compare.AreEqual(dec, data)) { throw new Exception("TestKey test: decryption failure!"); } OnProgress(new TestEventArgs("Passed sub-key test")); }
private void CompareBlocks() { using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { byte[] key = new byte[32]; byte[] data = new byte[1600]; // 100 blocks rng.GetBytes(key); rng.GetBytes(data); byte[] enc1 = SerpentA(true, key, data); byte[] enc2 = SerpentB(key, data); if (Compare.AreEqual(enc1, enc2) == false) { throw new Exception("Encrypted output is not equal!"); } byte[] dec1 = SerpentA(false, key, enc1); if (Compare.AreEqual(data, dec1) == false) { throw new Exception("Decrypted output is not equal to input data!"); } } }
private void CompareBlocks(int BlockSize) { using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { byte[] key = new byte[32]; byte[] iv = new byte[BlockSize]; byte[] data = new byte[1600]; rng.GetBytes(key); rng.GetBytes(iv); rng.GetBytes(data); byte[] enc1 = EncryptRDX(key, iv, data); byte[] enc2 = EncryptManaged(key, iv, data); if (Compare.AreEqual(enc1, enc2) == false) { throw new Exception("Encrypted output is not equal!"); } byte[] dec1 = DecryptRDX(key, iv, data); byte[] dec2 = DecryptManaged(key, iv, data); if (Compare.AreEqual(dec2, dec1) == false) { throw new Exception("Decrypted output is not equal to input data!"); } } }
public void TestMethod3() { var instance1 = new TestClass { IntValue = 1, StringValue = "123", Klass2 = new TestClass2 { IntValue2 = 2, StringValue2 = "2" } }; var instance2 = new TestClass { IntValue = 1, StringValue = "123", Klass2 = new TestClass2 { IntValue2 = 2, StringValue2 = "3" } }; var x = Compare.AreEqual(instance1, instance2); Assert.IsFalse(x); }
/// <summary> /// Test the hashed value of a stream against the decrypted code /// </summary> /// /// <param name="Input">The stream containing the data to test</param> /// <param name="Offset">The starting offset within the Input array</param> /// <param name="Length">The number of bytes to process</param> /// <param name="Code">The encrypted hash code</param> /// /// <returns>Returns <c>true</c> if the codes match</returns> /// /// <exception cref="MPKCException">Thrown if the signer is not initialized, or the key is invalid</exception> public bool Verify(byte[] Input, int Offset, int Length, byte[] Code) { if (Input.Length - Offset < Length) { throw new MPKCException("MPKCSign:Verify", "The input array is too short!", new ArgumentOutOfRangeException()); } if (!_isInitialized) { throw new MPKCException("MPKCSign:Verify", "The signer has not been initialized!", new InvalidOperationException()); } if (_keyPair.PrivateKey == null) { throw new MPKCException("MPKCSign:Verify", "The private key is invalid!", new InvalidDataException()); } if (!(_keyPair.PrivateKey is MPKCPrivateKey)) { throw new MPKCException("MPKCSign:Verify", "The private key is invalid!", new InvalidDataException()); } _asyCipher.Initialize(false, _keyPair); byte[] chksum = _asyCipher.Decrypt(Code); byte[] hash = Compute(Input, Offset, Length); return(Compare.AreEqual(hash, chksum)); }
/// <summary> /// Compare this polynomial to another for equality /// </summary> /// /// <param name="Obj">Object to compare</param> /// /// <returns>True if equal, otherwise false</returns> public override bool Equals(Object Obj) { if (this == Obj) { return(true); } if (Obj == null) { return(false); } SparseTernaryPolynomial other = (SparseTernaryPolynomial)Obj; if (_N != other._N) { return(false); } if (!Compare.AreEqual(_negOnes, other._negOnes)) { return(false); } if (!Compare.AreEqual(_ones, other._ones)) { return(false); } return(true); }
// encrypts and decrypts text using an encoded key pair (fastFp=false, simple ternary polynomials) private void EncodedKeysSlow() { byte[] plainText = ByteUtils.GetBytes("secret encrypted text"); // dense polynomials NTRUParameters param = (NTRUParameters)NTRUParamSets.APR2011743.DeepCopy(); NTRUEncrypt ntru = new NTRUEncrypt(param); NTRUPrivateKey priv = new NTRUPrivateKey(ByteUtils.ToBytes(new sbyte[] { 2, -25, 8, 0, 0, 2, -94, 95, 65, -107, 27, 98, 62, -15, -62, 21, -4, 119, -117, 7, 68, 100, 113, -36, -82, 87, -87, -82, 24, -45, -75, -74, -108, 105, 24, 123, 117, 124, 74, -27, 42, -106, -78, 114, 27, 18, 77, -41, 105, -113, 39, 49, 46, 109, -69, 61, 77, 49, 117, 14, -29, 42, 3, 120, -121, -120, -37, 95, 84, 60, -9, -31, -64, 31, 72, 115, -15, 21, -6, 27, -60, -73, -29, -33, -81, -43, 106, 65, 114, 102, -14, -115, -96, 9, 54, 23, -18, -24, -76, 84, -41, -79, 35, 88, 11, 41, 67, 44, -63, -28, 76, 84, -41, -103, 106, -22, 35, -2, -40, -48, -121, -128, 76, 63, 123, -11, 103, -35, -32, 21, -51, -99, -40, -103, -12, 64, -80, 57, -56, 1, -51, 103, 83, 50, 111, -87, -98, 7, -109, 25, -51, 23, -92 })); NTRUPublicKey pub = new NTRUPublicKey(ByteUtils.ToBytes(new sbyte[] { 2, -25, 8, 0, 91, -66, -25, -81, -66, -33, 25, -31, 48, 23, -38, 20, -30, -120, -17, 1, 21, 51, -11, 102, -50, 62, 71, 79, 32, -49, -57, 105, 21, -34, -45, -67, 113, -46, -103, 57, 28, -54, -21, 94, -112, -63, 105, -100, -95, 21, -52, 50, 11, -22, -63, -35, -42, 50, 93, -40, 23, 0, 121, 23, -93, 111, -98, -14, 92, -24, -117, -8, -109, -118, -4, -107, -60, 100, -128, -47, -92, -117, -108, 39, -113, 43, 48, 68, 95, 123, -112, 41, -27, -99, 59, 33, -57, -120, -44, 72, -98, -105, -91, -52, -89, 107, 119, 87, -36, -102, -83, 67, -8, 30, -54, 74, 93, 119, -3, 126, 69, -104, -44, -24, 124, 108, -125, 73, 98, 121, -49, -37, -24, 87, -71, 91, 8, -31, -50, 95, 112, 27, 97, -93, 3, -73, -54, -16, -92, -108, -74, 88, -5, 23, 70, 69, -49, -46, -50, 65, 69, -54, -41, 109, 8, -80, -23, -84, 120, -77, 26, 99, -104, -33, 82, 91, 22, -17, 113, -29, 66, -7, -114, -101, -111, -47, -1, -3, -57, 62, 79, -70, -58, 45, 76, 28, -117, 59, -117, 113, 84, -55, 48, 119, 58, -105, -20, 80, 102, 14, -69, -69, 5, 11, -87, 107, 15, 105, -69, -27, -24, 47, -18, -54, -45, -67, 27, -52, -20, -94, 64, -26, -58, 98, 33, -61, 71, -101, 120, 28, 113, 72, 127, 50, 123, 36, -97, 78, 32, -74, 105, 62, 92, 84, -17, 21, -75, 24, -90, -78, -4, -121, 47, -82, 119, 27, -61, 17, -66, 43, 96, -49, -6, 66, -13, -75, -95, 64, -12, -39, 111, 46, -3, -123, 82, 12, -26, -30, -29, 71, -108, -79, -112, 13, 16, -70, 7, 100, 84, 89, -100, 114, 47, 56, 71, 83, 63, -61, -39, -53, -100, 23, -31, -52, -46, 36, -13, 62, 107, 28, -28, 92, 116, -59, 28, -111, -23, -44, 21, -2, 127, -112, 54, -126, 13, -104, 47, -43, -109, -19, 107, -94, -126, 50, 92, -69, 1, 115, -121, -52, -100, 25, 126, -7, 86, 77, 72, -2, -104, -42, 98, -16, 54, -67, 117, 14, -73, 4, 58, 121, 35, 1, 99, -127, -9, -60, 32, -37, -106, 6, -108, -13, -62, 23, -20, -9, 21, 15, 4, 126, -112, 123, 34, -67, -51, 43, -30, -75, 119, -112, -58, -55, -90, 2, -5, -46, -12, 119, 87, 24, -52, 2, -29, 113, 61, -82, -101, 57, -11, -107, -11, 67, -42, -43, -13, 112, -49, 82, 60, 13, -50, 108, 64, -64, 53, -107, -9, 102, -33, 75, -100, -115, 102, -113, -48, 19, -119, -72, -65, 22, -65, -93, 34, -71, 75, 101, 54, 126, 75, 34, -21, -53, -36, 127, -21, 70, 24, 89, -88, 63, -43, -4, 68, 97, -45, -101, -125, -38, 98, -118, -34, -63, 23, 78, 15, 17, 101, -107, 119, -41, 107, 117, 17, 108, 43, -93, -6, -23, -30, 49, -61, 27, 61, -125, -68, 51, 40, -106, -61, 51, 127, 2, 123, 7, -50, -115, -32, -95, -96, 67, 4, 5, 59, -45, 61, 95, 14, 2, -76, -121, 8, 125, 16, -126, 58, 118, -32, 19, -113, -113, 120, -101, 86, 76, -90, 50, -92, 51, -92, 1, 121, -74, -101, -33, 53, -53, -83, 46, 20, -87, -112, -61, -87, 106, -126, 64, 99, -60, 70, 120, 47, -53, 36, 20, -90, 110, 61, -93, 55, -10, 85, 45, 52, 79, 87, 100, -81, -85, 34, 55, -91, 27, 116, -18, -71, -11, 87, -11, 76, 48, 97, -78, 64, -100, -59, -12, 19, -90, 121, 48, -19, 64, 113, -70, -14, -70, 92, 124, 42, 95, 7, -115, 36, 127, 73, 33, 30, 121, 88, 16, -90, 99, 120, -68, 64, -125, -78, 76, 112, 68, 8, 105, 10, -47, -124, 39, -107, -101, 46, -61, 118, -74, 102, -62, -6, -128, 17, -45, 61, 76, 63, -10, -41, 50, -113, 75, -83, -59, -51, -23, -61, 47, 7, -80, 126, -2, 79, -53, 110, -93, -38, -91, -22, 20, -84, -113, -124, -73, 124, 0, 33, -58, 63, -26, 52, 7, 74, 65, 38, -33, 21, -9, -1, 120, -16, 47, -96, 59, -64, 74, 6, 48, -67, -32, -26, 35, 68, 47, 82, 36, 52, 41, 112, -28, -22, -51, -6, -49, 105, 16, -34, 99, -41, 75, 7, 79, -22, -125, -30, -126, 35, 119, -43, -30, 32, 8, 44, -42, -98, 78, -92, -95, -10, -94, -1, -91, -122, 77, 0, 40, -23, 36, 85, 123, -57, -74, -69, -90, 89, 111, -120, 22, 5, -48, 114, 59, 31, 31, -25, -3, 24, 110, -110, 73, -40, 92, -26, -12, 52, 83, -98, -119, -6, -117, -89, 95, 83, -25, 122, -26, 114, 81, 25, 110, 79, -49, -39, 10, -78, -65, 57, -90, -46, -126, 15, -124, -104, -89, -66, -87, 24, -45, 39, -34, -40, -13, 106, 12, -25, -116, -47, 79, -81, 64, -17, -31, -70, 87, 36, 46, 102, 107, 48, 88, 34, 46, 24, 63, -100, 106, 27, 58, -71, 38, 60, -66, 45, -89, 39, -60, -116, -14, -119, 118, 0, -24, -9, 38, -71, -79, 124, -119, -64, -9, 71, -56, -82, -73, -69, 127, -1, -20, 123, 32, -43, 49, 5, 49, 105, -5, -2, 5, -105, -111, 89, -30, -41, -49, 61, 80, 69, 44, -33, -116, -45, -96, 63, 28, -17, -106, -94, 90, -40, -88, 122, 116, 116, 113, -65, 104, 119, -3, 96, -45, 18, -120, -111, 83, 43, -5, 101, 71, 48, 104, -112, -95, -46, 53, -96, -93, -126, 96, 56, 104, -111, 114, -1, -44, -120, -112, -19, 100, 41, -122, 23, -78, 33, -35, 11, 57, -18, 106, -40, 74, 61, 66, 54, -77, 96, 70, 108, -128, 91, -97, -36, -23, -86, -91, 44, 58, 117, 2, 26, 44, 95, 79, -101, -81, -92, 110, -81, -12, -88, -21, -83, 60, 93, -121, -114, -48, -34, -119, -1, 127, -121, 54, -128, -106, -39, -108, 81, 17, -3, -13, -57, 74, 41, -122, -65, -107, -118, -65, -61, 103, -69, 19 })); NTRUKeyPair kp = new NTRUKeyPair(pub, priv); ntru.Initialize(kp.PublicKey); byte[] encrypted = ntru.Encrypt(plainText); ntru.Initialize(kp); byte[] decrypted = ntru.Decrypt(encrypted); if (!Compare.AreEqual(plainText, decrypted)) { throw new Exception("NtruEncryptTest: slow dense polynomial encoded key test failed!"); } // sparse polynomials param = NTRUParamSets.EES1499EP1; ntru = new NTRUEncrypt(param); priv = new NTRUPrivateKey(ByteUtils.ToBytes(new sbyte[] { 5, -37, 8, 0, 1, 116, 7, 118, 121, 6, 77, -36, 60, 65, 108, 10, -106, 12, 9, -22, -113, 122, -31, -31, 18, 120, 81, -33, 5, 122, -76, 109, -30, -101, -45, 21, 13, -11, -49, -111, 46, 91, 4, -28, -109, 121, -119, -121, -58, -113, -9, -10, -25, -53, 40, -86, -22, -50, 42, 52, 107, 119, 17, 33, 125, -26, 33, 55, 25, -77, -65, -106, 116, -67, 91, 105, -7, 42, -107, -54, 101, 12, -12, 57, -116, 45, -107, -17, 110, 35, -64, 19, -38, -122, 115, -93, 53, 69, 66, -106, 17, 20, -71, 121, 23, -21, -45, 108, 97, 23, -98, -12, -41, -31, -53, 30, -42, 15, 85, -21, -89, 118, 42, -117, -39, 69, 0, -63, 83, 48, -80, -14, -123, -4, -116, -90, -107, -89, 119, 29, -30, 69, 22, -84, 47, 117, -123, 102, -116, 35, 93, -13, 84, -9, -122, 58, 101, 93, -106, -119, -35, -75, 76, 27, -125, -22, 68, 101, 49, 103, -13, -98, 93, -56, -110, -19, -12, 74, 104, 7, 6, -11, 47, 57, 90, 75, -30, 47, 66, -58, 14, 14, 70, 11, -119, -36, -118, -55, -53, 101, -73, -77, 33, -29, 96, -86, 38, 47, 103, 19, -37, -17, -50, -82, -87, -119, 37, -54, 77, -69, -16, -48, -52, 110, -26, 111, 35, 26, -53, -10, 9, -108, -34, 102, 7, -18, -72, -26, 24, -50, -43, 92, 56, -94, 23, -36, 60, 28, -121, 27, 127, -93, -79, -45, -60, 105, -6, -88, 72, -41, 47, -51, 3, 91, 116, 75, 122, -94, -113, 28, -96, -62, -29, -74, -85, -93, 51, 58, 72, 44, 9, 18, -48, -24, 73, 122, 60, -23, 83, -110, -7, -111, -69, 106, 51, 118, -83, -18, 109, -32, 40, 22 })); pub = new NTRUPublicKey(ByteUtils.ToBytes(new sbyte[] { 5, -37, 8, 0, -62, 56, 59, -46, 30, -19, 22, -115, -20, 117, -14, 3, 2, -57, 85, -24, 27, 57, 49, -93, -52, 87, 49, 96, 15, 95, -95, -86, -61, 50, -18, 3, 109, -55, -110, -57, 82, 124, -5, -57, 68, -18, 126, 114, 6, -22, 8, 121, 125, 29, -16, 112, -81, 27, -7, 109, -44, -123, -15, -14, 74, -126, 95, -94, -91, 119, 80, -48, 41, 49, 6, 104, 93, -97, -108, -82, 93, 70, -127, -113, -22, -103, 35, -115, 20, -115, 63, 57, -84, -18, -107, 81, 44, -16, 83, 71, -27, -2, -125, 87, 26, 100, -116, 110, 94, -46, -56, -82, 119, -110, -127, -99, -8, -118, 90, 64, -29, 102, 99, 92, 86, -117, 26, -89, 32, 17, 55, -65, -10, -5, -74, 19, 13, 113, -15, -103, 17, 10, -127, -95, -79, 19, 11, -24, 59, 28, -70, -55, -69, -105, -20, -117, 66, 4, 77, 116, -124, -62, 19, 109, 49, -120, 10, -15, 108, 84, 126, 122, -46, -37, 114, -78, -72, 34, -12, 25, -104, -3, 114, -94, 16, 31, 31, -124, -109, -64, 57, -47, -113, -26, 97, -58, 112, -40, 49, 80, -54, -115, -98, -60, -123, 91, 14, 75, -86, 77, -93, 68, 112, 82, 79, 28, -25, 49, -27, -112, 103, 60, -128, 95, -63, 2, -51, 2, -107, 80, 113, 18, 123, 24, 70, 77, -56, -48, 33, 89, 88, 29, 112, -102, -15, 52, -96, 17, -9, 6, -11, -119, 29, -107, -84, -19, 84, 124, 19, 90, -60, -41, 123, -81, 96, -119, 17, -61, 62, 55, 95, -73, -13, -60, 56, 77, 24, -39, -107, -78, 47, -91, 88, 90, 34, 112, -80, 83, -58, 127, 76, -97, -40, 78, -20, -1, -62, 19, 6, -43, -46, -36, -53, -22, -28, -119, 8, 19, 79, -9, -54, -126, -3, -20, -110, -82, 51, 3, 1, -123, -41, -40, -11, 91, -52, 48, 104, -11, -2, 49, 45, 52, -33, 109, -44, -30, -44, -83, -108, -10, 77, 106, 82, 3, 14, -48, -18, -79, -64, -34, -63, -18, 122, 33, 25, 44, 82, -112, 111, 68, 97, -58, -38, 25, 62, 78, 97, -36, 57, -19, 122, -18, -74, 67, -127, -24, 32, -45, 67, -106, 90, 0, 1, 91, 30, -80, 95, 9, 78, -4, -14, 16, 111, -56, -102, -90, 52, -1, 116, 19, -127, -23, -87, 103, -94, -111, 118, 53, -69, 77, 17, -3, 31, -53, -21, -78, 124, -88, 52, 117, 34, -52, -77, -107, -38, -102, 23, 73, -76, -88, 95, 64, -85, 12, 36, -86, 86, -17, 77, 121, 90, 24, -49, -107, 33, -116, 65, 13, 91, 118, -107, -21, 65, -59, 18, 125, 61, -65, -68, -19, 23, 88, 60, -6, 78, -8, 69, -62, -118, -93, 97, -64, -67, 28, 28, -87, -97, 72, -125, -119, 4, -43, 7, 22, -15, 52, 52, -82, -5, -51, 99, 20, -59, -2, -54, -67, 40, -128, -20, -37, 50, 123, 32, 8, -39, -105, 93, 73, 77, 84, 43, 89, 88, -6, 7, -108, 81, 27, 1, 50, 16, -101, 67, 95, 119, 105, 70, 99, -127, 22, 127, -33, -19, -113, -55, -100, 122, -86, 98, 53, 27, -95, 4, -121, -96, 87, 67, -98, -37, -10, 92, 29, -3, -115, -23, 37, 8, -30, 99, -117, 62, 101, 83, 49, 60, -83, -47, -33, 41, -118, 76, -7, 111, -15, 123, -59, 53, 2, -20, -57, 24, 57, 62, 84, -26, -11, 93, -118, 54, -13, 56, 77, -66, 18, -62, -76, 80, 98, 26, 120, -93, 55, 103, -1, 78, -92, 120, -23, -60, -75, 11, 53, -62, -94, -80, 120, 113, 33, -24, -64, -5, 23, 120, -14, 61, 26, -1, 56, 79, 34, 116, -16, -95, -71, 40, -89, -50, 71, -117, -109, 2, -2, -34, 94, -78, -88, -27, 70, 94, -86, 123, -49, 107, -65, -67, 84, 90, 123, -61, -2, 43, -119, -93, 75, -4, -81, 98, -36, 125, -23, -37, 81, 104, 90, -63, -52, 88, -96, -44, 25, 3, -37, -123, -48, 113, -76, -94, -109, -115, 37, -39, 104, -124, 82, -73, 100, 48, -54, -40, -65, 81, 16, -85, -41, 60, 42, 117, 65, 77, 14, -8, -56, 52, -118, -109, 125, 13, 64, -20, 125, -37, -74, -28, 118, 112, -126, 18, -101, 11, 75, 30, -4, -121, -13, -65, -13, -122, -53, -52, 20, -2, 67, 18, -106, 67, 83, -111, 15, 106, 10, 113, 53, -112, -3, 118, 8, -56, 40, 53, 23, -123, 96, 87, -118, -97, -116, -47, 85, -73, -85, -82, 124, -55, 55, 61, 46, 12, -6, 34, 22, -22, 3, 115, -49, 102, 23, 46, 39, 0, 118, 3, -45, 48, -73, -38, 29, -36, 11, -127, -86, 30, 29, -2, -108, -114, 64, 110, 86, -46, -91, -64, 95, -40, -65, 49, -79, -126, -37, -103, -71, 53, -85, 45, -51, 33, -28, -126, 36, -77, -120, 55, -54, 72, -21, 58, -87, -73, 18, -12, 20, -100, 30, 118, -83, -22, -90, 71, -64, 108, 101, -46, 36, 105, -46, -91, 60, -113, 72, 100, 82, -90, 106, -127, 65, -94, 17, 77, -10, -112, 46, 118, 72, -84, 57, -86, -114, 88, 91, 79, 30, 107, -35, 61, 81, 71, 40, -29, -6, -107, 61, -62, -6, 65, -68, 118, 61, 110, -115, -119, -73, 104, 59, -66, -89, -127, -8, -67, 122, -38, 79, -13, 93, 1, -32, -47, -3, 62, 88, -112, 105, 73, 96, 73, -104, -126, -69, 21, -22, 16, -85, 116, 9, 82, 54, -15, -55, -67, 68, -23, 16, -89, 48, -17, -107, 60, -43, -34, 66, -114, 63, -3, -26, 68, 68, -86, 120, -111, 99, 61, 101, 27, 93, 31, 90, -33, -94, 29, -89, 41, -80, 26, -23, -80, 27, 107, 69, -45, -123, 62, 63, 80, 1, -28, 52, -8, 35, -86, -127, 76, 102, 83, -104, -79, -98, 77, -28, 118, 18, -15, -98, -39, 2, -58, 95, 64, 105, -82, -7, 96, 110, 104, 127, 126, -124, 26, 36, 33, -42, 59, 82, 127, 42, -24, -61, -50, -18, -87, 22, -32, -125, -70, 103, -121, -112, -94, 58, -95, -97, 53, 95, -61, -83, 42, 37, 80, 51, -118, 125, 15, 67, 41, -97, 41, -121, 29, -88, 100, -113, 39, 101, 47, 91, -36, 48, -56, -13, 12, 37, 0, 81, 3, -40, 8, 36, -65, -11, -32, 108, 62, 79, 70, 91, -83, 2, -47, 0, 91, 10, 87, -19, -40, 96, 106, 41, 120, -53, 40, -114, 90, 64, 59, -115, 39, 2, 53, -49, -72, -114, 94, 5, 49, 74, 13, 50, -14, 76, -123, -11, -81, 100, 120, 16, -41, -72, -118, 28, 41, 98, 122, 27, 18, -108, -43, 51, -71, 93, -13, -42, -64, -118, -106, 45, 108, 72, -128, 58, -123, -29, -114, 15, 52, -72, 108, -62, 75, -15, 105, -89, 25, 37, 13, -21, -109, 68, 5, -89, 69, 10, -46, 18, -57, 77, -103, -74, 57, -43, -110, 1, -80, 82, 5, -9, -49, -53, 83, 4, 44, 64, -117, -67, -11, 1, -65, -81, 34, -23, -71, 14, 105, -93, 2, -120, 90, 92, -6, -128, -16, -51, 27, 123, 71, -117, -72, -81, 26, 28, 5, -117, -30, 22, -72, -76, -32, -14, 82, 90, 69, 74, -94, -72, -30, -17, 12, -37, -3, -80, 72, 2, -40, 41, 0, -53, 48, -37, -117, -128, -120, -80, 28, 49, -52, 114, -119, 92, -42, -105, 125, -95, 78, 76, 123, -56, 32, -66, 69, -58, 57, -77, -100, -70, 125, 53, -115, 8, 116, 88, -34, 86, -75, 55, 64, 79, -113, -124, -91, 50, -82, -119, 50, 11, 87, -14, -25, 15, -1, -49, -127, -5, -50, 72, -29, -78, 101, -119, -21, -15, 97, -63, 57, -123, -94, -24, -8, 104, 86, 79, 49, 102, -8, -76, 8, 69, 99, -64, -108, 70, 36, 71, -127, 56, 39, 78, 109, 42, -42, -2, 126, 17, -88, -65, -23, -64, 78, 87, 7, 6, -82, -98, 41, -46, -10, -25, 90, -73, 24, 127, -27, 118, -9, 81, -3, 115, -4, 47, 86, -30, -9, -50, 32, 86, 114, 58, -5, 78, 74, 36, 29, -126, 116, 117, -114, -92, -121, -36, -86, -18, 55, 49, 112, 43, 111, -99, -116, 70, 60, -63, 87, -4, -35, 15, 28, -27, -65, 66, 115, -33, 112, 94, 74, -22, 104, -56, -27, 39, -8, -53, -120, 8, -109, 73, -68, 67, 40, -59, 59, 121, -76, -41, -80, -54, -88, -120, -121, -118, -58, 74, -120, 82, -88, -113, 30, -8, 54, -126, -106, 37, -43, -74, -56, 40, -76, 93, 91, 28, -59, -30, -2, 107, 6, -89, -69, -121, -125, -109, 5, -94, -7, -2, -5, -67, 54, -90, 39, 5, -80, 93, -99, 82, -100, -128, -8, -39, -109, 66, -11, 99, -41, 18, -32, -122, 69, 6, -95, -21, 9, 19, -117, -34, -42, 11, 20, 84, 89, 91, -61, -13, -7, 55, 90, -15, 62, 59, -4, 125, -127, -24, -124, -99, -63, -23, 52, 111, -52, -60, -113, -65, -26, 127, 57, 21, 102, 101, -77, 66, -116, 117, 80, 7, 1, -96, -29, -99, 75, -73, 44, -99, 61, -73, 15, -18, 89, 95, 104, -12, 94, 33, 13, -49, 118, -84, -122, -2, -121, 62, -32, -80, 11, -10, 102, -67, 20, -3, 25, -6, 51, -17, -123, -76, 103, 3, 127, -107, -5, 122, 65, 22, 113, 120, 6, -19, -110, 86, 55, -88, -124, 0, -54, 17, 112, 15, 105, -28, 111, -93, 85, -59, -88, 28, 123, 55, 117, 10, 76, 54, -98, 116, 40, -65, -53, -80, 46, 66, -8, -114, 102, 66, 67, -117, 46, 21, -116, -38, 58, -105, 101, 37, -16, 5, 55, -33, -87, 72, 122, -114, -91, 41, -114, 77, 50, 109, 35, -61, 9, -55, -118, 126, -35, -108, 5, 62, 125, -109, -115, -55, 32, -71, 69, 110, 87, -82, 119, 26, 103, -77, -38, -13, 113, 74, 69, 116, 94, -21, 5, 35, 73, -80, -87, 80, 13, 108, 1, 82, -56, -35, -21, -78, -98, 121, 112, -117, 72, 47, 76, -97, -84, -110, -35, -19, -120, -13, 127, 5, 56, 72, -22, 110, -8, -71, 0, -57, -125, -101, 60, -64, -32, 1, 126, -109, 9, 84, 117, 62, -68, -106, 28, -118, -52, -81, 112, 11, 55, 68, -86, -65, 123, 83, 55, -72, 110, 63, -90, 31, 11, 90, -60, 20, 14, -36, 5, -92, 11, -100, 64, -57, -72, -105, 7, 103, 125, 99, -88, 32, -5, 41, -115, -11, 89, 81, 77, -33, -7, -123, -17, 109, 59, 40, -12, -61, 98, -91, 19, -36, 108, 118, -124, -82, -40, -124, -66, 19, 127, -73, -39, 99, 43, -16, -44, -83, -77, -34, 68, -118, -71, -116, 114, 120, -34, -105, -32, -46, 102, 73, -79, 7, 42, 35, -66, 125, 34, 113, 66, 78, 71, 6, 44, -17, 4, -80, 38, -59, 12, -8, -78, 103, 8, 80, 18, -74, 20, 3, 56, -20, 106, -1, -12, 83, 4, 68, -119, 84, -87, 97, -53, 102, 119, 34, -85, 22, -26, 55, -107, 96, -70, 77, -68, -96, -15, -22, -77, -55, 5, 103, -42, -87, 122, -80, -103, -37, -120, -56, -16, -51, -7, -19, -104, 120, 9, 54, -85, 48, -76, -38, 58, -68, 116, -20, -44, 22, -32, 75, -46, -41, 13, -100, 16, -59, -93, -115, 54, 22, -110, -46, -119, 44, -98, -48, 4, -58, -115, -57, 103, -56, 36, -63, 104, -114, -125, 92, 65, 117, -21, -59, -31, 56, -98, -126, 56, 47, -116, 100, 122, -98, 4, 26, -29, -127, -113, 73, 48, 106, 125, -69, -127, 62, 56, -79, 76, 84, -46, -31, -17, 94, -98, 62, 63, 118, -24, 63, 123, -93, -46, 103, 117, -120, -35, 19, 25, 15, -110, -125, 12, -75, -50, 103, 49, 47, 98, 92, 10, -88, 54, -53, 19, 25, -90, 93, -49, 64, 126, -106, -30, -52, 58, 37, 68, -18, -60, 15, -27, 93, -124, 88, 110, -80, -106, 88, 55, 108, -58, -43, -70, 76, 85, 98, 27, -66, 18, 75, 69, 114, 90, -26, -10, -12, -126, 84, -109, 108, 15, -115, 90, 11, -127, 63, -7, 47, 92, -72, 38, -58, -35, 18, 25, 12, -103, 0 })); kp = new NTRUKeyPair(pub, priv); ntru.Initialize(kp.PublicKey); encrypted = ntru.Encrypt(plainText); ntru.Initialize(kp); decrypted = ntru.Decrypt(encrypted); if (!Compare.AreEqual(plainText, decrypted)) { throw new Exception("NtruEncryptTest: slow sparse polynomial encoded key test failed!"); } }
private void TestAddShifted() { int[] a = new int[] { 1522485231, 1933026569 }; int[] b = new int[] { 233616584 }; SchonhageStrassen.AddShifted(a, b, 1); if (!Compare.AreEqual(a, new int[] { 1522485231, -2128324143 })) { throw new Exception("SchönhageStrassen:AddShifted test has failed!"); } a = new int[] { 796591014, -1050856894, 1260609160 }; b = new int[] { 2093350350, -1822145887 }; SchonhageStrassen.AddShifted(a, b, 1); if (!Compare.AreEqual(a, new int[] { 796591014, 1042493456, -561536726 })) { throw new Exception("SchönhageStrassen:AddShifted test has failed!"); } a = new int[] { -1135845471, 1374513806, 391471507 }; b = new int[] { 980775637, 1136222341 }; SchonhageStrassen.AddShifted(a, b, 1); if (!Compare.AreEqual(a, new int[] { -1135845471, -1939677853, 1527693848 })) { throw new Exception("SchönhageStrassen:AddShifted test has failed!"); } }
private void TestMultModFn() { if (!Compare.AreEqual(new int[] { 1713569892, -280255914 }, SchonhageStrassen.MultModFn(new int[] { -142491638, 0 }, new int[] { -142491638, 0 }))) { throw new Exception("SchönhageStrassen:MultModFn test has failed!"); } }
public void AreEqual_ValuesAreNullTest() { bool?testValue = null; var result = Compare.AreEqual(testValue, testValue); Assert.IsTrue(result); }
private bool EncAreEqual(byte[] Key, byte[] Data) { byte[] tmp1 = EncryptAesFast(Key, Data); byte[] tmp2 = EncryptRX(Key, Data); return(Compare.AreEqual(tmp1, tmp2)); }
/// <summary> /// Decides whether the given object <c>other</c> is the same as this field /// </summary> /// /// <param name="Obj">The object for comparison</param> /// /// <returns>Returns <c>(this == other)</c></returns> public override bool Equals(Object Obj) { if (Obj == null || !(Obj is RNBWPublicKey)) { return(false); } RNBWPublicKey other = (RNBWPublicKey)Obj; if (!_docLength.Equals(other.DocLength)) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_coeffQuadratic), ArrayUtils.ToBytes(other.CoeffQuadratic))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_coeffSingular), ArrayUtils.ToBytes(other.CoeffSingular))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_coeffScalar), ArrayUtils.ToBytes(other.CoeffScalar))) { return(false); } return(true); }
public void TestEnumerableEqual() { var collection1 = new[] { new TestClass { IntValue = 1 }, new TestClass { IntValue = 2 }, }; var collection2 = new[] { new TestClass { IntValue = 1 }, new TestClass { IntValue = 2 }, }; Assert.IsTrue(Compare.AreEqual(collection1, collection2)); }
/// <summary> /// Decides whether the given object <c>other</c> is the same as this field /// </summary> /// /// <param name="Obj">The object for comparison</param> /// /// <returns>Returns <c>(this == other)</c></returns> public override bool Equals(Object Obj) { if (Obj == null || !(Obj is RNBWPrivateKey)) { return(false); } RNBWPrivateKey other = (RNBWPrivateKey)Obj; if (!Compare.AreEqual(ArrayUtils.ToBytes(_a1Inv), ArrayUtils.ToBytes(other.InvA1))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_B1), ArrayUtils.ToBytes(other.B1))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_a2Inv), ArrayUtils.ToBytes(other.InvA2))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_B2), ArrayUtils.ToBytes(other.B2))) { return(false); } if (!Compare.AreEqual(ArrayUtils.ToBytes(_VI), ArrayUtils.ToBytes(other.VI))) { return(false); } return(true); }
private void CompareMode(byte[] key, byte[] iv, byte[] data, PaddingModes Padding) { PaddingMode mngPad = PaddingMode.Zeros; if (Padding == PaddingModes.PKCS7) { mngPad = PaddingMode.PKCS7; } else if (Padding == PaddingModes.X923) { mngPad = PaddingMode.ANSIX923; } byte[] enc1 = EncryptRDX(key, iv, data, Padding); byte[] enc2 = EncryptManaged(key, iv, data, mngPad); // bizarre .Net bug: (sometimes) it will add a *full block* of padding for no reason! // even if input ends on a block boundary, will add a full block in PKCS7!! if (enc1.Length == enc2.Length) { if (Compare.AreEqual(enc1, enc2) == false) { throw new Exception("Encrypted output is not equal!"); } byte[] dec1 = DecryptRDX(key, iv, data, Padding); byte[] dec2 = DecryptManaged(key, iv, data, mngPad); if (Compare.AreEqual(dec1, dec2) == false) { throw new Exception("Decrypted output is not equal to input data!"); } } }
private void CompareBlocks() { using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { byte[] key = new byte[32]; byte[] iv = new byte[8]; byte[] data = new byte[640]; rng.GetBytes(key); rng.GetBytes(iv); rng.GetBytes(data); byte[] enc1 = SalsaA(key, iv, data); byte[] enc2 = SalsaB(key, iv, data); if (Compare.AreEqual(enc1, enc2) == false) { throw new Exception("Encrypted output is not equal!"); } byte[] dec1 = SalsaA(key, iv, enc1); if (Compare.AreEqual(data, dec1) == false) { throw new Exception("Decrypted output is not equal to input data!"); } } }
public void AreEqualTest() { IComparer <int> comparer = Comparer <int> .Default; Assert.IsTrue(Compare.AreEqual(3, 3, comparer)); Assert.IsFalse(Compare.AreEqual(2, 3, comparer)); }
private void TestKey() { RLWEParameters encParams = RLWEParamSets.RLWEN256Q7681; RLWEKeyGenerator keyGen = new RLWEKeyGenerator(encParams); IAsymmetricKeyPair keyPair = keyGen.GenerateKeyPair(); byte[] enc, dec, data; // encrypt an array using (RLWEEncrypt cipher = new RLWEEncrypt(encParams)) { cipher.Initialize(keyPair.PublicKey); data = new byte[cipher.MaxPlainText]; new CSPRng().GetBytes(data); enc = cipher.Encrypt(data); } // decrypt the cipher text using (RLWEEncrypt cipher = new RLWEEncrypt(encParams)) { cipher.Initialize(keyPair.PrivateKey); dec = cipher.Decrypt(enc); } if (!Compare.AreEqual(dec, data)) { throw new Exception("TestKey test: decryption failure!"); } OnProgress(new TestEventArgs("Passed sub-key test")); }
private void TestEncrypt(RLWEParameters Param) { RLWEKeyGenerator mkgen = new RLWEKeyGenerator(Param); IAsymmetricKeyPair akp = mkgen.GenerateKeyPair(); byte[] enc; using (RLWEEncrypt mpe = new RLWEEncrypt(Param)) { mpe.Initialize(akp.PublicKey); int sz = mpe.MaxPlainText; byte[] data = new byte[sz]; new CSPRng().GetBytes(data); enc = mpe.Encrypt(data); mpe.Initialize(akp.PrivateKey); byte[] dec = mpe.Decrypt(enc); if (!Compare.AreEqual(dec, data)) { throw new Exception("Encryption test: decryption failure!"); } OnProgress(new TestEventArgs(string.Format("Passed N:{0} Q:{1} encryption test", Param.N, Param.Q))); } }
private void MultTest() { IntegerPolynomial i1 = new IntegerPolynomial(new int[] { 1368, 2047, 672, 871, 1662, 1352, 1099, 1608 }); IntegerPolynomial i2 = new IntegerPolynomial(new int[] { 1729, 1924, 806, 179, 1530, 1381, 1695, 60 }); LongPolynomial2 a = new LongPolynomial2(i1); LongPolynomial2 b = new LongPolynomial2(i2); IntegerPolynomial c1 = i1.Multiply(i2, 2048); IntegerPolynomial c2 = a.Multiply(b).ToIntegerPolynomial(); if (!Compare.AreEqual(c1.Coeffs, c2.Coeffs)) { throw new Exception("LongPolynomial2 multiply test failed!"); } // test 10 random polynomials Random rng = new Random(); for (int i = 0; i < 10; i++) { int N = 2 + rng.Next(2000); i1 = (IntegerPolynomial)PolynomialGeneratorForTesting.GenerateRandom(N, 2048); i2 = (IntegerPolynomial)PolynomialGeneratorForTesting.GenerateRandom(N, 2048); a = new LongPolynomial2(i1); b = new LongPolynomial2(i2); c1 = i1.Multiply(i2); c1.ModPositive(2048); c2 = a.Multiply(b).ToIntegerPolynomial(); if (!Compare.AreEqual(c1.Coeffs, c2.Coeffs)) { throw new Exception("LongPolynomial2 multiply test failed!"); } } }
/// <summary> /// Probability search for an item in an <see cref="IList{T}"/>. /// </summary> /// <remarks> /// <para> /// This method is an O(n) operation. /// </para> /// <para> /// If the item is found in the <see cref="IList{T}"/> then it's priority is increased by swapping it with it's predecessor in the <see cref="IList{T}"/>. /// </para> /// </remarks> /// <typeparam name="T">Type of the collection to search.</typeparam> /// <param name="list"><see cref="IList{T}"/> to search.</param> /// <param name="item">The item to search the <see cref="IList{T}"/> for.</param> /// <returns>True if the item was found; otherwise false.</returns> /// <exception cref="ArgumentNullException"><strong>list</strong> is <strong>null</strong>.</exception> public static bool ProbabilitySearch <T>(this IList <T> list, T item) { Guard.ArgumentNull(list, "list"); int i = 0; Comparer <T> comparer = Comparer <T> .Default; while (i < list.Count && !Compare.AreEqual(list[i], item, comparer)) { i++; } if (i >= list.Count || !Compare.AreEqual(list[i], item, comparer)) { return(false); } // we can increase the items' priority as the item is not the first element in the array if (i > 0) { T temp = list[i - 1]; list[i - 1] = list[i]; list[i] = temp; } return(true); }
public void AreEqual_SameObjectTest() { var testValue = true; var result = Compare.AreEqual(testValue, testValue); Assert.IsTrue(result); }
public void AreEqual_ValuesAreDefaultTest() { var testValue = default(bool?); var result = Compare.AreEqual(testValue, testValue); Assert.IsTrue(result); }
public void AreUnequal_ExpectedValueIsNullTest() { var actual = new StringFieldType("unequal"); var result = Compare.AreEqual(actual, null); Assert.IsFalse(result); }
public void AreEqual_SameObjectTest() { var actual = new StringFieldType("test"); var result = Compare.AreEqual(actual, actual); Assert.IsTrue(result); }
public void AreUnequal_ActualValueIsNullTest() { var expected = new StringFieldType("unequal"); var result = Compare.AreEqual(null, expected); Assert.IsFalse(result); }
public void AreUnequal_ActualValueIsNullTest() { var expected = new NestedObjectType(expectedField, expectedInt); var result = Compare.AreEqual(null, expected); Assert.IsFalse(result); }
public void AreEqual_SameObjectTest() { var test = new PrimitiveFieldsOnlyType(true, 55); var result = Compare.AreEqual(test, test); Assert.IsTrue(result); }
public void AreUnequal_ExpectedValueIsNullTest() { var actual = new NestedObjectType(actualField, actualInt); var result = Compare.AreEqual(actual, null); Assert.IsFalse(result); }