packages feed

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

-- Generated by haal-gen. Do not edit manually.
module Haal.Models.DTLS.OpensslV1V1V1bAllCertNreq
    ( OpensslV1V1V1bAllCertNreqInput (..)
    , OpensslV1V1V1bAllCertNreqOutput (..)
    , opensslV1V1V1bAllCertNreq
    ) where

import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)

data OpensslV1V1V1bAllCertNreqInput
    = In_ECDH_CLIENT_HELLO
    | In_ECDH_CLIENT_KEY_EXCHANGE
    | In_DH_CLIENT_HELLO
    | In_DH_CLIENT_KEY_EXCHANGE
    | In_PSK_CLIENT_HELLO
    | In_PSK_CLIENT_KEY_EXCHANGE
    | In_RSA_CLIENT_HELLO
    | In_RSA_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 OpensslV1V1V1bAllCertNreqOutput
    = Out_HELLO_VERIFY_REQUEST
    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
    | Out_TIMEOUT
    | Out_Alert_FATAL_INTERNAL_ERROR
    | Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
    | Out_SERVER_HELLO_SERVER_HELLO_DONE
    | Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
    | Out_Alert_FATAL_DECODE_ERROR
    | Out_CHANGE_CIPHER_SPEC_FINISHED
    | Out_Alert_FATAL_DECRYPT_ERROR
    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_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 1 / Out_HELLO_VERIFY_REQUEST
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 1 / Out_HELLO_VERIFY_REQUEST
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 0 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          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        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 5 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 6 / Out_SERVER_HELLO_SERVER_HELLO_DONE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 7 / Out_SERVER_HELLO_CERTIFICATE_CERTIFICATE_REQUEST_SERVER_HELLO_DONE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 2 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 2 / Out_TIMEOUT
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_TIMEOUT
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          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               -> 3 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 3 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 3 / Out_TIMEOUT
          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 3 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / 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               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 8 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 9 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    5     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 14 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 15 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    6     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    7     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 18 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 19 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    8     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 16 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    9     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 10 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    10    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 11 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    11    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
          In_APPLICATION                     -> 11 / Out_TIMEOUT
          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
    12    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 21 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 21 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 21 / Out_TIMEOUT
          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 21 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 12 / Out_CHANGE_CIPHER_SPEC_FINISHED
          In_APPLICATION                     -> 12 / Out_TIMEOUT
          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
    13    In_ECDH_CLIENT_HELLO               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 3 / Out_CHANGE_CIPHER_SPEC_FINISHED
          In_APPLICATION                     -> 13 / Out_TIMEOUT
          In_CERTIFICATE                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 13 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 13 / Out_TIMEOUT
    14    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 16 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    15    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 10 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    16    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 10 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    17    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 20 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    18    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 17 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 16 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    19    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_DECODE_ERROR
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_DECRYPT_ERROR
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 20 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 10 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    20    In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_PSK_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_EMPTY_CERTIFICATE               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE_VERIFY              -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    21    In_ECDH_CLIENT_HELLO               -> 21 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 21 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 21 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 21 / Out_TIMEOUT
          In_PSK_CLIENT_HELLO                -> 21 / Out_TIMEOUT
          In_PSK_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 21 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 21 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 3 / Out_TIMEOUT
          In_FINISHED                        -> 21 / Out_TIMEOUT
          In_APPLICATION                     -> 3 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CERTIFICATE                     -> 21 / Out_TIMEOUT
          In_EMPTY_CERTIFICATE               -> 21 / Out_TIMEOUT
          In_CERTIFICATE_VERIFY              -> 21 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 3 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 3 / Out_TIMEOUT
-}
opensslV1V1V1bAllCertNreq :: MealyAutomaton Int OpensslV1V1V1bAllCertNreqInput OpensslV1V1V1bAllCertNreqOutput
opensslV1V1V1bAllCertNreq =
    case mkMealyAutomatonTable 22 0 deltaTable lambdaTable of
        Right m -> m
        Left err -> error ("haal-gen: invalid transition table: " ++ err)
  where
    deltaTable =
        "\1\2\1\2\1\2\1\2\3\2\0\2\2\2\0\0\
        \\4\2\5\2\6\2\7\2\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
        \\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\
        \\2\2\2\2\2\2\2\2\3\2\2\8\9\2\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\14\15\2\2\2\
        \\2\2\2\2\2\10\2\2\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\18\19\2\2\2\
        \\2\16\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
        \\2\10\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\11\2\2\2\2\2\2\2\
        \\3\3\3\3\3\3\3\3\3\12\11\3\3\3\13\13\
        \\21\21\21\21\21\21\21\21\3\12\12\21\21\21\3\3\
        \\3\3\3\3\3\3\3\3\3\3\13\3\3\3\13\13\
        \\2\2\2\16\2\17\2\17\3\2\2\2\2\2\2\2\
        \\2\2\2\10\2\20\2\20\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\2\2\10\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\2\2\20\2\2\
        \\2\2\2\2\2\17\2\16\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\20\2\10\3\2\2\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\3\2\2\2\2\2\2\2\
        \\21\21\21\21\21\21\21\21\3\21\3\21\21\21\3\3"
    lambdaTable =
        "\0\1\0\1\0\1\0\1\2\3\1\1\1\1\2\2\
        \\4\1\5\1\6\1\7\1\2\3\1\1\1\1\2\2\
        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2\
        \\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\
        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
        \\1\8\1\8\1\2\1\8\2\3\1\1\1\1\2\2\
        \\1\1\1\1\1\1\1\1\2\3\1\2\2\1\2\2\
        \\1\2\1\8\1\8\1\8\2\3\1\1\1\1\2\2\
        \\1\2\1\8\1\8\1\8\2\3\1\1\1\1\2\2\
        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
        \\1\1\1\1\1\1\1\1\2\9\2\1\1\1\2\2\
        \\2\2\2\2\2\2\2\2\2\9\2\2\2\2\2\2\
        \\1\1\1\1\1\1\1\1\2\9\2\1\1\1\2\2\
        \\1\8\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
        \\1\8\1\2\1\2\1\2\2\3\1\1\1\1\2\2\
        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
        \\1\1\1\1\1\1\1\1\2\1\1\1\1\2\2\2\
        \\1\8\1\10\1\2\1\2\2\3\1\1\1\1\2\2\
        \\1\8\1\10\1\2\1\2\2\3\1\1\1\1\2\2\
        \\1\1\1\1\1\1\1\1\2\1\1\1\1\1\2\2\
        \\2\2\2\2\2\2\2\2\2\2\1\2\2\2\2\2"