packages feed

haal-models-0.1.3.0: src/Haal/Models/DTLS/CtinydtlsEcdheCertReq.hs

-- Generated by haal-gen. Do not edit manually.
module Haal.Models.DTLS.CtinydtlsEcdheCertReq
    ( CtinydtlsEcdheCertReqInput (..)
    , CtinydtlsEcdheCertReqOutput (..)
    , ctinydtlsEcdheCertReq
    ) where

import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)

data CtinydtlsEcdheCertReqInput
    = In_ECDH_CLIENT_HELLO
    | In_ECDH_CLIENT_KEY_EXCHANGE
    | In_CHANGE_CIPHER_SPEC
    | In_FINISHED
    | In_APPLICATION
    | In_CERTIFICATE
    | In_EMPTY_CERTIFICATE
    | In_CERTIFICATE_VERIFY
    | In_Alert_WARNING_CLOSE_NOTIFY
    | In_Alert_FATAL_UNEXPECTED_MESSAGE
    deriving (Show, Eq, Ord, Enum, Bounded)

data CtinydtlsEcdheCertReqOutput
    = Out_HELLO_VERIFY_REQUEST
    | Out_TIMEOUT
    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
    | Out_Alert_FATAL_CLOSE_NOTIFY
    | Out_Alert_FATAL_DECRYPT_ERROR
    | Out_CHANGE_CIPHER_SPEC_FINISHED
    | Out_APPLICATION
    deriving (Show, Eq, Ord, Enum, Bounded)

{- Transitions (state  input -> next state / output):
    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_HELLO_VERIFY_REQUEST
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 0 / Out_TIMEOUT
          In_APPLICATION                     -> 0 / Out_TIMEOUT
          In_CERTIFICATE                     -> 0 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 0 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 0 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 0 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 0 / Out_TIMEOUT
    1     In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
          In_FINISHED                        -> 1 / Out_TIMEOUT
          In_APPLICATION                     -> 1 / Out_TIMEOUT
          In_CERTIFICATE                     -> 1 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 1 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 1 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 1 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 1 / Out_TIMEOUT
    2     In_ECDH_CLIENT_HELLO               -> 5 / Out_HELLO_VERIFY_REQUEST
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_TIMEOUT
          In_APPLICATION                     -> 2 / Out_TIMEOUT
          In_CERTIFICATE                     -> 2 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 2 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 2 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    3     In_ECDH_CLIENT_HELLO               -> 6 / Out_HELLO_VERIFY_REQUEST
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 3 / Out_TIMEOUT
          In_APPLICATION                     -> 3 / Out_TIMEOUT
          In_CERTIFICATE                     -> 3 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 3 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 3 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
    4     In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 4 / Out_TIMEOUT
          In_CERTIFICATE                     -> 10 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 10 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
    5     In_ECDH_CLIENT_HELLO               -> 19 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
          In_FINISHED                        -> 5 / Out_TIMEOUT
          In_APPLICATION                     -> 5 / Out_TIMEOUT
          In_CERTIFICATE                     -> 5 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 5 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 5 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
    6     In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 6 / Out_TIMEOUT
          In_FINISHED                        -> 6 / Out_TIMEOUT
          In_APPLICATION                     -> 6 / Out_TIMEOUT
          In_CERTIFICATE                     -> 6 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 6 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 6 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 6 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 6 / Out_TIMEOUT
    7     In_ECDH_CLIENT_HELLO               -> 7 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 7 / Out_TIMEOUT
          In_APPLICATION                     -> 7 / Out_TIMEOUT
          In_CERTIFICATE                     -> 7 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 7 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 7 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
    8     In_ECDH_CLIENT_HELLO               -> 8 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 8 / Out_TIMEOUT
          In_APPLICATION                     -> 8 / Out_TIMEOUT
          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 8 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 8 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    9     In_ECDH_CLIENT_HELLO               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CHANGE_CIPHER_SPEC              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_FINISHED                        -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_APPLICATION                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE                     -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_EMPTY_CERTIFICATE               -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE_VERIFY              -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_Alert_FATAL_DECRYPT_ERROR
    10    In_ECDH_CLIENT_HELLO               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 9 / Out_TIMEOUT
          In_FINISHED                        -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 10 / Out_TIMEOUT
          In_CERTIFICATE                     -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 7 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
    11    In_ECDH_CLIENT_HELLO               -> 4 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
          In_FINISHED                        -> 11 / Out_TIMEOUT
          In_APPLICATION                     -> 11 / Out_TIMEOUT
          In_CERTIFICATE                     -> 11 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 11 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 11 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 11 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 11 / Out_TIMEOUT
    12    In_ECDH_CLIENT_HELLO               -> 12 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_TIMEOUT
          In_APPLICATION                     -> 12 / Out_TIMEOUT
          In_CERTIFICATE                     -> 12 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 12 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 12 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    13    In_ECDH_CLIENT_HELLO               -> 9 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 13 / Out_TIMEOUT
          In_FINISHED                        -> 13 / Out_TIMEOUT
          In_APPLICATION                     -> 13 / Out_TIMEOUT
          In_CERTIFICATE                     -> 13 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 13 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 13 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
    14    In_ECDH_CLIENT_HELLO               -> 17 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 14 / Out_TIMEOUT
          In_APPLICATION                     -> 14 / Out_TIMEOUT
          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 14 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 14 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_TIMEOUT
    15    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 15 / Out_TIMEOUT
          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 23 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    16    In_ECDH_CLIENT_HELLO               -> 17 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 16 / Out_TIMEOUT
          In_FINISHED                        -> 16 / Out_TIMEOUT
          In_APPLICATION                     -> 16 / Out_TIMEOUT
          In_CERTIFICATE                     -> 16 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 16 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 16 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 16 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 16 / Out_TIMEOUT
    17    In_ECDH_CLIENT_HELLO               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_FINISHED                        -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_APPLICATION                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE                     -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_EMPTY_CERTIFICATE               -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE_VERIFY              -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_WARNING_CLOSE_NOTIFY      -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 14 / Out_Alert_FATAL_DECRYPT_ERROR
    18    In_ECDH_CLIENT_HELLO               -> 19 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 18 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 18 / Out_TIMEOUT
          In_APPLICATION                     -> 18 / Out_TIMEOUT
          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 18 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 18 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    19    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 19 / Out_TIMEOUT
          In_CERTIFICATE                     -> 22 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 22 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    20    In_ECDH_CLIENT_HELLO               -> 16 / Out_HELLO_VERIFY_REQUEST
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 20 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 20 / Out_TIMEOUT
          In_FINISHED                        -> 20 / Out_TIMEOUT
          In_APPLICATION                     -> 20 / Out_TIMEOUT
          In_CERTIFICATE                     -> 20 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 20 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 20 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 20 / Out_TIMEOUT
    21    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_FINISHED                        -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_APPLICATION                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_Alert_FATAL_DECRYPT_ERROR
    22    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 15 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 22 / Out_TIMEOUT
          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    23    In_ECDH_CLIENT_HELLO               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
          In_FINISHED                        -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 23 / Out_TIMEOUT
          In_CERTIFICATE                     -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 8 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 18 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 18 / Out_TIMEOUT
    24    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 25 / Out_CHANGE_CIPHER_SPEC_FINISHED
          In_APPLICATION                     -> 24 / Out_TIMEOUT
          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    25    In_ECDH_CLIENT_HELLO               -> 26 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 25 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 12 / Out_TIMEOUT
          In_FINISHED                        -> 25 / Out_TIMEOUT
          In_APPLICATION                     -> 25 / Out_APPLICATION
          In_CERTIFICATE                     -> 25 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 25 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 25 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    26    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 26 / Out_TIMEOUT
          In_CERTIFICATE                     -> 27 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 27 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    27    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 28 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 27 / Out_TIMEOUT
          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    28    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 21 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 28 / Out_TIMEOUT
          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 29 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
    29    In_ECDH_CLIENT_HELLO               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 24 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 29 / Out_TIMEOUT
          In_CERTIFICATE                     -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 12 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 12 / Out_Alert_FATAL_CLOSE_NOTIFY
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 12 / Out_TIMEOUT
-}
ctinydtlsEcdheCertReq :: MealyAutomaton Int CtinydtlsEcdheCertReqInput CtinydtlsEcdheCertReqOutput
ctinydtlsEcdheCertReq =
    case mkMealyAutomatonTable 30 0 deltaTable lambdaTable of
        Right m -> m
        Left err -> error ("haal-gen: invalid transition table: " ++ err)
  where
    deltaTable =
        "\1\2\3\0\0\0\0\0\0\0\
        \\4\5\6\1\1\1\1\1\1\1\
        \\5\2\20\2\2\2\2\2\2\2\
        \\6\20\3\3\3\3\3\3\3\3\
        \\7\8\9\7\4\10\10\7\11\11\
        \\19\5\16\5\5\5\5\5\5\5\
        \\9\16\6\6\6\6\6\6\6\6\
        \\7\8\12\7\7\7\7\7\11\11\
        \\8\8\12\8\8\8\8\8\18\18\
        \\13\14\13\13\13\13\13\13\13\13\
        \\7\15\9\7\10\7\7\7\11\11\
        \\4\18\13\11\11\11\11\11\11\11\
        \\12\12\12\12\12\12\12\12\12\12\
        \\9\14\13\13\13\13\13\13\13\13\
        \\17\14\12\14\14\14\14\14\14\14\
        \\8\8\21\8\15\8\8\23\18\18\
        \\17\16\16\16\16\16\16\16\16\16\
        \\14\14\12\14\14\14\14\14\14\14\
        \\19\18\12\18\18\18\18\18\18\18\
        \\8\8\21\8\19\22\22\8\18\18\
        \\16\20\20\20\20\20\20\20\20\20\
        \\12\12\12\12\12\12\12\12\12\12\
        \\8\15\21\8\22\8\8\8\18\18\
        \\8\8\24\8\23\8\8\8\18\18\
        \\12\12\21\25\24\12\12\12\12\12\
        \\26\25\12\25\25\25\25\25\12\12\
        \\12\12\21\12\26\27\27\12\12\12\
        \\12\28\21\12\27\12\12\12\12\12\
        \\12\12\21\12\28\12\12\29\12\12\
        \\12\12\24\12\29\12\12\12\12\12"
    lambdaTable =
        "\0\1\1\1\1\1\1\1\1\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\0\1\1\1\1\1\1\1\1\1\
        \\0\1\1\1\1\1\1\1\1\1\
        \\3\3\1\3\1\1\1\3\4\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\1\1\1\1\1\1\1\1\1\1\
        \\1\1\1\1\1\1\1\1\1\1\
        \\5\5\5\5\5\5\5\5\5\5\
        \\3\1\1\3\1\3\3\3\4\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\1\1\1\1\1\1\1\1\1\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\3\3\1\3\1\3\3\1\4\1\
        \\2\1\1\1\1\1\1\1\1\1\
        \\5\5\5\5\5\5\5\5\5\5\
        \\2\1\1\1\1\1\1\1\1\1\
        \\3\3\1\3\1\1\1\3\4\1\
        \\0\1\1\1\1\1\1\1\1\1\
        \\5\5\5\5\5\5\5\5\5\5\
        \\3\1\1\3\1\3\3\3\4\1\
        \\3\3\1\3\1\3\3\3\4\1\
        \\3\3\1\6\1\3\3\3\4\1\
        \\2\1\1\1\7\1\1\1\4\1\
        \\3\3\1\3\1\1\1\3\4\1\
        \\3\1\1\3\1\3\3\3\4\1\
        \\3\3\1\3\1\3\3\1\4\1\
        \\3\3\1\3\1\3\3\3\4\1"