Пример #1
0
 /// <summary>
 /// Экспортирует параметры алгоритма в BLOB.
 /// </summary>
 ///
 /// <param name="includePrivateParameters">Для экспорта секретного
 /// ключа.</param>
 ///
 /// <returns>BLOB со структурой описанной для CSP.</returns>
 ///
 /// <remarks><para>Экспорт секретного ключа не поддерживается.
 /// </para></remarks>
 ///
 /// <exception cref="CryptographicException">При экспорте секретного
 /// ключа.</exception>
 ///
 /// <containerperm flag="Open">Для открытия существующего
 /// контейнера.</containerperm>
 /// <containerperm flag="Create">Для создания контейнера с заданным
 /// (не случаыным именем).</containerperm>
 ///
 /// <intdoc>Экспорт секретного ключа запрещен, поэтому
 /// не требуются права на экспорт. При экспорте открытого
 /// ключа может потребоваться открытие (создание) контейнера,
 /// поэтому требование прав на открытие.</intdoc>
 public byte[] ExportCspBlob(bool includePrivateParameters)
 {
     // Права на экспорт / импорт проверять бесполезно
     // CSP все равно не поддерживает. Бесполезно да же эмулировать:
     // сделать с этим BLOB потом ничего нельзя.
     if (includePrivateParameters)
     {
         throw new CryptographicException(SR.Argument_InvalidValue, "includePrivateParameters equal true ");
     }
     return(CapiHelper.ExportKeyBlob(includePrivateParameters, SafeKeyHandle));
 }
 /// <summary>
 ///Exports a blob containing the key information associated with an RSACryptoServiceProvider object.
 /// </summary>
 public byte[] ExportCspBlob(bool includePrivateParameters)
 {
     return(CapiHelper.ExportKeyBlob(includePrivateParameters, SafeKeyHandle));
 }