コード例 #1
0
        /// <inheritdoc />
        public Task <IMessageEncryptionService> CreateMessageEncryptionService(IConfiguration configuration)
        {
            IMessageEncryptionService messageEncryptionService = null;
            var enabled = configuration != null && configuration.GetValue("enabled", false);

            if (enabled)
            {
                var key = (HexEncodedSecurityKey)configuration.GetValue <string>("key");
                if (key == null)
                {
                    throw new ConfigurationErrorsException("Attribute 'key' is required for AES message encryption service");
                }

                var fallbackKeys = configuration.GetSection("fallbackKeys")
                                   .GetChildren()
                                   .Select(k => (HexEncodedSecurityKey)k.Value)
                                   .ToList();

                var aesOptions = new AesMessageEncryptionOptions(key)
                {
                    FallbackKeys = fallbackKeys
                };
                messageEncryptionService = new AesMessageEncryptionService(aesOptions);
            }
            return(Task.FromResult(messageEncryptionService));
        }
コード例 #2
0
        /// <inheritdoc />
        public Task <IMessageEncryptionService> CreateMessageEncryptionService(EncryptionElement configuration)
        {
            IMessageEncryptionService messageEncryptionService = null;
            var enabled = configuration.Enabled;

            if (enabled)
            {
                var key = (HexEncodedSecurityKey)configuration.Key;
                if (key == null)
                {
                    throw new ConfigurationErrorsException("Attribute 'key' is required for AES message encryption service");
                }

                var fallbackKeys = configuration.FallbackKeys.Select(k => (HexEncodedSecurityKey)k.Key).ToList();
                var aesOptions   = new AesMessageEncryptionOptions(key)
                {
                    FallbackKeys = fallbackKeys
                };
                messageEncryptionService = new AesMessageEncryptionService(aesOptions);
            }
            return(Task.FromResult(messageEncryptionService));
        }