// Copyright 2016 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CRYPTOHOME_TPM_METRICS_H_
#define CRYPTOHOME_TPM_METRICS_H_

#include "cryptohome/tpm.h"

namespace cryptohome {

// WARNING: The values in the following enum are written to logs and the
// elements must not be renumbered or deleted (and hence possibly reused).
enum TpmResult {
  kTpmSuccess = 1,  // TSS_SUCCESS.

  // TSS_LAYER_TPM errors:
  kTpmErrorAuthenticationFail = 2,  // TPM_E_AUTHFAIL.
  kTpmErrorBadParameter = 3,  // TPM_E_BAD_PARAMETER.
  kTpmErrorBadIndex = 4,  // TPM_E_BADINDEX.
  kTpmErrorAuditFail = 5,  // TPM_E_AUDITFAILURE.
  kTpmErrorClearDisabled = 6,  // TPM_E_CLEAR_DISABLED.
  kTpmErrorTpmDeactivated = 7,  // TPM_E_DEACTIVATED.
  kTpmErrorTpmDisabled = 8,  // TPM_E_DISABLED.
  kTpmErrorFailed = 9,  // TPM_E_FAIL.
  kTpmErrorBadOrdinal = 10,  // TPM_E_BAD_ORDINAL.
  kTpmErrorOwnerInstallDisabled = 11,  // TPM_E_INSTALL_DISABLED.
  kTpmErrorInvalidKeyHandle = 12,  // TPM_E_INVALID_KEYHANDLE.
  kTpmErrorKeyNotFound = 13,  // TPM_E_KEYNOTFOUND.
  kTpmErrorBadEncryptionScheme = 14,  // TPM_E_INAPPROPRIATE_ENC.
  kTpmErrorMigrationAuthorizationFail = 15,  // TPM_E_MIGRATEFAIL.
  kTpmErrorInvalidPcrInfo = 16,  // TPM_E_INVALID_PCR_INFO.
  kTpmErrorNoSpaceToLoadKey = 17,  // TPM_E_NOSPACE.
  kTpmErrorNoSrk = 18,  // TPM_E_NOSRK.
  kTpmErrorInvalidEncryptedBlob = 19,  // TPM_E_NOTSEALED_BLOB.
  kTpmErrorOwnerAlreadySet = 20,  // TPM_E_OWNER_SET.
  kTpmErrorNotEnoughTpmResources = 21,  // TPM_E_RESOURCES.
  kTpmErrorRandomStringTooShort = 22,  // TPM_E_SHORTRANDOM.
  kTpmErrorTpmOutOfSpace = 23,  // TPM_E_SIZE.
  kTpmErrorWrongPcrValue = 24,  // TPM_E_WRONGPCRVAL.
  kTpmErrorBadParamSize = 25,  // TPM_E_BAD_PARAM_SIZE.
  kTpmErrorNoSha1Thread = 26,  // TPM_E_SHA_THREAD.
  kTpmErrorSha1Error = 27,  // TPM_E_SHA_ERROR.
  kTpmErrorTpmSelfTestFailed = 28,  // TPM_E_FAILEDSELFTEST.
  kTpmErrorSecondAuthorizationFailed = 29,  // TPM_E_AUTH2FAIL.
  kTpmErrorBadTag = 30,  // TPM_E_BADTAG.
  kTpmErrorIOError = 31,  // TPM_E_IOERROR.
  kTpmErrorEncryptionError = 32,  // TPM_E_ENCRYPT_ERROR.
  kTpmErrorDecryptionError = 33,  // TPM_E_DECRYPT_ERROR.
  kTpmErrorInvalidAuthorizationHandle = 34,  // TPM_E_INVALID_AUTHHANDLE.
  kTpmErrorNoEndorsement = 35,  // TPM_E_NO_ENDORSEMENT.
  kTpmErrorInvalidKeyUsage = 36,  // TPM_E_INVALID_KEYUSAGE.
  kTpmErrorWrongEntityType = 37,  // TPM_E_WRONG_ENTITYTYPE.
  kTpmErrorInvalidPostInitSequence = 38,  // TPM_E_INVALID_POSTINIT.
  kTpmErrorInvalidSignatureFormat = 39,  // TPM_E_INAPPROPRIATE_SIG.
  kTpmErrorBadKeyProperty = 40,  // TPM_E_BAD_KEY_PROPERTY.
  kTpmErrorBadMigration = 41,  // TPM_E_BAD_MIGRATION.
  kTpmErrorBadScheme = 42,  // TPM_E_BAD_SCHEME.
  kTpmErrorBadDataSize = 43,  // TPM_E_BAD_DATASIZE.
  kTpmErrorBadModeParameter = 44,  // TPM_E_BAD_MODE.
  kTpmErrorBadPresenceValue = 45,  // TPM_E_BAD_PRESENCE.
  kTpmErrorBadVersion = 46,  // TPM_E_BAD_VERSION.
  kTpmErrorWrapTransportNotAllowed = 47,  // TPM_E_NO_WRAP_TRANSPORT.
  kTpmErrorAuditFailCommandUnsuccessful = 48,  // TPM_E_AUDITFAIL_UNSUCCESSFUL.
  kTpmErrorAuditFailCommandSuccessful = 49,  // TPM_E_AUDITFAIL_SUCCESSFUL.
  kTpmErrorPcrRegisterNotResetable = 50,  // TPM_E_NOTRESETABLE.
  kTpmErrorPcrRegisterResetRequiresLocality = 51,  // TPM_E_NOTLOCAL.
  kTpmErrorBadTypeOfIdentityBlob = 52,  // TPM_E_BAD_TYPE.
  kTpmErrorBadResourceType = 53,  // TPM_E_INVALID_RESOURCE.
  kTpmErrorCommandAvailableOnlyInFipsMode = 54,  // TPM_E_NOTFIPS.
  kTpmErrorInvalidFamilyId = 55,  // TPM_E_INVALID_FAMILY.
  kTpmErrorNoNvRamPermission = 56,  // TPM_E_NO_NV_PERMISSION.
  kTpmErrorSignedCommandRequired = 57,  // TPM_E_REQUIRES_SIGN.
  kTpmErrorNvRamKeyNotSupported = 58,  // TPM_E_KEY_NOTSUPPORTED.
  kTpmErrorAuthorizationConflict = 59,  // TPM_E_AUTH_CONFLICT.
  kTpmErrorNvRamAreaLocked = 60,  // TPM_E_AREA_LOCKED.
  kTpmErrorBadLocality = 61,  // TPM_E_BAD_LOCALITY.
  kTpmErrorNvRamAreaReadOnly = 62,  // TPM_E_READ_ONLY.
  kTpmErrorNvRamAreaNoWriteProtection = 63,  // TPM_E_PER_NOWRITE.
  kTpmErrorFamilyCountMismatch = 64,  // TPM_E_FAMILYCOUNT.
  kTpmErrorNvRamAreaWriteLocked = 65,  // TPM_E_WRITE_LOCKED.
  kTpmErrorNvRamAreaBadAttributes = 66,  // TPM_E_BAD_ATTRIBUTES.
  kTpmErrorInvalidStructure = 67,  // TPM_E_INVALID_STRUCTURE.
  kTpmErrorKeyUnderOwnerControl = 68,  // TPM_E_KEY_OWNER_CONTROL.
  kTpmErrorBadCounterHandle = 69,  // TPM_E_BAD_COUNTER.
  kTpmErrorNotAFullWrite = 70,  // TPM_E_NOT_FULLWRITE.
  kTpmErrorContextGap = 71,  // TPM_E_CONTEXT_GAP.
  kTpmErrorMaxNvRamWrites = 72,  // TPM_E_MAXNVWRITES.
  kTpmErrorNoOperator = 73,  // TPM_E_NOOPERATOR.
  kTpmErrorResourceMissing = 74,  // TPM_E_RESOURCEMISSING.
  kTpmErrorDelagteLocked = 75,  // TPM_E_DELEGATE_LOCK.
  kTpmErrorDelegateFamily = 76,  // TPM_E_DELEGATE_FAMILY.
  kTpmErrorDelegateAdmin = 77,  // TPM_E_DELEGATE_ADMIN.
  kTpmErrorTransportNotExclusive = 78,  // TPM_E_TRANSPORT_NOTEXCLUSIVE.
  kTpmErrorOwnerControl = 79,  // TPM_E_OWNER_CONTROL.
  kTpmErrorDaaResourcesNotAvailable = 80,  // TPM_E_DAA_RESOURCES.
  kTpmErrorDaaInputData0 = 81,  // TPM_E_DAA_INPUT_DATA0.
  kTpmErrorDaaInputData1 = 82,  // TPM_E_DAA_INPUT_DATA1.
  kTpmErrorDaaIssuerSettings = 83,  // TPM_E_DAA_ISSUER_SETTINGS.
  kTpmErrorDaaTpmSettings = 84,  // TPM_E_DAA_TPM_SETTINGS.
  kTpmErrorDaaStage = 85,  // TPM_E_DAA_STAGE.
  kTpmErrorDaaIssuerValidity = 86,  // TPM_E_DAA_ISSUER_VALIDITY.
  kTpmErrorDaaWrongW = 87,  // TPM_E_DAA_WRONG_W.
  kTpmErrorBadHandle = 88,  // TPM_E_BAD_HANDLE.
  kTpmErrorBadDelegate = 89,  // TPM_E_BAD_DELEGATE.
  kTpmErrorBadContextBlob = 90,  // TPM_E_BADCONTEXT.
  kTpmErrorTooManyContexts = 91,  // TPM_E_TOOMANYCONTEXTS.
  kTpmErrorMigrationAuthoritySignatureFail = 92,  // TPM_E_MA_TICKET_SIGNATURE.
  kTpmErrorMigrationDestinationNotAuthenticated = 93,  // TPM_E_MA_DESTINATION.
  kTpmErrorBadMigrationSource = 94,  // TPM_E_MA_SOURCE.
  kTpmErrorBadMigrationAuthority = 95,  // TPM_E_MA_AUTHORITY.
  kTpmErrorPermanentEk = 96,  // TPM_E_PERMANENTEK.
  kTpmErrorCmkTicketBadSignature = 97,  // TPM_E_BAD_SIGNATURE.
  kTpmErrorNoContextSpace = 98,  // TPM_E_NOCONTEXTSPACE.
  kTpmErrorTpmBusyRetryLater = 99,  // TPM_E_RETRY.
  kTpmErrorNeedsSelfTest = 100,  // TPM_E_NEEDS_SELFTEST.
  kTpmErrorDoingSelfTest = 101,  // TPM_E_DOING_SELFTEST.
  kTpmErrorDefendLockRunning = 102,  // TPM_E_DEFEND_LOCK_RUNNING.
  kTpmErrorTpmCommandDisabled = 103,  // TPM_E_DISABLED_CMD.
  kTpmErrorUnknownError = 104,  //  Unknown TPM error.

  // TSS_LAYER_TDDL errors:
  kTddlErrorGeneralFail = 105,  // TSS_E_FAIL.
  kTddlErrorBadParameter = 106,  // TSS_E_BAD_PARAMETER.
  kTddlErrorInternalSoftwareError = 107,  // TSS_E_INTERNAL_ERROR.
  kTddlErrorNotImplemented = 108,  // TSS_E_NOTIMPL.
  kTddlErrorKeyNotFoundInPersistentStorage = 109,  // TSS_E_PS_KEY_NOTFOUND.
  kTddlErrorKeyAlreadyRegistered = 110,  // TSS_E_KEY_ALREADY_REGISTERED.
  kTddlErrorActionCanceledByRequest = 111,  // TSS_E_CANCELED.
  kTddlErrorTimeout = 112,  // TSS_E_TIMEOUT.
  kTddlErrorOutOfMemory = 113,  // TSS_E_OUTOFMEMORY.
  kTddlErrorUnexpectedTpmOutput = 114,  // TSS_E_TPM_UNEXPECTED.
  kTddlErrorCommunicationFailure = 115,  // TSS_E_COMM_FAILURE.
  kTddlErrorTpmUnsupportedFeature = 116,  // TSS_E_TPM_UNSUPPORTED_FEATURE.
  kTddlErrorConnectionToTpmDeviceFailed = 117,  // TDDL_E_COMPONENT_NOT_FOUND.
  kTddlErrorDeviceAlreadyOpened = 118,  // TDDL_E_ALREADY_OPENED.
  kTddlErrorBadTag = 119,  // TDDL_E_BADTAG.
  kTddlErrorReceiveBufferTooSmall = 120,  // TDDL_E_INSUFFICIENT_BUFFER.
  kTddlErrorCommandAlreadyCompleted = 121,  // TDDL_E_COMMAND_COMPLETED.
  kTddlErrorCommandAborted = 122,  // TDDL_E_COMMAND_ABORTED.
  kTddlErrorDeviceDriverAlreadyClosed = 123,  // TDDL_E_ALREADY_CLOSED.
  kTddlErrorIOError = 124,  // TDDL_E_IOERROR.
  kTddlErrorUnknownError = 125,  // Unknown TDDL error.

  // TSS_LAYER_TCS errors:
  kTcsErrorGeneralFail = 126,  // TSS_E_FAIL.
  kTcsErrorBadParameter = 127,  // TSS_E_BAD_PARAMETER.
  kTcsErrorInternalSoftwareError = 128,  // TSS_E_INTERNAL_ERROR.
  kTcsErrorNotImplemented = 129,  // TSS_E_NOTIMPL.
  kTcsErrorKeyNotFoundInPersistentStorage = 130,  // TSS_E_PS_KEY_NOTFOUND.
  kTcsErrorKeyAlreadyRegistered = 131,  // TSS_E_KEY_ALREADY_REGISTERED.
  kTcsErrorActionCanceledByRequest = 132,  // TSS_E_CANCELED.
  kTcsErrorTimeout = 133,  //               // TSS_E_TIMEOUT.
  kTcsErrorOutOfMemory = 134,  // TSS_E_OUTOFMEMORY.
  kTcsErrorUnexpectedTpmOutput = 135,  // TSS_E_TPM_UNEXPECTED.
  kTcsErrorCommunicationFailure = 136,  // TSS_E_COMM_FAILURE.
  kTcsErrorTpmUnsupportedFeature = 137,  // TSS_E_TPM_UNSUPPORTED_FEATURE.
  kTcsErrorKeyMismatch = 138,  // TCS_E_KEY_MISMATCH.
  kTcsErrorKeyLoadFail = 139,  // TCS_E_KM_LOADFAILED.
  kTcsErrorKeyContextReloadFail = 140,  // TCS_E_KEY_CONTEXT_RELOAD.
  kTcsErrorBadMemoryIndex = 141,  // TCS_E_BAD_INDEX.
  kTcsErrorBadContextHandle = 142,  // TCS_E_INVALID_CONTEXTHANDLE.
  kTcsErrorBadKeyHandle = 143,  // TCS_E_INVALID_KEYHANDLE.
  kTcsErrorBadAuthorizationHandle = 144,  // TCS_E_INVALID_AUTHHANDLE.
  kTcsErrorAuthorizationSessionClosedByTpm = 145,  // TCS_E_INVALID_AUTHSESSION.
  kTcsErrorInvalidKey = 146,  // TCS_E_INVALID_KEY.
  kTcsErrorUnknownError = 147,  //  Unknown TCS error.

  // Other TSS errors:
  kTssErrorGeneralFail = 148,  // TSS_E_FAIL.
  kTssErrorBadParameter = 149,  // TSS_E_BAD_PARAMETER.
  kTssErrorInternalSoftwareError = 150,  // TSS_E_INTERNAL_ERROR.
  kTssErrorNotImplemented = 151,  // TSS_E_NOTIMPL.
  kTssErrorKeyNotFoundInPersistentStorage = 152,  // TSS_E_PS_KEY_NOTFOUND.
  kTssErrorKeyAlreadyRegistered = 153,  // TSS_E_KEY_ALREADY_REGISTERED.
  kTssErrorActionCanceledByRequest = 154,  // TSS_E_CANCELED.
  kTssErrorTimeout = 155,  // TSS_E_TIMEOUT.
  kTssErrorOutOfMemory = 156,  // TSS_E_OUTOFMEMORY.
  kTssErrorUnexpectedTpmOutput = 157,  // TSS_E_TPM_UNEXPECTED.
  kTssErrorCommunicationFailure = 158,  // TSS_E_COMM_FAILURE.
  kTssErrorTpmUnsupportedFeature = 159,  // TSS_E_TPM_UNSUPPORTED_FEATURE.
  kTssErrorBadObjectType = 160,  // TSS_E_INVALID_OBJECT_TYPE.
  kTssErrorBadObjectInitFlag = 161,  // TSS_E_INVALID_OBJECT_INITFLAG.
  kTssErrorInvalidHandle = 162,  // TSS_E_INVALID_HANDLE.
  kTssErrorNoCoreServiceConnection = 163,  // TSS_E_NO_CONNECTION.
  kTssErrorCoreServiceConnectionFail = 164,  // TSS_E_CONNECTION_FAILED.
  kTssErrorCoreServiceConnectionBroken = 165,  // TSS_E_CONNECTION_BROKEN.
  kTssErrorInvalidHashAlgorithm = 166,  // TSS_E_HASH_INVALID_ALG.
  kTssErrorBadHashLength = 167,  // TSS_E_HASH_INVALID_LENGTH.
  kTssErrorHashObjectHasNoValue = 168,  // TSS_E_HASH_NO_DATA.
  kTssErrorSilentContextNeedsUserInput = 169,  // TSS_E_SILENT_CONTEXT.
  kTssErrorBadAttributeFlag = 170,  // TSS_E_INVALID_ATTRIB_FLAG.
  kTssErrorBadAttributeSubFlag = 171,  // TSS_E_INVALID_ATTRIB_SUBFLAG.
  kTssErrorBadAttributeData = 172,  // TSS_E_INVALID_ATTRIB_DATA.
  kTssErrorNoPcrRegistersSet = 173,  // TSS_E_NO_PCRS_SET.
  kTssErrorKeyNotLoaded = 174,  // TSS_E_KEY_NOT_LOADED.
  kTssErrorKeyNotSet = 175,  // TSS_E_KEY_NOT_SET.
  kTssErrorValidationFailed = 176,  // TSS_E_VALIDATION_FAILED.
  kTssErrorTspAuthorizationRequired = 177,  // TSS_E_TSP_AUTHREQUIRED.
  kTssErrorTspMultipleAuthorizationRequired = 178,  // TSS_E_TSP_AUTH2REQUIRED.
  kTssErrorTspAuthorizationFailed = 179,  // TSS_E_TSP_AUTHFAIL.
  kTssErrorTspMultipleAuthorizationFailed = 180,  // TSS_E_TSP_AUTH2FAIL.
  kTssErrorKeyHasNoMigrationPolicy = 181,  // TSS_E_KEY_NO_MIGRATION_POLICY.
  kTssErrorPolicyHasNoSecret = 182,  // TSS_E_POLICY_NO_SECRET.
  kTssErrorBadObjectAccess = 183,  // TSS_E_INVALID_OBJ_ACCESS.
  kTssErrorBadEncryptionScheme = 184,  // TSS_E_INVALID_ENCSCHEME.
  kTssErrorBadSignatureScheme = 185,  // TSS_E_INVALID_SIGSCHEME.
  kTssErrorEncryptedObjectBadLength = 186,  // TSS_E_ENC_INVALID_LENGTH.
  kTssErrorEncryptedObjectHasNoData = 187,  // TSS_E_ENC_NO_DATA.
  kTssErrorEncryptedObjectBadType = 188,  // TSS_E_ENC_INVALID_TYPE.
  kTssErrorBadKeyUsage = 189,  // TSS_E_INVALID_KEYUSAGE.
  kTssErrorVerificationFailed = 190,  // TSS_E_VERIFICATION_FAILED.
  kTssErrorNoHashAlgorithmId = 191,  // TSS_E_HASH_NO_IDENTIFIER.
  kTssErrorNvRamAreaAlreadyExists = 192,  // TSS_E_NV_AREA_EXIST.
  kTssErrorNvRamAreaDoesntExist = 193,  // TSS_E_NV_AREA_NOT_EXIST.
  kTssErrorUnknownError = 194,  //  Unknown TSS error.

  // Must be the last entry.
  kTpmResultNumberOfBuckets = 195,
};

// Returns the corresponding TpmResult enum value to be used to report a
// "Cryptohome.TpmResults" histogram sample.
TpmResult GetTpmResultSample(TpmReturnCode result);

}  // namespace cryptohome

#endif  // CRYPTOHOME_TPM_METRICS_H_
