·  bool IsClosed – проверка закрытия объекта, связанного с дескриптором;

·  bool IsInvalid – проверка допустимости значения дескриптора.

Конструктор класса SafeNCryptSecretHandle не имеет параметров. Этот класс включает следующие методы:

·  void Close() – освобождение дескриптора и связанного с ним объекта;

·  IntPtr DangerousGetHandle() – получение значения дескриптора;

·  bool ReleaseHandle() – освобождение ресурсов объекта CNG, связанного с дескриптором и возвращение true, если оно завершилось успешно;

·  void SetHandleAsInvalid() – задание дескриптора как более не используемого.

Класс CngAlgorithm позволяет создавать объекты для асимметричных криптоалгоритмов и алгоритмов хеширования. Этот класс включает следующие свойства:

·  string Algorithm – имя криптоалгоритма;

·  static CngAlgorithm ECDiffieHellmanP256 – объект для протокола обмена секретными ключами Диффи-Хеллмана на эллиптических кривых с модулем 256 бит;

·  static CngAlgorithm ECDiffieHellmanP384 ECDiffieHellmanP256 – объект для протокола Диффи-Хеллмана на эллиптических кривых с модулем 384 бит;

·  static CngAlgorithm ECDiffieHellmanP521– объект для протокола Диффи-Хеллмана на эллиптических кривых с модулем 521 бит;

·  static CngAlgorithm ECDsaP256 – объект для алгоритма электронной цифровой подписи DSA (digital signature algorithm) на эллиптических кривых с модулем 256 бит;

·  static CngAlgorithm ECDsaP384 – объект для алгоритма электронной цифровой подписи DSA на эллиптических кривых с модулем 384 бит;

НЕ нашли? Не то? Что вы ищете?

·  static CngAlgorithm ECDsaP521 – объект для алгоритма электронной цифровой подписи DSA на эллиптических кривых с модулем 521 бит;

·  static CngAlgorithm MD5 – объект для алгоритма хеширования MD5;

·  static CngAlgorithm Sha1 – объект для алгоритма хеширования SHA1;

·  static CngAlgorithm Sha256 – объект для алгоритма хеширования SHA256;

·  static CngAlgorithm Sha384 – объект для алгоритма хеширования SHA384;

·  static CngAlgorithm Sha512 – объект для алгоритма хеширования SHA512.

Конструктор класса CngAlgorithm имеет параметр – строку с именем криптоалгоритма. Данный конструктор может использоваться для создания объектов класса для алгоритмов, которые не представлены статическими свойствами класса и поддерживает дальнейшее развитие криптографии нового поколения.

В классе CngAlgorithm определены методы для перегрузки операций == и!=:

·  static bool operator ==(CngAlgorithm left, CngAlgorithm right);

·  static bool operator !=(CngAlgorithm left, CngAlgorithm right).

Класс CngAlgorithmGroup (группа криптоалгоритмов) включает свойства:

·  string AlgorithmGroup – строка с именем группы криптоалгоритмов;

·  static CngAlgorithmGroup DiffieHellman – объект для семейства протоколов Диффи-Хеллмана;

·  static CngAlgorithmGroup Dsa – объект для семейства алгоритмов DSA;

·  static CngAlgorithmGroup ECDiffieHellman – объект для семейства протоколов Диффи-Хеллмана на эллиптических кривых;

·  static CngAlgorithmGroup ECDsa – объект для семейства алгоритмов DSA на эллиптических кривых;

·  static CngAlgorithmGroup Rsa – объект для семейства алгоритмов RSA.

Конструктор CngAlgorithmGroup имеет параметр – строку с именем группы криптоалгоритмов. Основная цель использования данного конструктора — предоставление возможности создания объектов CngAlgorithmGroup для групп алгоритмов, которые не представлены статическими свойствами этого класса.

В классе CngAlgorithmGroup определены методы для перегрузки операций == и!=:

·  static bool operator ==(CngAlgorithmGroup left, CngAlgorithmGroup right);

·  static bool operator !=(CngAlgorithmGroup left, CngAlgorithmGroup right).

Класс CngProvider (криптопровайдер для криптографии нового поколения) имеет свойства:

·  static CngProvider MicrosoftSmartCardKeyStorageProvider – объект для аппаратного криптопровайдера Microsoft на базе смарт-карт;

·  static CngProvider MicrosoftSoftwareKeyStorageProvider – объект для программного криптопровайдера Microsoft;

·  string Provider – имя криптопровайдера, связанного с объектом.

Конструктор класса CngProvider имеет параметр – строку с именем криптопровайдера, отличного от криптопровайдеров Microsoft. Методы класса CngProvider перегружают операции == и!=:

·  static bool operator ==(CngProvider left, CngProvider right);

·  static bool operator !=(CngProvider left, CngProvider right).

В классе CngKeyCreationParameters (параметры создаваемой пары асимметричных ключей) определены следующие свойства:

·  Nullable<CngExportPolicies> ExportPolicy – параметры политики экспорта ключей;

·  CngKeyCreationOptions KeyCreationOptions – параметры создания ключей (перечисление CngKeyCreationOptions включает значения None, если никакие параметры при создании ключей не используются, MachineKey, если ключи создаются в профиле компьютера, OverwriteExistingKey, если перезаписываются существующие ключи);

·  Nullable<CngKeyUsages> KeyUsage – область применения (назначение) пары ключей;

·  CngPropertyCollection Parameters – дополнительные параметры пары ключей (класс CngPropertyCollection будет описан далее);

·  IntPtr ParentWindowHandle – дескриптор родительского окна для диалоговых окон, создаваемых объектами классов CNG при создании ключей;

·  CngProvider Provider – криптопровайдер, обеспечивающий хранение ключей;

·  CngUIPolicy UIPolicy – информация о пользовательском интерфейсе, отображаемом при создании пары ключей.

Конструктор класса CngKeyCreationParameters не имеет параметров.

Класс CngUIPolicy (параметры пользовательского интерфейса, отображаемого при получении доступа к закрытому ключу асимметричного шифрования) содержит следующие свойства:

·  string CreationTitle – текст заголовка диалогового окна, отображаемого при получении доступа к закрытому ключу;

·  string Description – поясняющий текст внутри диалогового окна;

·  string FriendlyName – дружественное (понятное) имя ключа, к которому запрашивается доступ;

·  CngUIProtectionLevels ProtectionLevel – уровень защиты закрытого ключа (перечисление CngUIProtectionLevels включает значения None, если пользовательский интерфейс не отображается, ProtectKey, если интерфейс отображается при первом доступе к закрытому ключу в процессе, ForceHighProtection, если интерфейс отображается при любом доступе к закрытому ключу);

·  string UseContext – описание контекста использования ключей.

Класс CngUIPolicy имеет конструкторы с параметрами:

·  CngUIProtectionLevels protectionLevel (уровень защиты закрытого ключа);

·  CngUIProtectionLevels protectionLevel, string friendlyName (уровень защиты ключа и его дружественное имя);

·  CngUIProtectionLevels protectionLevel, string friendlyName, string description (уровень защиты, дружественное имя и пояснение);

·  CngUIProtectionLevels protectionLevel, string friendlyName, string description, string useContext (уровень защиты, дружественное имя, пояснение и область применения ключа);

·  CngUIProtectionLevels protectionLevel, string friendlyName, string description, string useContext, string creationTitle (уровень защиты, дружественное имя, пояснение, область применения ключа и заголовок диалогового окна).

Объекты класса CngUIPolicy могут, например, использоваться для отображения диалогового окна ввода PIN-кода при доступе к закрытому ключу на смарт-карте.

Класс CngPropertyCollection (набор свойств объектов классов CNG) содержит следующие свойства:

·  int Count – количество свойств в наборе;

·  int index – индекс свойства в наборе;

·  IList<T> Items – список свойств.

Конструктор класса CngPropertyCollection не имеет параметров. В этом классе также определены методы;

·  void Add(T item) – добавление свойства в набор;

·  void Clear() – удаление всех свойств из набора;

·  virtual void ClearItems() – удаление всех элементов из набора (переопределяемый метод);

·  bool Contains(T item) – проверка вхождения свойства в набор;

·  void CopyTo(T[] array, int index) – копирование набора свойств в массив array, начиная с индекса index;

·  IEnumerator<T> GetEnumerator() – объект для перебора свойств в наборе;

·  int IndexOf(T item) – индекс заданного свойства в наборе или -1, если такого свойства там нет;

·  void Insert(int index, T item) – вставка свойства item в набор в позицию index;

·  virtual void InsertItem(int index, T item) – вставка свойства item в набор в позицию index (переопределяемый метод);

·  bool Remove(T item) – удаление заданного свойства из набора и возвращение true в случае успеха;

·  void RemoveAt(int index) – удаление свойства с заданным индексом из набора;

·  virtual void RemoveItem(int index) – удаление свойства с заданным индексом из набора (переопределяемый метод);

·  void SetItem(int index, T item) – замена свойства набора с индексом index новым свойством item.

Класс ECDsaCng предназначен для вычисления и проверки электронной цифровой подписи (ЭЦП). В нем определены следующие свойства:

·  CngAlgorithm HashAlgorithm – алгоритм хеширования, используемый при вычислении и проверке ЭЦП (поддерживаются алгоритмы MD5, SHA1, SHA256, SHA384, SHA512 и др., по умолчанию применяется SHA256);

·  CngKey Key – пара ключей асимметричного шифрования, используемых при вычислении и проверке ЭЦП;

·  string KeyExchangeAlgorithm – имя криптоалгоритма, используемого для обмена секретными ключами симметричного шифрования (поскольку класс ECDsaCng не применяется для обмена ключами, значением этого свойства является null);

·  string SignatureAlgorithm – имя алгоритма ЭЦП (значением этого свойства является строка "ECDsa").

Класс ECDsaCng имеет конструктор без параметров, создающий объект с парой случайных ключей, и конструкторы с параметрами:

·  CngKey key – создание объекта класса на основе заданной пары ключей;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15