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


Метод ICLRStrongName::StrongNameSignatureGenerationEx

Создает подпись со строгим именем для указанной сборки в соответствии с заданными флагами.

HRESULT StrongNameSignatureGenerationEx (
    [in]  LPCWSTR   wszFilePath,
    [in]  LPCWSTR   wszKeyContainer,
    [in]  BYTE      *pbKeyBlob,
    [in]  ULONG     cbKeyBlob,
    [out] BYTE      **ppbSignatureBlob,
    [out] ULONG     *pcbSignatureBlob,
    [in]  DWORD     dwFlags
);

Параметры

  • wszFilePath
    [in] Путь к файлу, содержащему манифест сборки, для которой будет создана подпись со строгим именем.

  • wszKeyContainer
    [in] Имя контейнера ключей, содержащего пары открытого и закрытого ключей.

    Если параметр pbKeyBlob равен NULL, параметр wszKeyContainer должен задавать допустимый контейнер в поставщике служб шифрования (CSP). В данном случае для подписания файла используется пара ключей, хранящихся в контейнере.

    Если значение параметра pbKeyBlob не равно NULL, предполагается, что пара ключей расположена в большом двоичном объекте ключей.

  • pbKeyBlob
    [in] Указатель на пару открытого и закрытого ключей. Формат этой пары создается функцией CryptExportKey для Win32. Если значение параметра pbKeyBlob равно NULL, предполагается, что пары ключей содержатся в контейнере ключей, заданном параметром wszKeyContainer.

  • cbKeyBlob
    [in] Размер (в байтах) pbKeyBlob.

  • ppbSignatureBlob
    [out] Указатель на расположение, в которое среда CLR возвращает подпись. Если значение параметра ppbSignatureBlob равно NULL, среда выполнения сохраняет подпись в файле, заданном параметром wszFilePath.

    Если значение параметра ppbSignatureBlob не равно NULL, среда CLR выделяет место для возвращения подписи. Вызывающий объект должен освободить это пространство, используя метод ICLRStrongName::StrongNameFreeBuffer.

  • pcbSignatureBlob
    [out] Размер возвращаемой подписи (в байтах).

  • dwFlags
    [in] Одно или несколько следующих значений:

    • SN_SIGN_ALL_FILES (0x00000001) — повторно вычисляет все хэши для связанных модулей;

    • SN_TEST_SIGN (0x00000002) — пробное подписание сборки.

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

Значение S_OK, если выполнение метода завершено успешно, в противном случае — значение HRESULT, указывающее отказ (см. список на странице Common HRESULT Values для списка).

Заметки

Чтобы вычислить размер подписи без ее создания нужно задать значение NULL для параметра wszFilePath.

Подпись может храниться либо непосредственно в файле, либо возвращаться вызову.

Если задано значение SN_SIGN_ALL_FILES без открытого ключа (оба параметра pbKeyBlob и wszFilePath равны NULL), хэши для связанных модулей вычисляются повторно, однако сборка повторно не подписывается.

Если задан параметр SN_TEST_SIGN, заголовок среды CLR не изменяется и не указывает на то, что сборка подписана строгим именем.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: MetaHost.h

Библиотека: включена как ресурс в MSCorEE.dll

Версии платформы .NET Framework: 4

См. также

Ссылки

Интерфейс ICLRStrongName

Другие ресурсы

Метод ICLRStrongName::StrongNameSignatureGeneration

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Исправлено возвращаемое значение.

Исправление ошибки содержимого.

Июль 2010

Добавлен раздел.

Улучшение информации.