int __cdecl wmain()

in PCPTool.v11/exe/PCPTool.cpp [94:295]


int __cdecl wmain(_In_ int argc,
           _In_reads_(argc) WCHAR* argv[]
    )
{
    HRESULT hr = S_OK;

    if((argc <= 1) ||
       (!wcscmp(argv[1], L"/?")) ||
       (!wcscmp(argv[1], L"-?")) ||
       (!_wcsicmp(argv[1], L"/h")) ||
       (!_wcsicmp(argv[1], L"-h")))
    {
        PcpToolGetHelp();
    }
    else
    {
        WCHAR* command = argv[1];
        if(!_wcsicmp(command, L"getversion"))
        {
            hr = PcpToolGetVersion(argc, argv);
        }
        else if(!_wcsicmp(command, L"getrandom"))
        {
            hr = PcpToolGetRandom(argc, argv);
        }
        else if(!_wcsicmp(command, L"getrandompcrs"))
        {
            hr = PcpToolGetRandomPcrs(argc, argv);
        }
        else if(!_wcsicmp(command, L"geteK"))
        {
            hr = PcpToolGetEK(argc, argv);
        }
        else if(!_wcsicmp(command, L"getekcert"))
        {
            hr = PcpToolGetEKCert(argc, argv);
        }
        else if(!_wcsicmp(command, L"getnvekcert"))
        {
            hr = PcpToolGetNVEKCert(argc, argv);
        }
        else if(!_wcsicmp(command, L"addekcert"))
        {
            hr = PcpToolAddEKCert(argc, argv);
        }
        else if(!_wcsicmp(command, L"extractek"))
        {
            hr = PcpToolExtractEK(argc, argv);
        }
        else if(!_wcsicmp(command, L"getsrk"))
        {
            hr = PcpToolGetSRK(argc, argv);
        }
        else if(!_wcsicmp(command, L"getlog"))
        {
            hr = PcpToolGetLog(argc, argv);
        }
        else if(!_wcsicmp(command, L"decodelog"))
        {
            hr = PcpToolDecodeLog(argc, argv);
        }
        else if(!_wcsicmp(command, L"createaik"))
        {
            hr = PcpToolCreateAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"createkey"))
        {
            hr = PcpToolCreateKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"getcertstore"))
        {
            hr = PcpToolGetUserCertStore(argc, argv);
        }
        else if(!_wcsicmp(command, L"importkey"))
        {
            hr = PcpToolImportKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"exportkey"))
        {
            hr = PcpToolExportKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"challengeaik"))
        {
            hr = PcpToolChallengeAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"activateaik"))
        {
            hr = PcpToolActivateAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"getpubaik"))
        {
            hr = PcpToolGetPubAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"registeraik"))
        {
            hr = PcpToolRegisterAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"enumerateaik"))
        {
            hr = PcpToolEnumerateAIK(argc, argv);
        }
        else if(!_wcsicmp(command, L"enumeratekeys"))
        {
            hr = PcpToolEnumerateKeys(argc, argv);
        }
        else if(!_wcsicmp(command, L"changekeyusageauth"))
        {
            hr = PcpToolChangeKeyUsageAuth(argc, argv);
        }
        else if(!_wcsicmp(command, L"deletekey"))
        {
            hr = PcpToolDeleteKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"getpubkey"))
        {
            hr = PcpToolGetPubKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"getplatformcounters"))
        {
            hr = PcpToolGetPlatformCounters(argc, argv);
        }
        else if(!_wcsicmp(command, L"getpcrs"))
        {
            hr = PcpToolGetPCRs(argc, argv);
        }
        else if(!_wcsicmp(command, L"getarchivedlog"))
        {
            hr = PcpToolGetArchivedLog(argc, argv);
        }
        else if(!_wcsicmp(command, L"getplatformattestation"))
        {
            hr = PcpToolGetPlatformAttestation(argc, argv);
        }
        else if(!_wcsicmp(command, L"createplatformattestationfromlog"))
        {
            hr = PcpToolCreatePlatformAttestationFromLog(argc, argv);
        }
        else if(!_wcsicmp(command, L"displayplatformattestationfile"))
        {
            hr = PcpToolDisplayPlatformAttestationFile(argc, argv);
        }
        else if(!_wcsicmp(command, L"validateplatformattestation"))
        {
            hr = PcpToolValidatePlatformAttestation(argc, argv);
        }
        else if(!_wcsicmp(command, L"getkeyattestation"))
        {
            hr = PcpToolGetKeyAttestation(argc, argv);
        }
        else if(!_wcsicmp(command, L"getkeyattestationfromkey"))
        {
            hr = PcpToolGetKeyAttestationFromKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"validatekeyattestation"))
        {
            hr = PcpToolValidateKeyAttestation(argc, argv);
        }
        else if(!_wcsicmp(command, L"getkeyproperties"))
        {
            hr = PcpToolGetKeyProperties(argc, argv);
        }
        else if(!_wcsicmp(command, L"encrypt"))
        {
            hr = PcpToolEncrypt(argc, argv);
        }
        else if(!_wcsicmp(command, L"decrypt"))
        {
            hr = PcpToolDecrypt(argc, argv);
        }
        else if(!_wcsicmp(command, L"wrapkey"))
        {
            hr = PcpToolWrapPlatformKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"importplatformkey"))
        {
            hr = PcpToolImportPlatformKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"getvsckeyattestationfromkey"))
        {
            hr = PcpToolGetVscKeyAttestationFromKey(argc, argv);
        }
        else if(!_wcsicmp(command, L"issueekcert"))
        {
            hr = PcpToolIssueEkCert(argc, argv);
        }
        else if(!_wcsicmp(command, L"privacycachallenge"))
        {
            hr = PcpToolPrivacyCaChallenge(argc, argv);
        }
        else if(!_wcsicmp(command, L"privacycaactivate"))
        {
            hr = PcpToolPrivacyCaActivate(argc, argv);
        }
        else
        {
            wprintf(L"Command not found.");
        }
    }

    TpmAttiReleaseHashProviders();
    return SUCCEEDED(hr) ? 0 : 1;
}