/// <summary cref="ICertificateStore.Open(string)" /> public virtual void Open(string location) { lock (m_lock) { location = Utils.ReplaceSpecialFolderNames(location); m_directory = new DirectoryInfo(location); m_certificateSubdir = new DirectoryInfo(m_directory.FullName + Path.DirectorySeparatorChar + "certs"); m_privateKeySubdir = new DirectoryInfo(m_directory.FullName + Path.DirectorySeparatorChar + "private"); } }
/// <summary cref="ICertificateStore.Open(string)" /> public void Open(string location) { lock (m_lock) { location = Utils.ReplaceSpecialFolderNames(location); m_directory = new DirectoryInfo(location); m_certificateSubdir = new DirectoryInfo(m_directory.FullName + "\\certs"); m_privateKeySubdir = new DirectoryInfo(m_directory.FullName + "\\private"); } }
/// <inheritdoc/> public void Open(string location, bool noPrivateKeys = false) { lock (m_lock) { var trimmedLocation = Utils.ReplaceSpecialFolderNames(location); if (m_directory?.FullName.Equals(trimmedLocation, StringComparison.Ordinal) != true || NoPrivateKeys != noPrivateKeys) { NoPrivateKeys = noPrivateKeys; StorePath = location; m_directory = new DirectoryInfo(trimmedLocation); m_certificateSubdir = new DirectoryInfo(Path.Combine(m_directory.FullName, "certs")); m_privateKeySubdir = new DirectoryInfo(Path.Combine(m_directory.FullName, "private")); m_certificates.Clear(); m_lastDirectoryCheck = DateTime.MinValue; } } }
/// <summary cref="ICertificateStore.Open(string)" /> public async Task Open(string location) { bool certsInRemovableStorageRootFound = false; IReadOnlyList <StorageFolder> folders = new List <StorageFolder>(); try { folders = await KnownFolders.RemovableDevices.GetFoldersAsync(); if (folders.Count > 0) { IReadOnlyList <StorageFile> files = await folders[0].GetFilesAsync(); if (files.Count > 0) { certsInRemovableStorageRootFound = true; } } } catch (Exception) { // do nothing } lock (m_lock) { if (certsInRemovableStorageRootFound && (folders.Count > 0)) { m_directory = new DirectoryInfo(folders[0].Path); m_certificateSubdir = m_directory; m_privateKeySubdir = m_directory; } else { location = Utils.ReplaceSpecialFolderNames(location); m_directory = new DirectoryInfo(location); m_certificateSubdir = new DirectoryInfo(m_directory.FullName + "\\certs"); m_privateKeySubdir = new DirectoryInfo(m_directory.FullName + "\\private"); } } }