public CryptographyService(ICryptographicEngine cryptographicEngine, ISymmetricKeyAlgorithmProviderFactory symmetricKeyAlgorithmProviderFactory, IHashAlgorithmProviderFactory hashAlgorithmProviderFactory, ILogger logger) { _cryptographicEngine = cryptographicEngine; _symmetricKeyAlgorithmProviderFactory = symmetricKeyAlgorithmProviderFactory; _hashAlgorithmProviderFactory = hashAlgorithmProviderFactory; _logger = logger; }
/// <summary>Returns a crypto key management for a specified algorithm.</summary> /// <param name="factory">The factory.</param> /// <param name="algorithm">The algorithm.</param> /// <returns>An instance of <see cref="ISymmetricKeyAlgorithmProvider"/>.</returns> public static ISymmetricKeyAlgorithmProvider OpenAlgorithm(this ISymmetricKeyAlgorithmProviderFactory factory, SymmetricAlgorithm algorithm) { Requires.NotNull(factory, nameof(factory)); return(factory.OpenAlgorithm(algorithm.GetName(), algorithm.GetMode(), algorithm.GetPadding())); }