public void testMatchingFingerprints()
        {
            ECKeyPair aliceKeyPair = Curve.generateKeyPair();
            ECKeyPair bobKeyPair   = Curve.generateKeyPair();

            IdentityKey aliceIdentityKey = new IdentityKey(aliceKeyPair.getPublicKey());
            IdentityKey bobIdentityKey   = new IdentityKey(bobKeyPair.getPublicKey());

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(1024);
            Fingerprint aliceFingerprint          = generator.createFor("+14152222222", aliceIdentityKey,
                                                                        "+14153333333", bobIdentityKey);

            Fingerprint bobFingerprint = generator.createFor("+14153333333", bobIdentityKey,
                                                             "+14152222222", aliceIdentityKey);

            Assert.AreEqual <string>(aliceFingerprint.getDisplayableFingerprint().getDisplayText(),
                                     bobFingerprint.getDisplayableFingerprint().getDisplayText());

            Assert.IsTrue(
                aliceFingerprint.getScannableFingerprint().compareTo(
                    bobFingerprint.getScannableFingerprint().getSerialized()));
            Assert.IsTrue(
                bobFingerprint.getScannableFingerprint().compareTo(
                    aliceFingerprint.getScannableFingerprint().getSerialized()));

            Assert.AreEqual <int>(aliceFingerprint.getDisplayableFingerprint().getDisplayText().Length, 60);
        }
        public void testMismatchingFingerprints()
        {
            ECKeyPair aliceKeyPair = Curve.generateKeyPair();
            ECKeyPair bobKeyPair   = Curve.generateKeyPair();
            ECKeyPair mitmKeyPair  = Curve.generateKeyPair();

            IdentityKey aliceIdentityKey = new IdentityKey(aliceKeyPair.getPublicKey());
            IdentityKey bobIdentityKey   = new IdentityKey(bobKeyPair.getPublicKey());
            IdentityKey mitmIdentityKey  = new IdentityKey(mitmKeyPair.getPublicKey());

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(1024);
            Fingerprint aliceFingerprint          = generator.createFor(VERSION_1,
                                                                        Encoding.UTF8.GetBytes("+14152222222"), aliceIdentityKey,
                                                                        Encoding.UTF8.GetBytes("+14153333333"), mitmIdentityKey);

            Fingerprint bobFingerprint = generator.createFor(VERSION_1,
                                                             Encoding.UTF8.GetBytes("+14153333333"), bobIdentityKey,
                                                             Encoding.UTF8.GetBytes("+14152222222"), aliceIdentityKey);

            Assert.AreNotEqual(aliceFingerprint.getDisplayableFingerprint().getDisplayText(),
                               bobFingerprint.getDisplayableFingerprint().getDisplayText());

            Assert.IsFalse(aliceFingerprint.getScannableFingerprint().compareTo(bobFingerprint.getScannableFingerprint().getSerialized()));
            Assert.IsFalse(bobFingerprint.getScannableFingerprint().compareTo(aliceFingerprint.getScannableFingerprint().getSerialized()));
        }
        public void TestMismatchingIdentifiers()
        {
            EcKeyPair aliceKeyPair = Curve.GenerateKeyPair();
            EcKeyPair bobKeyPair   = Curve.GenerateKeyPair();

            IdentityKey aliceIdentityKey = new IdentityKey(aliceKeyPair.GetPublicKey());
            IdentityKey bobIdentityKey   = new IdentityKey(bobKeyPair.GetPublicKey());

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(1024);
            Fingerprint aliceFingerprint          = generator.CreateFor("+141512222222", aliceIdentityKey,
                                                                        "+14153333333", bobIdentityKey);

            Fingerprint bobFingerprint = generator.CreateFor("+14153333333", bobIdentityKey,
                                                             "+14152222222", aliceIdentityKey);

            Assert.AreNotEqual <string>(aliceFingerprint.GetDisplayableFingerprint().GetDisplayText(),
                                        bobFingerprint.GetDisplayableFingerprint().GetDisplayText());
            Assert.IsFalse(aliceFingerprint.GetScannableFingerprint().CompareTo(bobFingerprint.GetScannableFingerprint().GetSerialized()));
            Assert.IsFalse(bobFingerprint.GetScannableFingerprint().CompareTo(aliceFingerprint.GetScannableFingerprint().GetSerialized()));
        }
        public void testVectors()
        {
            return; //disable for now

            IdentityKey aliceIdentityKey = new IdentityKey(ALICE_IDENTITY, 0);
            IdentityKey bobIdentityKey   = new IdentityKey(BOB_IDENTITY, 0);

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(5200);
            Fingerprint aliceFingerprint          = generator.createFor(
                "+14152222222", aliceIdentityKey,
                "+14153333333", bobIdentityKey);

            Fingerprint bobFingerprint = generator.createFor(
                "+14153333333", bobIdentityKey,
                "+14152222222", aliceIdentityKey);

            Assert.AreEqual(aliceFingerprint.getDisplayableFingerprint().getDisplayText(), DISPLAYABLE_FINGERPRINT);
            Assert.AreEqual(bobFingerprint.getDisplayableFingerprint().getDisplayText(), DISPLAYABLE_FINGERPRINT);

            CollectionAssert.AreEqual(aliceFingerprint.getScannableFingerprint().getSerialized(), ALICE_SCANNABLE_FINGERPRINT);
            CollectionAssert.AreEqual(bobFingerprint.getScannableFingerprint().getSerialized(), BOB_SCANNABLE_FINGERPRINT);
        }
Esempio n. 5
0
        public void testMismatchingIdentifiers()
        {
            ECKeyPair aliceKeyPair = Curve.generateKeyPair();
            ECKeyPair bobKeyPair   = Curve.generateKeyPair();

            IdentityKey aliceIdentityKey = new IdentityKey(aliceKeyPair.getPublicKey());
            IdentityKey bobIdentityKey   = new IdentityKey(bobKeyPair.getPublicKey());

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(1024);
            Fingerprint aliceFingerprint          = generator.createFor("+141512222222", aliceIdentityKey,
                                                                        "+14153333333", bobIdentityKey);

            Fingerprint bobFingerprint = generator.createFor("+14153333333", bobIdentityKey,
                                                             "+14152222222", aliceIdentityKey);

            Assert.AreNotEqual <string>(aliceFingerprint.getDisplayableFingerprint().getDisplayText(),
                                        bobFingerprint.getDisplayableFingerprint().getDisplayText());

            try
            {
                ;
                aliceFingerprint.getScannableFingerprint().compareTo(bobFingerprint.getScannableFingerprint().getSerialized());
                throw new Exception("Should mismatch!");
            }
            catch (FingerprintIdentifierMismatchException)
            {
                // good
            }

            try
            {
                bobFingerprint.getScannableFingerprint().compareTo(aliceFingerprint.getScannableFingerprint().getSerialized());
                throw new Exception("Should mismatch!");
            }
            catch (FingerprintIdentifierMismatchException)
            {
                // good
            }
        }
        public void TestVectors()
        {
            return; //disable for now

            IdentityKey aliceIdentityKey = new IdentityKey(AliceIdentity, 0);
            IdentityKey bobIdentityKey   = new IdentityKey(BobIdentity, 0);

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(5200);
            Fingerprint aliceFingerprint          = generator.CreateFor(
                "+14152222222", aliceIdentityKey,
                "+14153333333", bobIdentityKey);

            Fingerprint bobFingerprint = generator.CreateFor(
                "+14153333333", bobIdentityKey,
                "+14152222222", aliceIdentityKey);

            Assert.AreEqual(aliceFingerprint.GetDisplayableFingerprint().GetDisplayText(), DisplayableFingerprint);
            Assert.AreEqual(bobFingerprint.GetDisplayableFingerprint().GetDisplayText(), DisplayableFingerprint);

            CollectionAssert.AreEqual(aliceFingerprint.GetScannableFingerprint().GetSerialized(), AliceScannableFingerprint);
            CollectionAssert.AreEqual(bobFingerprint.GetScannableFingerprint().GetSerialized(), BobScannableFingerprint);
        }
        public void testVectorsVersion2()
        {
            IdentityKey aliceIdentityKey = new IdentityKey(ALICE_IDENTITY, 0);
            IdentityKey bobIdentityKey   = new IdentityKey(BOB_IDENTITY, 0);

            byte[] aliceStableId = Encoding.UTF8.GetBytes("+14152222222");
            byte[] bobStableId   = Encoding.UTF8.GetBytes("+14153333333");

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(5200);

            Fingerprint aliceFingerprint = generator.createFor(VERSION_2,
                                                               aliceStableId, aliceIdentityKey,
                                                               bobStableId, bobIdentityKey);

            Fingerprint bobFingerprint = generator.createFor(VERSION_2,
                                                             bobStableId, bobIdentityKey,
                                                             aliceStableId, aliceIdentityKey);

            Assert.AreEqual(DISPLAYABLE_FINGERPRINT_V2, aliceFingerprint.getDisplayableFingerprint().getDisplayText());
            Assert.AreEqual(DISPLAYABLE_FINGERPRINT_V2, bobFingerprint.getDisplayableFingerprint().getDisplayText());

            CollectionAssert.AreEqual(ALICE_SCANNABLE_FINGERPRINT_V2, aliceFingerprint.getScannableFingerprint().getSerialized());
            CollectionAssert.AreEqual(BOB_SCANNABLE_FINGERPRINT_V2, bobFingerprint.getScannableFingerprint().getSerialized());
        }
        public void testDifferentVersionsMakeSameFingerPrintsButDifferentScannable()
        {
            IdentityKey aliceIdentityKey = new IdentityKey(ALICE_IDENTITY, 0);
            IdentityKey bobIdentityKey   = new IdentityKey(BOB_IDENTITY, 0);

            byte[] aliceStableId = Encoding.UTF8.GetBytes("+14152222222");
            byte[] bobStableId   = Encoding.UTF8.GetBytes("+14153333333");

            NumericFingerprintGenerator generator = new NumericFingerprintGenerator(5200);

            Fingerprint aliceFingerprintV1 = generator.createFor(VERSION_1,
                                                                 aliceStableId, aliceIdentityKey,
                                                                 bobStableId, bobIdentityKey);

            Fingerprint aliceFingerprintV2 = generator.createFor(VERSION_2,
                                                                 aliceStableId, aliceIdentityKey,
                                                                 bobStableId, bobIdentityKey);

            Assert.IsTrue(aliceFingerprintV1.getDisplayableFingerprint().getDisplayText() ==
                          aliceFingerprintV2.getDisplayableFingerprint().getDisplayText());

            CollectionAssert.AreNotEqual(aliceFingerprintV1.getScannableFingerprint().getSerialized(),
                                         aliceFingerprintV2.getScannableFingerprint().getSerialized());
        }