from ctypes import *
from enum import IntEnum

class SubIndication(IntEnum):
    """
    Sub-status indication of the signature validation process

    See ETSI TS 102 853 and ETSI EN 319 102-1.



    Attributes:
        REVOKED (int):
        HASH_FAILURE (int):
        SIG_CRYPTO_FAILURE (int):
        SIG_CONSTRAINTS_FAILURE (int):
        CHAIN_CONSTRAINTS_FAILURE (int):
        CRYPTO_CONSTRAINTS_FAILURE (int):
        EXPIRED (int):
        NOT_YET_VALID (int):
        FORMAT_FAILURE (int):
        POLICY_PROCESSING_ERROR (int):
        UNKNOWN_COMMITMENT_TYPE (int):
        TIMESTAMP_ORDER_FAILURE (int):
        NO_SIGNER_CERTIFICATE_FOUND (int):
        NO_CERTIFICATE_CHAIN_FOUND (int):
        REVOKED_NO_POE (int):
        REVOKED_CA_NO_POE (int):
        OUT_OF_BOUNDS_NO_POE (int):
        CRYPTO_CONSTRAINTS_FAILURE_NO_POE (int):
        NO_POE (int):
        TRY_LATER (int):
        NO_POLICY (int):
        SIGNED_DATA_NOT_FOUND (int):
        INCOMPLETE_CERTIFICATE_CHAIN (int):
        CERTIFICATE_NO_REVOCATION_INFORMATION (int):
        MISSING_REVOCATION_INFORMATION (int):
        EXPIRED_NO_REVOCATION_INFORMATION (int):
        UNTRUSTED (int):
        GENERIC (int):

    """
    REVOKED = 1
    HASH_FAILURE = 2
    SIG_CRYPTO_FAILURE = 3
    SIG_CONSTRAINTS_FAILURE = 4
    CHAIN_CONSTRAINTS_FAILURE = 5
    CRYPTO_CONSTRAINTS_FAILURE = 6
    EXPIRED = 7
    NOT_YET_VALID = 8
    FORMAT_FAILURE = 9
    POLICY_PROCESSING_ERROR = 10
    UNKNOWN_COMMITMENT_TYPE = 11
    TIMESTAMP_ORDER_FAILURE = 12
    NO_SIGNER_CERTIFICATE_FOUND = 13
    NO_CERTIFICATE_CHAIN_FOUND = 14
    REVOKED_NO_POE = 15
    REVOKED_CA_NO_POE = 16
    OUT_OF_BOUNDS_NO_POE = 17
    CRYPTO_CONSTRAINTS_FAILURE_NO_POE = 18
    NO_POE = 19
    TRY_LATER = 20
    NO_POLICY = 21
    SIGNED_DATA_NOT_FOUND = 22
    INCOMPLETE_CERTIFICATE_CHAIN = 512
    CERTIFICATE_NO_REVOCATION_INFORMATION = 513
    MISSING_REVOCATION_INFORMATION = 514
    EXPIRED_NO_REVOCATION_INFORMATION = 515
    UNTRUSTED = 516
    GENERIC = 1024

