public static void ShowImportCertificate(X509Certificate2 certificate, IWin32Window parent = null) { var cryptuiWizImportSrcInfo = new CRYPTUI_WIZ_IMPORT_SRC_INFO(); cryptuiWizImportSrcInfo.dwSize = (uint)Marshal.SizeOf(typeof(CRYPTUI_WIZ_IMPORT_SRC_INFO)); cryptuiWizImportSrcInfo.dwSubjectChoice = ImportSourceSubjectChoice.CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT; cryptuiWizImportSrcInfo.pCertContext = certificate.Handle; cryptuiWizImportSrcInfo.pwszPassword = ""; cryptuiWizImportSrcInfo.dwFlags = 0u; if (!Cryptui.CryptUIWizImport(ImportCertificateFlags.CRYPTUI_WIZ_IMPORT_ALLOW_CERT, parent?.Handle ?? IntPtr.Zero, "Fiddler: Import Certificate", ref cryptuiWizImportSrcInfo, IntPtr.Zero) && Marshal.GetLastWin32Error() != WinErr.ERROR_CANCELLED) { MessageBox.Show("An error occurred installing the certificate."); } }
public static extern bool CryptUIWizImport(ImportCertificateFlags dwFlags, IntPtr hwndParent, string pwszWizardTitle, ref CRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, IntPtr hDestCertStore);