Пример #1
0
 /// <summary>
 /// Установка пароля доступа к контейнеру.
 /// </summary>
 ///
 /// <param name="password">Пароль доступа к контейнеру.</param>
 ///
 /// <remarks><para>Если ключ уже загружен в память, то поведение
 /// данной функции зависит от провайдера, обычно проверяется
 /// соответствие передаваемого пароля и пароля
 /// доступа на контейнер.</para>
 /// <para>Если ключ не был загружен в память, данная функция
 /// не проверяет корректность вводимого пароля, а только
 /// запоминает его. Проверка правильности введенного пароля
 /// будет происходить при доступе к ключу, например при
 /// операции подписи. </para></remarks>
 public void SetContainerPassword(SecureString password)
 {
     //Специально не документируем поведение при password == null
     //комментарий см. CPUtils.SetPin
     if (PublicOnly)
     {
         throw new CryptographicException(
                   SR.Cryptography_CSP_NoPrivateKey);
     }
     GetKeyPair();
     CapiHelper.SetPin(_safeProvHandle, password, this._keySpec);
 }