· 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 |


