예제 #1
0
        public async Task DistributedCacheMetadataService_CacheSuppressionWorks()
        {
            var services = new ServiceCollection();

            var staticClient = new StaticMetadataRepository(null);

            var clients = new List <IMetadataRepository>();

            clients.Add(staticClient);

            services.AddDistributedMemoryCache();
            services.AddLogging();

            var provider = services.BuildServiceProvider();

            var memCache = provider.GetService <IDistributedCache>();

            var service = new DistributedCacheMetadataService(
                clients,
                memCache,
                provider.GetService <ILogger <DistributedCacheMetadataService> >());

            await service.Initialize();

            var entry = service.GetEntry(Guid.Parse("6d44ba9b-f6ec-2e49-b930-0c8fe920cb73"));

            Assert.True(entry.MetadataStatement.Description == "Yubico Security Key NFC");

            var cacheEntry = await memCache.GetStringAsync("DistributedCacheMetadataService:StaticMetadataRepository:Entry:6d44ba9b-f6ec-2e49-b930-0c8fe920cb73");

            Assert.Null(cacheEntry);
        }
예제 #2
0
        public Fido2Tests()
        {
            var MDSAccessKey = Environment.GetEnvironmentVariable("fido2:MDSAccessKey");
            //var CacheDir = Environment.GetEnvironmentVariable("fido2:MDSCacheDirPath");

            var services = new ServiceCollection();

            var staticClient = new StaticMetadataRepository();

            var repos = new List <IMetadataRepository>();

            repos.Add(staticClient);

            if (!string.IsNullOrEmpty(MDSAccessKey))
            {
                repos.Add(new Fido2MetadataServiceRepository(MDSAccessKey, null));
            }

            services.AddDistributedMemoryCache();
            services.AddLogging();

            var provider = services.BuildServiceProvider();

            var memCache = provider.GetService <IDistributedCache>();

            var service = new DistributedCacheMetadataService(
                repos,
                memCache,
                provider.GetService <ILogger <DistributedCacheMetadataService> >());

            service.Initialize().Wait();

            _metadataService = service;

            _config = new Fido2Configuration {
                Origin = "https://localhost:44329"
            };
        }
        static Fido2Tests()
        {
            var MDSAccessKey = Environment.GetEnvironmentVariable("fido2:MDSAccessKey");

            var services = new ServiceCollection();

            var staticClient = new StaticMetadataRepository();

            var repos = new List <IMetadataRepository>();

            repos.Add(staticClient);

            if (!string.IsNullOrEmpty(MDSAccessKey))
            {
                repos.Add(new Fido2MetadataServiceRepository(MDSAccessKey, null));
            }

            services.AddDistributedMemoryCache();
            services.AddLogging();

            var provider = services.BuildServiceProvider();

            var memCache = provider.GetService <IDistributedCache>();

            var service = new DistributedCacheMetadataService(
                repos,
                memCache,
                provider.GetService <ILogger <DistributedCacheMetadataService> >());

            service.Initialize().Wait();

            _metadataService = service;

            _config = new Fido2Configuration {
                Origin = "https://localhost:44329"
            };

            _validCOSEParameters = new List <object[]>();

            _validCOSEParameters.Add(new object[3] {
                COSE.KeyType.EC2, COSE.Algorithm.ES256, COSE.EllipticCurve.P256
            });
            _validCOSEParameters.Add(new object[3] {
                COSE.KeyType.EC2, COSE.Algorithm.ES384, COSE.EllipticCurve.P384
            });
            _validCOSEParameters.Add(new object[3] {
                COSE.KeyType.EC2, COSE.Algorithm.ES512, COSE.EllipticCurve.P521
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.RS256
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.RS384
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.RS512
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.PS256
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.PS384
            });
            _validCOSEParameters.Add(new object[2] {
                COSE.KeyType.RSA, COSE.Algorithm.PS512
            });
            _validCOSEParameters.Add(new object[3] {
                COSE.KeyType.OKP, COSE.Algorithm.EdDSA, COSE.EllipticCurve.Ed25519
            });
        }