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


Функция StrongNameSignatureGenerationEx

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

Не рекомендуется использовать эту функцию в .NET Framework 4. Вместо этого используйте метод ICLRStrongName::StrongNameSignatureGenerationEx.

BOOLEAN 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 выделяет место для возвращения подписи. Вызывающий объект должен освободить это место с помощью функции StrongNameFreeBuffer.

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

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

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

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

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

Значение true, если выполнение успешно, в противном случае — значение false.

Заметки

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

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

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

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

Если выполнение функции StrongNameSignatureGenerationEx не завершилось успешно, нужно вызвать функцию StrongNameErrorInfo для извлечения последней сгенерированной ошибки.

Требования

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

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

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

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0, 1.1, 1.0

См. также

Ссылки

Интерфейс ICLRStrongName

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

Метод ICLRStrongName::StrongNameSignatureGenerationEx

Метод ICLRStrongName::StrongNameSignatureGeneration

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

Дата

Журнал

Причина

Июль 2010

Добавлена ссылка на рекомендуемый альтернативный способ.

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