Поделиться через


Метод IX509AttributeArchiveKey::InitializeEncode (certenroll.h)

Метод InitializeEncode инициализирует атрибут из объекта IX509PrivateKey , сертификата шифрования центра сертификации и идентификатора объекта симметричного алгоритма шифрования (OID).

Синтаксис

HRESULT InitializeEncode(
  [in]           IX509PrivateKey *pKey,
  [in]           EncodingType    Encoding,
  [in]           BSTR            strCAXCert,
  [in, optional] IObjectId       *pAlgorithm,
  [in]           LONG            EncryptionStrength
);

Параметры

[in] pKey

Указатель на интерфейс IX509PrivateKey , представляющий ключ.

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемой к входной строке, содержащей зашифрованный ключ.

[in] strCAXCert

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

Начиная с Windows 7 и Windows Server 2008 R2, вы можете указать печать или серийный номер сертификата, а не закодированный сертификат. Это приводит к тому, что функция выполняет поиск соответствующего сертификата в соответствующих локальных хранилищах. Помните на следующие моменты.

  • BSTR должно быть четным числом шестнадцатеричных цифр.
  • Пробелы между шестнадцатеричными парами игнорируются.
  • Параметр Encoding должен иметь значение XCN_CRYPT_STRING_HEXRAW.
  • Закрытый ключ выполняется только в личных хранилищах и хранилищах запросов.

[in, optional] pAlgorithm

Указатель на интерфейс IObjectId , представляющий OID алгоритма симметричного шифрования, используемого для шифрования закрытого ключа. Этот параметр является необязательным. Если не указать OID, используется XCN_OID_RSA_DES_EDE3_CBC (Triple DES).

[in] EncryptionStrength

Переменная LONG , содержащая надежность шифрования алгоритма, определяемого параметром pAlgorithm . Этот параметр в настоящее время не используется, так как пакет SDK для регистрации сертификатов не поддерживает алгоритмы, для которых OID еще не подразумевает прочность (длину ключа). Например, AES имеет несколько сильных сторон, но сила каждого из них уже указана OID.

Возвращаемое значение

Если функция завершается успешно, функция возвращает S_OK.

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Комментарии

Идентификатор объекта для этого атрибута — XCN_OID_ARCHIVED_KEY_ATTR (1.3.6.1.4.1.311.21.13). Дополнительные сведения см. в разделе CERTENROLL_OBJECTID.

Прежде чем использовать объект IX509AttributeArchiveKey, необходимо вызвать Метод InitializeEncode или InitializeDecode. Эти два метода дополняют друг друга. Метод InitializeEncode позволяет создать закодированную структуру Abstract Syntax Notation One (ASN.1) из необработанных данных, а метод InitializeDecode позволяет инициализировать необработанные данные из закодированной структуры ASN.1. Для получения необработанных данных можно вызвать следующие свойства:

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

См. также раздел

IX509AttributeArchiveKey