Exemple #1
0
        public void GetCurrent_WithLocalScope_ShouldReturnExpectedInstance()
        {
            var localConverter = new AesPublicIdentityConverter(new byte[32]);

            using (new PublicIdentityScope(localConverter))
                Assert.Equal(localConverter, PublicIdentityScope.Current.Converter);
        }
        public void GetPublicRepresentation_Twice_ShouldYieldSameResult()
        {
            var key       = new byte[32];
            var converter = new AesPublicIdentityConverter(key);

            var first  = converter.GetPublicRepresentation(1UL);
            var second = converter.GetPublicRepresentation(1UL);

            Assert.Equal(second, first);
        }
        public void TryGetUlong_Twice_ShouldYieldSameResult()
        {
            var key       = new byte[32];
            var converter = new AesPublicIdentityConverter(key);
            var publicId  = converter.GetPublicRepresentation(1UL);

            var firstSucceeded  = converter.TryGetUlong(publicId, out var first);
            var secondSucceeded = converter.TryGetUlong(publicId, out var second);

            Assert.True(firstSucceeded);
            Assert.True(secondSucceeded);
            Assert.Equal(second, first);
        }
        public void Construct_WithSameKey_ShouldGenerateSameResults()
        {
            var key1 = new byte[32];

            key1[0] = 1;
            var key2 = new byte[32];

            key1.AsSpan().CopyTo(key2);

            var string1 = new AesPublicIdentityConverter(key1).GetPublicRepresentation(0UL);
            var string2 = new AesPublicIdentityConverter(key2).GetPublicRepresentation(0UL);

            Assert.Equal(string1, string2);             // A second custom key gives the same result as an identical first custom key
        }
Exemple #5
0
        public void GetCurrent_WithNestedLocalScope_ShouldReturnExpectedInstance()
        {
            var outerConverter = new AesPublicIdentityConverter(new byte[32]);

            using (new PublicIdentityScope(outerConverter))
            {
                var innerConverter = new AesPublicIdentityConverter(new byte[32]);
                using (new PublicIdentityScope(innerConverter))
                {
                    var converter = PublicIdentityScope.Current.Converter;
                    Assert.Equal(innerConverter, converter);
                    Assert.NotEqual(outerConverter, converter);
                }
            }
        }
        public void AddPublicIdentities_WithDifferentKey_ShouldGenerateDifferentResults()
        {
            var key0 = new byte[32];
            var key1 = new byte[32];

            key1[0] = 1;
            var key2 = new byte[32];

            key2[31] = 2;

            var string0 = new AesPublicIdentityConverter(key0).GetPublicRepresentation(0UL);
            var string1 = new AesPublicIdentityConverter(key1).GetPublicRepresentation(0UL);
            var string2 = new AesPublicIdentityConverter(key2).GetPublicRepresentation(0UL);

            Assert.NotEqual(string0, string1);             // A custom key gives a different result than an empty key
            Assert.NotEqual(string1, string2);             // A second custom key gives a different result than the first custom key
        }