public virtual string GetSecret(string secretPath) { var encryptedSetting = ConfigRoot[secretPath]; var secretSetting = (SecretSetting)null; if (encryptedSetting == null) { return(null); } if (_secretsContainer.ContainsKey(secretPath) == false) { secretSetting = new SecretSetting(); _secretsContainer.Add(secretPath, secretSetting); } secretSetting = _secretsContainer[secretPath]; if (encryptedSetting.Equals(secretSetting.SecuredValue)) { return(secretSetting.Value); } secretSetting.SecuredValue = encryptedSetting; var base64IV = Environment.GetEnvironmentVariable("APP_SECRET_IV"); var base64Key = Environment.GetEnvironmentVariable("APP_SECRET_KEY"); using (var cypher = new AesManaged()) { cypher.IV = Convert.FromBase64String(base64IV); cypher.Key = Convert.FromBase64String(base64Key); using (var decryptor = cypher.CreateDecryptor()) { var bytesSecuredValue = Convert.FromBase64String(secretSetting.SecuredValue); var bytesCleanValue = decryptor.TransformFinalBlock(bytesSecuredValue, 0, bytesSecuredValue.Length); secretSetting.Value = Encoding.UTF8.GetString(bytesCleanValue); return(secretSetting.Value); } } }
public AdminController(IAdminService _adminService, IOptions <SecretSetting> _secretSetting) { adminService = _adminService; secretSetting = _secretSetting.Value; }
public AdminService(ApplicationDbContext _applicationDb, IOptions <SecretSetting> _secretSetting) { applicationDb = _applicationDb; secretSetting = _secretSetting.Value; }