packages feed

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

-- Generated by haal-gen. Do not edit manually.
module Haal.Models.DTLS.NssV3V6V7DheEcdheRsa
    ( NssV3V6V7DheEcdheRsaInput (..)
    , NssV3V6V7DheEcdheRsaOutput (..)
    , nssV3V6V7DheEcdheRsa
    ) where

import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)

data NssV3V6V7DheEcdheRsaInput
    = In_ECDH_CLIENT_HELLO
    | In_ECDH_CLIENT_KEY_EXCHANGE
    | In_DH_CLIENT_HELLO
    | In_DH_CLIENT_KEY_EXCHANGE
    | In_RSA_CLIENT_HELLO
    | In_RSA_CLIENT_KEY_EXCHANGE
    | In_CHANGE_CIPHER_SPEC
    | In_FINISHED
    | In_APPLICATION
    | In_Alert_WARNING_CLOSE_NOTIFY
    | In_Alert_FATAL_UNEXPECTED_MESSAGE
    deriving (Show, Eq, Ord, Enum, Bounded)

data NssV3V6V7DheEcdheRsaOutput
    = Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
    | Out_Alert_FATAL_UNEXPECTED_MESSAGE
    | Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
    | Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
    | Out_TIMEOUT
    | Out_SOCKET_CLOSED
    | Out_Alert_FATAL_HANDSHAKE_FAILURE
    | Out_Alert_FATAL_DECODE_ERROR
    | Out_CHANGE_CIPHER_SPEC_FINISHED
    | Out_Alert_WARNING_CLOSE_NOTIFY
    deriving (Show, Eq, Ord, Enum, Bounded)

{- Transitions (state  input -> next state / output):
    0     In_ECDH_CLIENT_HELLO               -> 1 / Out_SERVER_HELLO_CERTIFICATE_ECDHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_HELLO                 -> 3 / Out_SERVER_HELLO_CERTIFICATE_DHE_SERVER_KEY_EXCHANGE_SERVER_HELLO_DONE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_HELLO                -> 4 / Out_SERVER_HELLO_CERTIFICATE_SERVER_HELLO_DONE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 0 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    1     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 6 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_HANDSHAKE_FAILURE
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 1 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    2     In_ECDH_CLIENT_HELLO               -> 2 / Out_SOCKET_CLOSED
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 2 / Out_SOCKET_CLOSED
          In_DH_CLIENT_HELLO                 -> 2 / Out_SOCKET_CLOSED
          In_DH_CLIENT_KEY_EXCHANGE          -> 2 / Out_SOCKET_CLOSED
          In_RSA_CLIENT_HELLO                -> 2 / Out_SOCKET_CLOSED
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_SOCKET_CLOSED
          In_CHANGE_CIPHER_SPEC              -> 2 / Out_SOCKET_CLOSED
          In_FINISHED                        -> 2 / Out_SOCKET_CLOSED
          In_APPLICATION                     -> 2 / Out_SOCKET_CLOSED
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_SOCKET_CLOSED
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_SOCKET_CLOSED
    3     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          -> 6 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 7 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 3 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    4     In_ECDH_CLIENT_HELLO               -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 7 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_DH_CLIENT_KEY_EXCHANGE          -> 7 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 6 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 4 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 2 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_TIMEOUT
    5     In_ECDH_CLIENT_HELLO               -> 5 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 5 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 5 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 5 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 5 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 5 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 5 / Out_TIMEOUT
          In_APPLICATION                     -> 5 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 5 / Out_TIMEOUT
    6     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_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 8 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 6 / Out_TIMEOUT
          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_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_APPLICATION                     -> 7 / Out_TIMEOUT
          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        -> 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_RSA_CLIENT_HELLO                -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_RSA_CLIENT_KEY_EXCHANGE         -> 2 / Out_Alert_FATAL_UNEXPECTED_MESSAGE
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 9 / Out_CHANGE_CIPHER_SPEC_FINISHED
          In_APPLICATION                     -> 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               -> 9 / Out_TIMEOUT
          In_ECDH_CLIENT_KEY_EXCHANGE        -> 9 / Out_TIMEOUT
          In_DH_CLIENT_HELLO                 -> 9 / Out_TIMEOUT
          In_DH_CLIENT_KEY_EXCHANGE          -> 9 / Out_TIMEOUT
          In_RSA_CLIENT_HELLO                -> 9 / Out_TIMEOUT
          In_RSA_CLIENT_KEY_EXCHANGE         -> 9 / Out_TIMEOUT
          In_CHANGE_CIPHER_SPEC              -> 5 / Out_TIMEOUT
          In_FINISHED                        -> 9 / Out_TIMEOUT
          In_APPLICATION                     -> 9 / Out_TIMEOUT
          In_Alert_WARNING_CLOSE_NOTIFY      -> 5 / Out_TIMEOUT
          In_Alert_FATAL_UNEXPECTED_MESSAGE  -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
-}
nssV3V6V7DheEcdheRsa :: MealyAutomaton Int NssV3V6V7DheEcdheRsaInput NssV3V6V7DheEcdheRsaOutput
nssV3V6V7DheEcdheRsa =
    case mkMealyAutomatonTable 10 0 deltaTable lambdaTable of
        Right m -> m
        Left err -> error ("haal-gen: invalid transition table: " ++ err)
  where
    deltaTable =
        "\1\2\3\2\4\2\5\2\0\2\2\
        \\2\6\2\2\2\2\5\2\1\2\2\
        \\2\2\2\2\2\2\2\2\2\2\2\
        \\2\2\2\6\2\7\5\2\3\2\2\
        \\2\7\2\7\2\6\5\2\4\2\2\
        \\5\5\5\5\5\5\5\5\5\5\5\
        \\2\2\2\2\2\2\8\2\6\2\2\
        \\2\2\2\2\2\2\5\2\7\2\2\
        \\2\2\2\2\2\2\5\9\2\2\2\
        \\9\9\9\9\9\9\5\9\9\5\2"
    lambdaTable =
        "\0\1\2\1\3\1\4\1\4\4\4\
        \\1\4\1\6\1\6\4\1\4\4\4\
        \\5\5\5\5\5\5\5\5\5\5\5\
        \\1\7\1\4\1\4\4\1\4\4\4\
        \\1\4\1\4\1\4\4\1\4\4\4\
        \\4\4\4\4\4\4\4\4\4\4\4\
        \\1\1\1\1\1\1\4\1\4\4\4\
        \\1\1\1\1\1\1\4\1\4\4\4\
        \\1\1\1\1\1\1\4\8\1\4\4\
        \\4\4\4\4\4\4\4\4\4\4\9"