/// <summary> /// Configures keys to be encrypted with Windows CNG DPAPI before being persisted to storage. /// </summary> /// <param name="protectionDescriptorRule">The descriptor rule string with which to protect the key material.</param> /// <param name="flags">Flags that should be passed to the call to 'NCryptCreateProtectionDescriptor'. /// The default value of this parameter is <see cref="DpapiNGProtectionDescriptorFlags.None"/>.</param> /// <returns>The 'this' instance.</returns> /// <remarks> /// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh769091(v=vs.85).aspx /// and https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx /// for more information on valid values for the the <paramref name="descriptor"/> /// and <paramref name="flags"/> arguments. /// This API is only supported on Windows 8 / Windows Server 2012 and higher. /// </remarks> public DataProtectionConfiguration ProtectKeysWithDpapiNG(string protectionDescriptorRule, DpapiNGProtectionDescriptorFlags flags) { if (protectionDescriptorRule == null) { throw new ArgumentNullException(nameof(protectionDescriptorRule)); } Use(DataProtectionServiceDescriptors.IXmlEncryptor_DpapiNG(protectionDescriptorRule, flags)); return(this); }
/// <summary> /// Configures keys to be encrypted with Windows CNG DPAPI before being persisted to storage. /// </summary> /// <param name="builder">The <see cref="IDataProtectionBuilder"/>.</param> /// <param name="protectionDescriptorRule">The descriptor rule string with which to protect the key material.</param> /// <param name="flags">Flags that should be passed to the call to 'NCryptCreateProtectionDescriptor'. /// The default value of this parameter is <see cref="DpapiNGProtectionDescriptorFlags.None"/>.</param> /// <returns>A reference to the <see cref="IDataProtectionBuilder" /> after this operation has completed.</returns> /// <remarks> /// See https://msdn.microsoft.com/en-us/library/windows/desktop/hh769091(v=vs.85).aspx /// and https://msdn.microsoft.com/en-us/library/windows/desktop/hh706800(v=vs.85).aspx /// for more information on valid values for the the <paramref name="protectionDescriptorRule"/> /// and <paramref name="flags"/> arguments. /// This API is only supported on Windows 8 / Windows Server 2012 and higher. /// </remarks> public static IDataProtectionBuilder ProtectKeysWithDpapiNG(this IDataProtectionBuilder builder, string protectionDescriptorRule, DpapiNGProtectionDescriptorFlags flags) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (protectionDescriptorRule == null) { throw new ArgumentNullException(nameof(protectionDescriptorRule)); } Use(builder.Services, DataProtectionServiceDescriptors.IXmlEncryptor_DpapiNG(protectionDescriptorRule, flags)); return(builder); }