예제 #1
0
 /// <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");
     }
 }
예제 #2
0
        /// <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");
                }
            }
        }