An abstract, extendable interface for storing and retrieving secrets in .NET