haal-models-0.1.3.0: src/Haal/Models/DTLS/ScandiumV2V0V0Psk.hs
-- Generated by haal-gen. Do not edit manually.
module Haal.Models.DTLS.ScandiumV2V0V0Psk
( ScandiumV2V0V0PskInput (..)
, ScandiumV2V0V0PskOutput (..)
, scandiumV2V0V0Psk
) where
import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomatonTable)
data ScandiumV2V0V0PskInput
= In_PSK_CLIENT_HELLO
| In_PSK_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 ScandiumV2V0V0PskOutput
= Out_HELLO_VERIFY_REQUEST
| Out_TIMEOUT
| Out_SERVER_HELLO_SERVER_HELLO_DONE
| Out_Alert_FATAL_INTERNAL_ERROR
| Out_Alert_WARNING_CLOSE_NOTIFY
| Out_CHANGE_CIPHER_SPEC_FINISHED
| Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
| Out_Alert_WARNING_NO_RENEGOTIATION
| Out_APPLICATION
deriving (Show, Eq, Ord, Enum, Bounded)
{- Transitions (state input -> next state / output):
0 In_PSK_CLIENT_HELLO -> 1 / Out_HELLO_VERIFY_REQUEST
In_PSK_CLIENT_KEY_EXCHANGE -> 0 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 0 / Out_TIMEOUT
In_APPLICATION -> 0 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 0 / Out_TIMEOUT
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 0 / Out_TIMEOUT
1 In_PSK_CLIENT_HELLO -> 3 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 1 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 1 / Out_TIMEOUT
In_APPLICATION -> 1 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_TIMEOUT
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
2 In_PSK_CLIENT_HELLO -> 2 / Out_TIMEOUT
In_PSK_CLIENT_KEY_EXCHANGE -> 2 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 2 / Out_TIMEOUT
In_APPLICATION -> 2 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_TIMEOUT
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
3 In_PSK_CLIENT_HELLO -> 3 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 4 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
In_APPLICATION -> 3 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
4 In_PSK_CLIENT_HELLO -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
In_CHANGE_CIPHER_SPEC -> 6 / Out_TIMEOUT
In_FINISHED -> 7 / Out_CHANGE_CIPHER_SPEC_FINISHED
In_APPLICATION -> 8 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
5 In_PSK_CLIENT_HELLO -> 5 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 4 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 14 / Out_TIMEOUT
In_FINISHED -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
In_APPLICATION -> 9 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
6 In_PSK_CLIENT_HELLO -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_PSK_CLIENT_KEY_EXCHANGE -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_CHANGE_CIPHER_SPEC -> 6 / Out_TIMEOUT
In_FINISHED -> 11 / Out_CHANGE_CIPHER_SPEC_FINISHED
In_APPLICATION -> 12 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
7 In_PSK_CLIENT_HELLO -> 7 / Out_TIMEOUT
In_PSK_CLIENT_KEY_EXCHANGE -> 7 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_CHANGE_CIPHER_SPEC_FINISHED
In_FINISHED -> 7 / Out_TIMEOUT
In_APPLICATION -> 10 / Out_APPLICATION
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
8 In_PSK_CLIENT_HELLO -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
In_CHANGE_CIPHER_SPEC -> 6 / Out_TIMEOUT
In_FINISHED -> 10 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
In_APPLICATION -> 8 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
9 In_PSK_CLIENT_HELLO -> 9 / Out_SERVER_HELLO_SERVER_HELLO_DONE
In_PSK_CLIENT_KEY_EXCHANGE -> 8 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 14 / Out_TIMEOUT
In_FINISHED -> 1 / Out_Alert_FATAL_INTERNAL_ERROR
In_APPLICATION -> 9 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
10 In_PSK_CLIENT_HELLO -> 10 / Out_TIMEOUT
In_PSK_CLIENT_KEY_EXCHANGE -> 10 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 10 / Out_TIMEOUT
In_APPLICATION -> 10 / Out_APPLICATION
In_Alert_WARNING_CLOSE_NOTIFY -> 1 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 1 / Out_TIMEOUT
11 In_PSK_CLIENT_HELLO -> 11 / Out_Alert_WARNING_NO_RENEGOTIATION
In_PSK_CLIENT_KEY_EXCHANGE -> 11 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_CHANGE_CIPHER_SPEC_FINISHED
In_FINISHED -> 11 / Out_TIMEOUT
In_APPLICATION -> 13 / Out_APPLICATION
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
12 In_PSK_CLIENT_HELLO -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_PSK_CLIENT_KEY_EXCHANGE -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_CHANGE_CIPHER_SPEC -> 6 / Out_TIMEOUT
In_FINISHED -> 13 / Out_CHANGE_CIPHER_SPEC_FINISHED_APPLICATION
In_APPLICATION -> 12 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
13 In_PSK_CLIENT_HELLO -> 13 / Out_Alert_WARNING_NO_RENEGOTIATION
In_PSK_CLIENT_KEY_EXCHANGE -> 13 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 2 / Out_TIMEOUT
In_FINISHED -> 13 / Out_TIMEOUT
In_APPLICATION -> 13 / Out_APPLICATION
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
14 In_PSK_CLIENT_HELLO -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_PSK_CLIENT_KEY_EXCHANGE -> 6 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 14 / Out_TIMEOUT
In_FINISHED -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_APPLICATION -> 15 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
15 In_PSK_CLIENT_HELLO -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_PSK_CLIENT_KEY_EXCHANGE -> 12 / Out_TIMEOUT
In_CHANGE_CIPHER_SPEC -> 14 / Out_TIMEOUT
In_FINISHED -> 2 / Out_Alert_FATAL_INTERNAL_ERROR
In_APPLICATION -> 15 / Out_TIMEOUT
In_Alert_WARNING_CLOSE_NOTIFY -> 2 / Out_Alert_WARNING_CLOSE_NOTIFY
In_Alert_FATAL_UNEXPECTED_MESSAGE -> 2 / Out_TIMEOUT
-}
scandiumV2V0V0Psk :: MealyAutomaton Int ScandiumV2V0V0PskInput ScandiumV2V0V0PskOutput
scandiumV2V0V0Psk =
case mkMealyAutomatonTable 16 0 deltaTable lambdaTable of
Right m -> m
Left err -> error ("haal-gen: invalid transition table: " ++ err)
where
deltaTable =
"\1\0\2\0\0\0\0\
\\3\1\2\1\1\1\1\
\\2\2\2\2\2\2\2\
\\3\4\2\1\3\1\1\
\\5\1\6\7\8\1\1\
\\5\4\14\1\9\1\1\
\\2\2\6\11\12\2\2\
\\7\7\2\7\10\1\1\
\\9\1\6\10\8\1\1\
\\9\8\14\1\9\1\1\
\\10\10\2\10\10\1\1\
\\11\11\2\11\13\2\2\
\\2\2\6\13\12\2\2\
\\13\13\2\13\13\2\2\
\\2\6\14\2\15\2\2\
\\2\12\14\2\15\2\2"
lambdaTable =
"\0\1\1\1\1\1\1\
\\2\1\1\1\1\1\1\
\\1\1\1\1\1\1\1\
\\2\1\1\3\1\4\1\
\\2\3\1\5\1\4\1\
\\2\1\1\3\1\4\1\
\\3\3\1\5\1\4\1\
\\1\1\5\1\8\4\1\
\\2\3\1\6\1\4\1\
\\2\1\1\3\1\4\1\
\\1\1\1\1\8\4\1\
\\7\1\5\1\8\4\1\
\\3\3\1\6\1\4\1\
\\7\1\1\1\8\4\1\
\\3\1\1\3\1\4\1\
\\3\1\1\3\1\4\1"