/// <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)); }
/// <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)); }