SignerSignEx2 函式
SignerSignEx2函式會簽署和時間戳記指定的檔案,允許多個巢狀簽章。
注意
此函式沒有相關聯的標頭檔或匯入程式庫。 若要呼叫此函式,您必須建立使用者定義的標頭檔,並使用 LoadLibrary 和 GetProcAddress 函式動態連結至Mssign32.dll。
語法
HRESULT WINAPI SignerSignEx2(
_In_ DWORD dwFlags,
_In_ SIGNER_SUBJECT_INFO *pSubjectInfo,
_In_ SIGNER_CERT *pSignerCert,
_In_ SIGNER_SIGNATURE_INFO *pSignatureInfo,
_In_opt_ SIGNER_PROVIDER_INFO *pProviderInfo,
_In_opt_ DWORD dwTimestampFlags,
_In_opt_ PCSTR pszTimestampAlgorithmOid,
_In_opt_ PCWSTR pwszHttpTimeStamp,
_In_opt_ PCRYPT_ATTRIBUTES psRequest,
_In_opt_ PVOID pSipData,
_Out_ SIGNER_CONTEXT **ppSignerContext,
_In_opt_ PCERT_STRONG_SIGN_PARA pCryptoPolicy,
_Reserved_ PVOID pReserved
);
參數
-
dwFlags [in]
-
修改此函式的行為。
如果要簽署的檔案是可攜式可執行檔 (PE) 檔案,這可以是零或下列一或多個值的組合。
值 意義 - SPC_EXC_PE_PAGE_HASHES_FLAG
- 0x10
為 PE 檔案建立 SIP 間接資料時,排除頁面雜湊。 此旗標的優先順序高於 SPC_INC_PE_PAGE_HASHES_FLAG 旗標。
如果未指定 SPC_EXC_PE_PAGE_HASHES_FLAG 或 SPC_INC_PE_PAGE_HASHES_FLAG 旗標,則會使用此設定使用 WintrustSetDefaultIncludePEPageHashes 函式設定的值。 此設定的預設值是在建立 PE 檔案的 SIP 間接資料時排除頁面雜湊。
此值定義于 Mssip.h 標頭檔中。
Windows Server 2003 和 Windows XP: 不支援這個值。- SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
- 0x20
不支援這個值。 - SPC_INC_PE_DEBUG_INFO_FLAG
- 0x40
不支援這個值。 - SPC_INC_PE_RESOURCES_FLAG
- 0x80
不支援這個值。 - SPC_INC_PE_PAGE_HASHES_FLAG
- 0x100
建立 PE 檔案的 SIP 間接資料時,請包含頁面雜湊。
Windows Server 2003 和 Windows XP: 不支援這個值。
此值定義于 Mssip.h 標頭檔中。- SIG_APPEND
- 0x1000
簽章將會是巢狀的。 如果您在新增任何簽章之前設定此旗標,產生的簽章將會新增為外部簽章。 如果您未設定此旗標,產生的簽章會取代外部簽章,並刪除所有內部簽章。 -
pSubjectInfo [in]
-
指定主體簽署 之SIGNER_SUBJECT_INFO 結構的指標。
-
pSignerCert [in]
-
SIGNER_CERT結構的指標,指定要用來建立數位簽章的憑證。
-
pSignatureInfo [in]
-
包含數位簽章相關資訊 之SIGNER_SIGNATURE_INFO 結構的指標。
-
pProviderInfo [in, optional]
-
SIGNER_PROVIDER_INFO結構的指標,指定用來建立數位簽章的密碼編譯服務提供者 (CSP) 和私密金鑰資訊。
如果此參數的值是 Null, pSignerCert 參數必須指定與 CSP 相關聯的憑證。
-
dwTimestampFlags [in, optional]
-
如果pwszHttpTimeStamp參數不是Null,則會傳遞至SignerTimeStampEx3的旗標。 這可以是下列其中一個值。
值 意義 - SIGNER_TIMESTAMP_AUTHENTICODE
預設值。 指定 Authenticode 時間戳記。 - SIGNER_TIMESTAMP_RFC3161
指定 RFC 3161 時間戳記。 如果 pwszHttpTimeStamp 參數為 Null,則會忽略此參數。
-
pszTimestampAlgorithmOid [in, optional]
-
要用於建立 RFC 3161 時間戳記之演算法的物件識別碼。 Authenticode 時間戳記會忽略此參數。
-
pwszHttpTimeStamp [in, optional]
-
時間戳記伺服器的 URL。
-
psRequest [in, optional]
-
新增至符號要求 之CRYPT_ATTRIBUTE 結構的陣列指標。 如果 pwszHttpTimeStamp 參數不包含有效值或為 Null,則會忽略此參數。
-
pSipData [in, optional]
-
以其他資料的形式傳遞至 SIP 函式的 32 位值。 此格式和內容是由 SIP 提供者所定義。
-
ppSignerCoNtext [out]
-
包含已簽署 BLOB 之SIGNER_CONTEXT結構的指標位址。 當您完成使用SIGNER_CONTEXT結構時,請呼叫SignerFreeSignerCoNtext函式來釋放SIGNER_CONTEXT結構。
-
pCryptoPolicy [in, optional]
-
如果有,則為 CERT_STRONG_SIGN_PARA 結構的指標,其中包含用來檢查強式簽章的參數。 如果憑證或其鏈結未通過,則不會以任何方式改變檔案。 如果傳入 URL 以指定 TSA) (時間戳記授權單位,此原則也會套用至時間戳記。
-
保存
-
保留的。 此值必須是 Null。
傳回值
如果函式成功,函式會傳回S_OK。
如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 此函式所傳回的可能錯誤碼包括但不限於下列各項。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值。
傳回碼 | Description |
---|---|
|
如果您將 dwTimestampFlags 參數設定為 SIGNER_TIMESTAMP_AUTHENTICODE,則無法將 dwFlags 參數設定為 SIG_APPEND。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2012 [僅限傳統型應用程式] |
DLL |
|
另請參閱