You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.2 KiB
123 lines
3.2 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 2001
|
|
//
|
|
// File: signtool.h
|
|
//
|
|
// Contents: The SignTool console tool
|
|
//
|
|
// History: 4/30/2001 SCoyne Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#define MAX_RES_LEN 2048
|
|
|
|
|
|
// Type definitions:
|
|
enum COMMAND
|
|
{
|
|
CommandNone=0,
|
|
CatDb,
|
|
Sign,
|
|
SignWizard,
|
|
Timestamp,
|
|
Verify,
|
|
};
|
|
|
|
enum CATDBSELECT
|
|
{
|
|
NoCatDb=0,
|
|
FullAutoCatDb,
|
|
SystemCatDb,
|
|
DefaultCatDb,
|
|
GuidCatDb
|
|
};
|
|
|
|
enum POLICY_CHOICE
|
|
{
|
|
SystemDriver=0,
|
|
DefaultAuthenticode,
|
|
GuidActionID
|
|
};
|
|
|
|
enum CATDB_COMMAND
|
|
{
|
|
UpdateCat=0,
|
|
AddUniqueCat,
|
|
RemoveCat
|
|
};
|
|
|
|
|
|
typedef struct _InputInfo {
|
|
COMMAND Command;
|
|
WCHAR **rgwszFileNames;
|
|
DWORD NumFiles;
|
|
CATDBSELECT CatDbSelect;
|
|
GUID PolicyGuid;
|
|
GUID CatDbGuid;
|
|
CATDB_COMMAND CatDbCommand;
|
|
CRYPT_HASH_BLOB SHA1;
|
|
BOOL OpenMachineStore;
|
|
POLICY_CHOICE Policy;
|
|
BOOL Quiet;
|
|
BOOL TSWarn;
|
|
BOOL Verbose;
|
|
BOOL HelpRequest;
|
|
BOOL fIsWow64Process;
|
|
DWORD dwPlatform;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
DWORD dwBuildNumber;
|
|
WCHAR *wszCatFile;
|
|
WCHAR *wszCertFile;
|
|
WCHAR *wszContainerName;
|
|
WCHAR *wszCSP;
|
|
WCHAR *wszDescription;
|
|
WCHAR *wszDescURL;
|
|
WCHAR *wszEKU;
|
|
#ifdef SIGNTOOL_LIST
|
|
WCHAR *wszListFileName;
|
|
WCHAR *wszListFileContents;
|
|
#endif
|
|
WCHAR *wszIssuerName;
|
|
WCHAR *wszPassword;
|
|
WCHAR *wszRootName;
|
|
WCHAR *wszStoreName;
|
|
WCHAR *wszSubjectName;
|
|
WCHAR *wszTemplateName;
|
|
WCHAR *wszTimeStampURL;
|
|
WCHAR *wszVersion;
|
|
} INPUTINFO;
|
|
|
|
|
|
// Function prototypes:
|
|
void PrintUsage(INPUTINFO *InputInfo);
|
|
BOOL ParseInputs(int argc, WCHAR **targv, INPUTINFO *InputInfo);
|
|
int SignTool_CatDb(INPUTINFO *InputInfo);
|
|
int SignTool_Sign(INPUTINFO *InputInfo);
|
|
int SignTool_SignWizard(INPUTINFO *InputInfo);
|
|
int SignTool_Timestamp(INPUTINFO *InputInfo);
|
|
int SignTool_Verify(INPUTINFO *InputInfo);
|
|
|
|
// Error Functions:
|
|
#ifdef SIGNTOOL_DEBUG
|
|
#define ResErr if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); Res_Err
|
|
#define ResFormatErr if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); ResFormat_Err
|
|
#define FormatErrRet if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); Format_ErrRet
|
|
#else
|
|
#define ResErr Res_Err
|
|
#define ResFormatErr ResFormat_Err
|
|
#define FormatErrRet Format_ErrRet
|
|
#endif
|
|
void ResOut(DWORD dwRes);
|
|
void Res_Err(DWORD dwRes);
|
|
void ResFormatOut(DWORD dwRes, ...);
|
|
void ResFormat_Err(DWORD dwRes, ...);
|
|
void Format_ErrRet(WCHAR *wszFunc, DWORD dwErr);
|
|
|
|
// Helper Functions:
|
|
BOOL GUIDFromWStr(GUID *guid, LPWSTR str);
|
|
|