packages feed

haal-models-0.1.3.0: src/Haal/Models/TLS/RSABSAFECV4V0V4ServerRegular.hs

-- Generated by haal-gen. Do not edit manually.
module Haal.Models.TLS.RSABSAFECV4V0V4ServerRegular
    ( RSABSAFECV4V0V4ServerRegularInput (..)
    , RSABSAFECV4V0V4ServerRegularOutput (..)
    , rSABSAFECV4V0V4ServerRegular
    ) where

import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)

data RSABSAFECV4V0V4ServerRegularInput
    = In_ApplicationData
    | In_ApplicationDataEmpty
    | In_ChangeCipherSpec
    | In_ClientHelloRSA
    | In_ClientKeyExchange
    | In_EmptyCertificate
    | In_Finished
    | In_HeartbeatRequest
    deriving (Show, Eq, Ord, Enum, Bounded)

data RSABSAFECV4V0V4ServerRegularOutput
    = Out_Alert_Warning__Close_notify
    | Out_Empty
    | Out_ServerHello___Certificate___ServerHelloDone
    | Out_Alert_Fatal__Unexpected_message
    | Out_Alert_Fatal__Bad_record_MAC
    | Out_ChangeCipherSpec___Finished
    | Out_Alert_Fatal__Illegal_parameter
    | Out_ApplicationDataAlert_Warning__Close_notify
    | Out_Alert_Fatal__Illegal_parameter_Alert_Warning__Close_notify
    | Out_Alert_Fatal__Internal_error
    | Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify
    deriving (Show, Eq, Ord, Enum, Bounded)

{- Transitions (state  input -> next state / output):
    0     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
          In_ApplicationDataEmpty  -> 2 / Out_Empty
          In_ChangeCipherSpec      -> 3 / Out_Empty
          In_ClientHelloRSA        -> 4 / Out_ServerHello___Certificate___ServerHelloDone
          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
    1     In_ApplicationData       -> 1 / Out_Empty
          In_ApplicationDataEmpty  -> 1 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Empty
          In_ClientHelloRSA        -> 1 / Out_Empty
          In_ClientKeyExchange     -> 1 / Out_Empty
          In_EmptyCertificate      -> 1 / Out_Empty
          In_Finished              -> 1 / Out_Empty
          In_HeartbeatRequest      -> 1 / Out_Empty
    2     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
          In_ApplicationDataEmpty  -> 3 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Alert_Warning__Close_notify
          In_ClientHelloRSA        -> 1 / Out_Alert_Warning__Close_notify
          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
    3     In_ApplicationData       -> 1 / Out_Alert_Warning__Close_notify
          In_ApplicationDataEmpty  -> 1 / Out_Alert_Warning__Close_notify
          In_ChangeCipherSpec      -> 1 / Out_Alert_Warning__Close_notify
          In_ClientHelloRSA        -> 1 / Out_Alert_Warning__Close_notify
          In_ClientKeyExchange     -> 1 / Out_Alert_Warning__Close_notify
          In_EmptyCertificate      -> 1 / Out_Alert_Warning__Close_notify
          In_Finished              -> 1 / Out_Alert_Warning__Close_notify
          In_HeartbeatRequest      -> 1 / Out_Alert_Warning__Close_notify
    4     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ApplicationDataEmpty  -> 4 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Illegal_parameter
          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ClientKeyExchange     -> 8 / Out_Empty
          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
    5     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ApplicationDataEmpty  -> 6 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Bad_record_MAC
          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Bad_record_MAC
          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Bad_record_MAC
          In_Finished              -> 7 / Out_ChangeCipherSpec___Finished
          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
    6     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ApplicationDataEmpty  -> 6 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
          In_Finished              -> 7 / Out_ChangeCipherSpec___Finished
          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
    7     In_ApplicationData       -> 1 / Out_ApplicationDataAlert_Warning__Close_notify
          In_ApplicationDataEmpty  -> 7 / Out_Empty
          In_ChangeCipherSpec      -> 1 / Out_Alert_Fatal__Illegal_parameter_Alert_Warning__Close_notify
          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Internal_error
          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message_Alert_Warning__Close_notify
    8     In_ApplicationData       -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ApplicationDataEmpty  -> 8 / Out_Empty
          In_ChangeCipherSpec      -> 5 / Out_Empty
          In_ClientHelloRSA        -> 1 / Out_Alert_Fatal__Unexpected_message
          In_ClientKeyExchange     -> 1 / Out_Alert_Fatal__Unexpected_message
          In_EmptyCertificate      -> 1 / Out_Alert_Fatal__Unexpected_message
          In_Finished              -> 1 / Out_Alert_Fatal__Unexpected_message
          In_HeartbeatRequest      -> 1 / Out_Alert_Fatal__Unexpected_message
-}
rSABSAFECV4V0V4ServerRegular :: MealyAutomaton Int RSABSAFECV4V0V4ServerRegularInput RSABSAFECV4V0V4ServerRegularOutput
rSABSAFECV4V0V4ServerRegular =
    case mkMealyAutomatonTable 9 0 deltaTable lambdaTable of
        Right m -> m
        Left err -> error ("haal-gen: invalid transition table: " ++ err)
  where
    deltaTable =
        "\1\2\3\4\1\1\1\1\
        \\1\1\1\1\1\1\1\1\
        \\1\3\1\1\1\1\1\1\
        \\1\1\1\1\1\1\1\1\
        \\1\4\1\1\8\1\1\1\
        \\1\6\1\1\1\1\7\1\
        \\1\6\1\1\1\1\7\1\
        \\1\7\1\1\1\1\1\1\
        \\1\8\5\1\1\1\1\1"
    lambdaTable =
        "\0\1\1\2\0\0\0\0\
        \\1\1\1\1\1\1\1\1\
        \\0\1\0\0\0\0\0\0\
        \\0\0\0\0\0\0\0\0\
        \\3\1\6\3\1\3\3\3\
        \\3\1\4\4\3\4\5\3\
        \\3\1\3\3\3\3\5\3\
        \\7\1\8\9\3\3\3\10\
        \\3\1\1\3\3\3\3\3"