/// <summary> /// Initializes a new instance of the <see cref="KeyVaultSignatureProvider"/> class. /// </summary> /// <param name="key">The <see cref="SecurityKey"/> that will be used for signature operations.</param> /// <param name="algorithm">The signature algorithm to apply.</param> /// <param name="willCreateSignatures">Whether this <see cref="KeyVaultSignatureProvider"/> is required to create signatures then set this to true.</param> /// <param name="client">A mock <see cref="IKeyVaultClient"/> used for testing purposes.</param> internal KeyVaultSignatureProvider(SecurityKey key, string algorithm, bool willCreateSignatures, IKeyVaultClient client) : base(key, algorithm) { _key = key as KeyVaultSecurityKey ?? throw LogHelper.LogArgumentNullException(nameof(key)); _client = client ?? new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(_key.Callback)); WillCreateSignatures = willCreateSignatures; switch (algorithm) { case SecurityAlgorithms.RsaSha256: _hash = SHA256.Create(); break; case SecurityAlgorithms.RsaSha384: _hash = SHA384.Create(); break; case SecurityAlgorithms.RsaSha512: _hash = SHA512.Create(); break; default: throw LogHelper.LogExceptionMessage(new ArgumentException(LogHelper.FormatInvariant(LogMessages.IDX10652, algorithm), nameof(algorithm))); } }
/// <summary> /// Initializes a new instance of the <see cref="KeyVaultKeyWrapProvider"/> class. /// </summary> /// <param name="key">The <see cref="SecurityKey"/> that will be used for key wrap operations.</param> /// <param name="algorithm">The key wrap algorithm to apply.</param> /// <param name="client">A mock <see cref="IKeyVaultClient"/> used for testing purposes.</param> internal KeyVaultKeyWrapProvider(SecurityKey key, string algorithm, IKeyVaultClient client) { _algorithm = string.IsNullOrEmpty(algorithm) ? throw LogHelper.LogArgumentNullException(nameof(algorithm)) : algorithm; if (key == null) { throw LogHelper.LogArgumentNullException(nameof(key)); } _key = key as KeyVaultSecurityKey ?? throw LogHelper.LogExceptionMessage(new NotSupportedException(key.GetType().ToString())); _client = client ?? new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(_key.Callback)); }