{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Signing
( module SwiftNav.SBP.Signing
) where
import BasicPrelude
import Control.Lens
import Control.Monad.Loops
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
import SwiftNav.SBP.Gnss
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
msgEd25519SignatureDep :: Word16
msgEd25519SignatureDep :: Word16
msgEd25519SignatureDep = Word16
0x0C01
data MsgEd25519SignatureDep = MsgEd25519SignatureDep
{ MsgEd25519SignatureDep -> [Word8]
_msgEd25519SignatureDep_signature :: ![Word8]
, MsgEd25519SignatureDep -> [Word8]
_msgEd25519SignatureDep_fingerprint :: ![Word8]
, MsgEd25519SignatureDep -> [Word32]
_msgEd25519SignatureDep_signed_messages :: ![Word32]
} deriving ( Int -> MsgEd25519SignatureDep -> ShowS
[MsgEd25519SignatureDep] -> ShowS
MsgEd25519SignatureDep -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MsgEd25519SignatureDep] -> ShowS
$cshowList :: [MsgEd25519SignatureDep] -> ShowS
show :: MsgEd25519SignatureDep -> String
$cshow :: MsgEd25519SignatureDep -> String
showsPrec :: Int -> MsgEd25519SignatureDep -> ShowS
$cshowsPrec :: Int -> MsgEd25519SignatureDep -> ShowS
Show, ReadPrec [MsgEd25519SignatureDep]
ReadPrec MsgEd25519SignatureDep
Int -> ReadS MsgEd25519SignatureDep
ReadS [MsgEd25519SignatureDep]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MsgEd25519SignatureDep]
$creadListPrec :: ReadPrec [MsgEd25519SignatureDep]
readPrec :: ReadPrec MsgEd25519SignatureDep
$creadPrec :: ReadPrec MsgEd25519SignatureDep
readList :: ReadS [MsgEd25519SignatureDep]
$creadList :: ReadS [MsgEd25519SignatureDep]
readsPrec :: Int -> ReadS MsgEd25519SignatureDep
$creadsPrec :: Int -> ReadS MsgEd25519SignatureDep
Read, MsgEd25519SignatureDep -> MsgEd25519SignatureDep -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MsgEd25519SignatureDep -> MsgEd25519SignatureDep -> Bool
$c/= :: MsgEd25519SignatureDep -> MsgEd25519SignatureDep -> Bool
== :: MsgEd25519SignatureDep -> MsgEd25519SignatureDep -> Bool
$c== :: MsgEd25519SignatureDep -> MsgEd25519SignatureDep -> Bool
Eq )
instance Binary MsgEd25519SignatureDep where
get :: Get MsgEd25519SignatureDep
get = do
[Word8]
_msgEd25519SignatureDep_signature <- forall (m :: * -> *) a. Applicative m => Int -> m a -> m [a]
replicateM Int
64 Get Word8
getWord8
[Word8]
_msgEd25519SignatureDep_fingerprint <- forall (m :: * -> *) a. Applicative m => Int -> m a -> m [a]
replicateM Int
20 Get Word8
getWord8
[Word32]
_msgEd25519SignatureDep_signed_messages <- forall (m :: * -> *) a. Monad m => m Bool -> m a -> m [a]
whileM (Bool -> Bool
not forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Bool
isEmpty) Get Word32
getWord32le
forall (f :: * -> *) a. Applicative f => a -> f a
pure MsgEd25519SignatureDep {[Word8]
[Word32]
_msgEd25519SignatureDep_signed_messages :: [Word32]
_msgEd25519SignatureDep_fingerprint :: [Word8]
_msgEd25519SignatureDep_signature :: [Word8]
_msgEd25519SignatureDep_signed_messages :: [Word32]
_msgEd25519SignatureDep_fingerprint :: [Word8]
_msgEd25519SignatureDep_signature :: [Word8]
..}
put :: MsgEd25519SignatureDep -> Put
put MsgEd25519SignatureDep {[Word8]
[Word32]
_msgEd25519SignatureDep_signed_messages :: [Word32]
_msgEd25519SignatureDep_fingerprint :: [Word8]
_msgEd25519SignatureDep_signature :: [Word8]
_msgEd25519SignatureDep_signed_messages :: MsgEd25519SignatureDep -> [Word32]
_msgEd25519SignatureDep_fingerprint :: MsgEd25519SignatureDep -> [Word8]
_msgEd25519SignatureDep_signature :: MsgEd25519SignatureDep -> [Word8]
..} = do
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519SignatureDep_signature
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519SignatureDep_fingerprint
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word32 -> Put
putWord32le [Word32]
_msgEd25519SignatureDep_signed_messages
$(makeSBP 'msgEd25519SignatureDep ''MsgEd25519SignatureDep)
$(makeJSON "_msgEd25519SignatureDep_" ''MsgEd25519SignatureDep)
$(makeLenses ''MsgEd25519SignatureDep)
msgEd25519Certificate :: Word16
msgEd25519Certificate :: Word16
msgEd25519Certificate = Word16
0x0C02
data MsgEd25519Certificate = MsgEd25519Certificate
{ MsgEd25519Certificate -> Word8
_msgEd25519Certificate_n_msg :: !Word8
, MsgEd25519Certificate -> [Word8]
_msgEd25519Certificate_fingerprint :: ![Word8]
, MsgEd25519Certificate -> [Word8]
_msgEd25519Certificate_certificate_bytes :: ![Word8]
} deriving ( Int -> MsgEd25519Certificate -> ShowS
[MsgEd25519Certificate] -> ShowS
MsgEd25519Certificate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MsgEd25519Certificate] -> ShowS
$cshowList :: [MsgEd25519Certificate] -> ShowS
show :: MsgEd25519Certificate -> String
$cshow :: MsgEd25519Certificate -> String
showsPrec :: Int -> MsgEd25519Certificate -> ShowS
$cshowsPrec :: Int -> MsgEd25519Certificate -> ShowS
Show, ReadPrec [MsgEd25519Certificate]
ReadPrec MsgEd25519Certificate
Int -> ReadS MsgEd25519Certificate
ReadS [MsgEd25519Certificate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MsgEd25519Certificate]
$creadListPrec :: ReadPrec [MsgEd25519Certificate]
readPrec :: ReadPrec MsgEd25519Certificate
$creadPrec :: ReadPrec MsgEd25519Certificate
readList :: ReadS [MsgEd25519Certificate]
$creadList :: ReadS [MsgEd25519Certificate]
readsPrec :: Int -> ReadS MsgEd25519Certificate
$creadsPrec :: Int -> ReadS MsgEd25519Certificate
Read, MsgEd25519Certificate -> MsgEd25519Certificate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MsgEd25519Certificate -> MsgEd25519Certificate -> Bool
$c/= :: MsgEd25519Certificate -> MsgEd25519Certificate -> Bool
== :: MsgEd25519Certificate -> MsgEd25519Certificate -> Bool
$c== :: MsgEd25519Certificate -> MsgEd25519Certificate -> Bool
Eq )
instance Binary MsgEd25519Certificate where
get :: Get MsgEd25519Certificate
get = do
Word8
_msgEd25519Certificate_n_msg <- Get Word8
getWord8
[Word8]
_msgEd25519Certificate_fingerprint <- forall (m :: * -> *) a. Applicative m => Int -> m a -> m [a]
replicateM Int
20 Get Word8
getWord8
[Word8]
_msgEd25519Certificate_certificate_bytes <- forall (m :: * -> *) a. Monad m => m Bool -> m a -> m [a]
whileM (Bool -> Bool
not forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Bool
isEmpty) Get Word8
getWord8
forall (f :: * -> *) a. Applicative f => a -> f a
pure MsgEd25519Certificate {[Word8]
Word8
_msgEd25519Certificate_certificate_bytes :: [Word8]
_msgEd25519Certificate_fingerprint :: [Word8]
_msgEd25519Certificate_n_msg :: Word8
_msgEd25519Certificate_certificate_bytes :: [Word8]
_msgEd25519Certificate_fingerprint :: [Word8]
_msgEd25519Certificate_n_msg :: Word8
..}
put :: MsgEd25519Certificate -> Put
put MsgEd25519Certificate {[Word8]
Word8
_msgEd25519Certificate_certificate_bytes :: [Word8]
_msgEd25519Certificate_fingerprint :: [Word8]
_msgEd25519Certificate_n_msg :: Word8
_msgEd25519Certificate_certificate_bytes :: MsgEd25519Certificate -> [Word8]
_msgEd25519Certificate_fingerprint :: MsgEd25519Certificate -> [Word8]
_msgEd25519Certificate_n_msg :: MsgEd25519Certificate -> Word8
..} = do
Word8 -> Put
putWord8 Word8
_msgEd25519Certificate_n_msg
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519Certificate_fingerprint
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519Certificate_certificate_bytes
$(makeSBP 'msgEd25519Certificate ''MsgEd25519Certificate)
$(makeJSON "_msgEd25519Certificate_" ''MsgEd25519Certificate)
$(makeLenses ''MsgEd25519Certificate)
msgEd25519Signature :: Word16
msgEd25519Signature :: Word16
msgEd25519Signature = Word16
0x0C03
data MsgEd25519Signature = MsgEd25519Signature
{ MsgEd25519Signature -> Word8
_msgEd25519Signature_stream_counter :: !Word8
, MsgEd25519Signature -> Word8
_msgEd25519Signature_on_demand_counter :: !Word8
, MsgEd25519Signature -> [Word8]
_msgEd25519Signature_signature :: ![Word8]
, MsgEd25519Signature -> [Word8]
_msgEd25519Signature_fingerprint :: ![Word8]
, MsgEd25519Signature -> [Word32]
_msgEd25519Signature_signed_messages :: ![Word32]
} deriving ( Int -> MsgEd25519Signature -> ShowS
[MsgEd25519Signature] -> ShowS
MsgEd25519Signature -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MsgEd25519Signature] -> ShowS
$cshowList :: [MsgEd25519Signature] -> ShowS
show :: MsgEd25519Signature -> String
$cshow :: MsgEd25519Signature -> String
showsPrec :: Int -> MsgEd25519Signature -> ShowS
$cshowsPrec :: Int -> MsgEd25519Signature -> ShowS
Show, ReadPrec [MsgEd25519Signature]
ReadPrec MsgEd25519Signature
Int -> ReadS MsgEd25519Signature
ReadS [MsgEd25519Signature]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MsgEd25519Signature]
$creadListPrec :: ReadPrec [MsgEd25519Signature]
readPrec :: ReadPrec MsgEd25519Signature
$creadPrec :: ReadPrec MsgEd25519Signature
readList :: ReadS [MsgEd25519Signature]
$creadList :: ReadS [MsgEd25519Signature]
readsPrec :: Int -> ReadS MsgEd25519Signature
$creadsPrec :: Int -> ReadS MsgEd25519Signature
Read, MsgEd25519Signature -> MsgEd25519Signature -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MsgEd25519Signature -> MsgEd25519Signature -> Bool
$c/= :: MsgEd25519Signature -> MsgEd25519Signature -> Bool
== :: MsgEd25519Signature -> MsgEd25519Signature -> Bool
$c== :: MsgEd25519Signature -> MsgEd25519Signature -> Bool
Eq )
instance Binary MsgEd25519Signature where
get :: Get MsgEd25519Signature
get = do
Word8
_msgEd25519Signature_stream_counter <- Get Word8
getWord8
Word8
_msgEd25519Signature_on_demand_counter <- Get Word8
getWord8
[Word8]
_msgEd25519Signature_signature <- forall (m :: * -> *) a. Applicative m => Int -> m a -> m [a]
replicateM Int
64 Get Word8
getWord8
[Word8]
_msgEd25519Signature_fingerprint <- forall (m :: * -> *) a. Applicative m => Int -> m a -> m [a]
replicateM Int
20 Get Word8
getWord8
[Word32]
_msgEd25519Signature_signed_messages <- forall (m :: * -> *) a. Monad m => m Bool -> m a -> m [a]
whileM (Bool -> Bool
not forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Get Bool
isEmpty) Get Word32
getWord32le
forall (f :: * -> *) a. Applicative f => a -> f a
pure MsgEd25519Signature {[Word8]
[Word32]
Word8
_msgEd25519Signature_signed_messages :: [Word32]
_msgEd25519Signature_fingerprint :: [Word8]
_msgEd25519Signature_signature :: [Word8]
_msgEd25519Signature_on_demand_counter :: Word8
_msgEd25519Signature_stream_counter :: Word8
_msgEd25519Signature_signed_messages :: [Word32]
_msgEd25519Signature_fingerprint :: [Word8]
_msgEd25519Signature_signature :: [Word8]
_msgEd25519Signature_on_demand_counter :: Word8
_msgEd25519Signature_stream_counter :: Word8
..}
put :: MsgEd25519Signature -> Put
put MsgEd25519Signature {[Word8]
[Word32]
Word8
_msgEd25519Signature_signed_messages :: [Word32]
_msgEd25519Signature_fingerprint :: [Word8]
_msgEd25519Signature_signature :: [Word8]
_msgEd25519Signature_on_demand_counter :: Word8
_msgEd25519Signature_stream_counter :: Word8
_msgEd25519Signature_signed_messages :: MsgEd25519Signature -> [Word32]
_msgEd25519Signature_fingerprint :: MsgEd25519Signature -> [Word8]
_msgEd25519Signature_signature :: MsgEd25519Signature -> [Word8]
_msgEd25519Signature_on_demand_counter :: MsgEd25519Signature -> Word8
_msgEd25519Signature_stream_counter :: MsgEd25519Signature -> Word8
..} = do
Word8 -> Put
putWord8 Word8
_msgEd25519Signature_stream_counter
Word8 -> Put
putWord8 Word8
_msgEd25519Signature_on_demand_counter
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519Signature_signature
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word8 -> Put
putWord8 [Word8]
_msgEd25519Signature_fingerprint
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ Word32 -> Put
putWord32le [Word32]
_msgEd25519Signature_signed_messages
$(makeSBP 'msgEd25519Signature ''MsgEd25519Signature)
$(makeJSON "_msgEd25519Signature_" ''MsgEd25519Signature)
$(makeLenses ''MsgEd25519Signature)