Функции поставщика служб шифрования

В каждом из следующих разделов определяется функция, экспортируемая Xenroll.dll, которую можно использовать для управления поставщиком служб шифрования. В каждом разделе также рассматривается использование CertEnroll.dll для замены функции или указывается, что сопоставления между двумя библиотеками не существует:

EnumAlgs

Функция EnumAlgs в Xenroll.dll извлекает коллекцию алгоритмов шифрования.

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

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство CspInformations для объекта IX509PrivateKey , полученного на шаге 4.
  6. Вызовите свойство CspAlgorithms для определенного объекта ICspInformation в коллекции ICspInformations , полученной на шаге 5.

enumContainersWStr

Функция enumContainersWStr в Xenroll.dll извлекает контейнер ключей из коллекции по индексу.

Библиотека CertEnroll.dll не реализует эту функцию напрямую.

enumProvidersWStr

Функция enumProvidersWStr в Xenroll.dll извлекает CSP из коллекции по индексу.

При использовании CertEnroll.dll можно выполнить следующие действия, чтобы получить коллекцию криптографических контейнеров:

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство CspInformations для объекта IX509PrivateKey , полученного на шаге 4.

GetAlgNameWStr

Функция GetAlgNameWStr в Xenroll.dll извлекает имя криптографического алгоритма.

При использовании CertEnroll.dll можно выполнить следующие действия, чтобы получить имя алгоритма:

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство Algorithm объекта IX509PrivateKey , чтобы получить идентификатор объекта алгоритма.
  6. Вызовите свойство FriendlyName в интерфейсе IObjectId , чтобы получить отображаемое имя алгоритма.

getProviderTypeWStr

Функция getProviderTypeWStr в Xenroll.dll извлекает тип поставщика шифрования.

При использовании CertEnroll.dll можно выполнить следующие действия для получения типа поставщика:

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство ProviderType для объекта IX509PrivateKey , полученного на шаге 4.

HashAlgID

Функция HashAlgID в Xenroll.dll извлекает целочисленное значение, содержащее идентификатор алгоритма, используемого для подписания запроса.

При использовании CertEnroll.dll можно выполнить следующие действия для получения алгоритма хэширования:

  • Получите интерфейс IX509SignatureInformation , вызвав свойство SignatureInformation в запросе PKCS #10 или CMC или свойство SignerCertificate в запросе PKCS #7 .
  • Вызовите свойство HashAlgorithm для объекта сведений о сигнатуре, чтобы получить идентификатор объекта хэш-алгоритма.

HashAlgorithmWStr

Функция HashAlgorithmWStr в Xenroll.dll задает или извлекает строковое значение, определяющее алгоритм хэширования, используемый для подписания запроса.

При использовании CertEnroll.dll можно выполнить следующие действия для получения алгоритма хэширования:

  • Получите интерфейс IX509SignatureInformation , вызвав свойство SignatureInformation в запросе PKCS #10 или CMC или свойство SignerCertificate в запросе PKCS #7.
  • Вызовите свойство HashAlgorithm для объекта сведений о сигнатуре, чтобы получить идентификатор объекта хэш-алгоритма.
  • Вызовите свойство FriendlyName в интерфейсе IObjectId , возвращенном на шаге 2, чтобы получить отображаемое имя алгоритма.

ProviderFlags

Функция ProviderFlags в Xenroll.dll задает или извлекает флаги, используемые при получении дескриптора для CSP.

Библиотека CertEnroll.dll не идеально сопоставляет эту функцию, но вы можете получить подробные сведения о свойствах из объекта регистрации и закрытого ключа. Дополнительные сведения см. в свойствах, предоставляемых интерфейсами IX509Enrollment и IX509PrivateKey .

ProviderNameWStr

Функция ProviderNameWStr в Xenroll.dll указывает или извлекает имя CSP.

При использовании CertEnroll.dll можно выполнить следующие действия, чтобы получить имя поставщика:

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство ProviderName для объекта IX509PrivateKey , полученного на шаге 4.

ProviderType

Функция ProviderType в Xenroll.dll задает или извлекает целочисленное значение, определяющее тип CSP.

При использовании CertEnroll.dll можно выполнить следующие действия для получения типа поставщика:

  1. Вызовите свойство Request для существующего объекта IX509Enrollment .
  2. Вызовите метод GetInnerRequest для запроса, возвращенного на шаге 1, чтобы получить самый внутренний запрос.
  3. Вызовите QueryInterface для объекта IX509CertificateRequest , возвращенного из шага 2, для приведения к объекту IX509CertificateRequestPkcs10 .
  4. Вызовите свойство PrivateKey в запросе PKCS #10.
  5. Вызовите свойство ProviderType для объекта IX509PrivateKey , полученного на шаге 4.

Сопоставление Xenroll.dll с CertEnroll.dll

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

IX509Enrollment

IX509PrivateKey