private void ImportCertificateToStoreBTN_Click(object sender, EventArgs e)
{
try
{
const string caption = "Import Certificate";
CertificateStoreIdentifier list1 = new CertificateStoreIdentifier();
list1.StoreType = ManagedStoreCTRL.StoreType;
list1.StorePath = ManagedStoreCTRL.StorePath;
// set current directory.
if (m_currentDirectory == null)
{
m_currentDirectory = Utils.GetAbsoluteDirectoryPath("%CommonApplicationData%\\OPC Foundation\\CertificateStores\\UA Applications", false, false);
}
if (m_currentDirectory == null)
{
m_currentDirectory = new FileInfo(Application.ExecutablePath).DirectoryName;
}
// open file dialog.
OpenFileDialog dialog = new OpenFileDialog();
dialog.CheckFileExists = true;
dialog.CheckPathExists = true;
dialog.DefaultExt = ".der";
dialog.Filter = "DER Files (*.der)|*.der|PKCS #12 Files (*.pfx)|*.pfx|All Files (*.*)|*.*";
dialog.Multiselect = false;
dialog.ValidateNames = true;
dialog.Title = caption;
dialog.FileName = null;
dialog.InitialDirectory = m_currentDirectory;
dialog.RestoreDirectory = true;
if (dialog.ShowDialog() != DialogResult.OK)
{
return;
}
FileInfo fileInfo = new FileInfo(dialog.FileName);
m_currentDirectory = fileInfo.Directory.FullName;
if (!fileInfo.Exists)
{
return;
}
X509Certificate2 certificate = new X509Certificate2(fileInfo.FullName, (string)null, X509KeyStorageFlags.Exportable);
ValidateAndImport(list1, certificate);
}
catch (Exception exception)
{
GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception);
}
}