{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
module Cardano.Crypto.VRF.NeverUsed (
NeverVRF,
VerKeyVRF (..),
SignKeyVRF (..),
CertVRF (..),
)
where
import Cardano.Binary.FixedSizeCodec (FixedSizeCodec (..), guardFixedSized)
import Control.DeepSeq (NFData (..))
import qualified Data.ByteString as BS
import GHC.Generics (Generic)
import NoThunks.Class (NoThunks)
import Cardano.Crypto.VRF.Class
data NeverVRF
instance NFData (VerKeyVRF NeverVRF) where
rnf :: VerKeyVRF NeverVRF -> ()
rnf VerKeyVRF NeverVRF
x = VerKeyVRF NeverVRF
x VerKeyVRF NeverVRF -> () -> ()
forall a b. a -> b -> b
`seq` ()
instance NFData (SignKeyVRF NeverVRF) where
rnf :: SignKeyVRF NeverVRF -> ()
rnf SignKeyVRF NeverVRF
x = SignKeyVRF NeverVRF
x SignKeyVRF NeverVRF -> () -> ()
forall a b. a -> b -> b
`seq` ()
instance NFData (CertVRF NeverVRF) where
rnf :: CertVRF NeverVRF -> ()
rnf CertVRF NeverVRF
x = CertVRF NeverVRF
x CertVRF NeverVRF -> () -> ()
forall a b. a -> b -> b
`seq` ()
instance VRFAlgorithm NeverVRF where
data VerKeyVRF NeverVRF = NeverUsedVerKeyVRF
deriving (Int -> VerKeyVRF NeverVRF -> ShowS
[VerKeyVRF NeverVRF] -> ShowS
VerKeyVRF NeverVRF -> String
(Int -> VerKeyVRF NeverVRF -> ShowS)
-> (VerKeyVRF NeverVRF -> String)
-> ([VerKeyVRF NeverVRF] -> ShowS)
-> Show (VerKeyVRF NeverVRF)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VerKeyVRF NeverVRF -> ShowS
showsPrec :: Int -> VerKeyVRF NeverVRF -> ShowS
$cshow :: VerKeyVRF NeverVRF -> String
show :: VerKeyVRF NeverVRF -> String
$cshowList :: [VerKeyVRF NeverVRF] -> ShowS
showList :: [VerKeyVRF NeverVRF] -> ShowS
Show, VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool
(VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool)
-> (VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool)
-> Eq (VerKeyVRF NeverVRF)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool
== :: VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool
$c/= :: VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool
/= :: VerKeyVRF NeverVRF -> VerKeyVRF NeverVRF -> Bool
Eq, (forall x. VerKeyVRF NeverVRF -> Rep (VerKeyVRF NeverVRF) x)
-> (forall x. Rep (VerKeyVRF NeverVRF) x -> VerKeyVRF NeverVRF)
-> Generic (VerKeyVRF NeverVRF)
forall x. Rep (VerKeyVRF NeverVRF) x -> VerKeyVRF NeverVRF
forall x. VerKeyVRF NeverVRF -> Rep (VerKeyVRF NeverVRF) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. VerKeyVRF NeverVRF -> Rep (VerKeyVRF NeverVRF) x
from :: forall x. VerKeyVRF NeverVRF -> Rep (VerKeyVRF NeverVRF) x
$cto :: forall x. Rep (VerKeyVRF NeverVRF) x -> VerKeyVRF NeverVRF
to :: forall x. Rep (VerKeyVRF NeverVRF) x -> VerKeyVRF NeverVRF
Generic, Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
Proxy (VerKeyVRF NeverVRF) -> String
(Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Proxy (VerKeyVRF NeverVRF) -> String)
-> NoThunks (VerKeyVRF NeverVRF)
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
$cnoThunks :: Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
noThunks :: Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
wNoThunks :: Context -> VerKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
$cshowTypeOf :: Proxy (VerKeyVRF NeverVRF) -> String
showTypeOf :: Proxy (VerKeyVRF NeverVRF) -> String
NoThunks)
data SignKeyVRF NeverVRF = NeverUsedSignKeyVRF
deriving (Int -> SignKeyVRF NeverVRF -> ShowS
[SignKeyVRF NeverVRF] -> ShowS
SignKeyVRF NeverVRF -> String
(Int -> SignKeyVRF NeverVRF -> ShowS)
-> (SignKeyVRF NeverVRF -> String)
-> ([SignKeyVRF NeverVRF] -> ShowS)
-> Show (SignKeyVRF NeverVRF)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SignKeyVRF NeverVRF -> ShowS
showsPrec :: Int -> SignKeyVRF NeverVRF -> ShowS
$cshow :: SignKeyVRF NeverVRF -> String
show :: SignKeyVRF NeverVRF -> String
$cshowList :: [SignKeyVRF NeverVRF] -> ShowS
showList :: [SignKeyVRF NeverVRF] -> ShowS
Show, SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool
(SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool)
-> (SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool)
-> Eq (SignKeyVRF NeverVRF)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool
== :: SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool
$c/= :: SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool
/= :: SignKeyVRF NeverVRF -> SignKeyVRF NeverVRF -> Bool
Eq, (forall x. SignKeyVRF NeverVRF -> Rep (SignKeyVRF NeverVRF) x)
-> (forall x. Rep (SignKeyVRF NeverVRF) x -> SignKeyVRF NeverVRF)
-> Generic (SignKeyVRF NeverVRF)
forall x. Rep (SignKeyVRF NeverVRF) x -> SignKeyVRF NeverVRF
forall x. SignKeyVRF NeverVRF -> Rep (SignKeyVRF NeverVRF) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SignKeyVRF NeverVRF -> Rep (SignKeyVRF NeverVRF) x
from :: forall x. SignKeyVRF NeverVRF -> Rep (SignKeyVRF NeverVRF) x
$cto :: forall x. Rep (SignKeyVRF NeverVRF) x -> SignKeyVRF NeverVRF
to :: forall x. Rep (SignKeyVRF NeverVRF) x -> SignKeyVRF NeverVRF
Generic, Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
Proxy (SignKeyVRF NeverVRF) -> String
(Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Proxy (SignKeyVRF NeverVRF) -> String)
-> NoThunks (SignKeyVRF NeverVRF)
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
$cnoThunks :: Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
noThunks :: Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
wNoThunks :: Context -> SignKeyVRF NeverVRF -> IO (Maybe ThunkInfo)
$cshowTypeOf :: Proxy (SignKeyVRF NeverVRF) -> String
showTypeOf :: Proxy (SignKeyVRF NeverVRF) -> String
NoThunks)
data CertVRF NeverVRF = NeverUsedCertVRF
deriving (Int -> CertVRF NeverVRF -> ShowS
[CertVRF NeverVRF] -> ShowS
CertVRF NeverVRF -> String
(Int -> CertVRF NeverVRF -> ShowS)
-> (CertVRF NeverVRF -> String)
-> ([CertVRF NeverVRF] -> ShowS)
-> Show (CertVRF NeverVRF)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CertVRF NeverVRF -> ShowS
showsPrec :: Int -> CertVRF NeverVRF -> ShowS
$cshow :: CertVRF NeverVRF -> String
show :: CertVRF NeverVRF -> String
$cshowList :: [CertVRF NeverVRF] -> ShowS
showList :: [CertVRF NeverVRF] -> ShowS
Show, CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
(CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> Eq (CertVRF NeverVRF)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
== :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
$c/= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
/= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
Eq, Eq (CertVRF NeverVRF)
Eq (CertVRF NeverVRF) =>
(CertVRF NeverVRF -> CertVRF NeverVRF -> Ordering)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> Bool)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF)
-> (CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF)
-> Ord (CertVRF NeverVRF)
CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
CertVRF NeverVRF -> CertVRF NeverVRF -> Ordering
CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CertVRF NeverVRF -> CertVRF NeverVRF -> Ordering
compare :: CertVRF NeverVRF -> CertVRF NeverVRF -> Ordering
$c< :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
< :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
$c<= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
<= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
$c> :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
> :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
$c>= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
>= :: CertVRF NeverVRF -> CertVRF NeverVRF -> Bool
$cmax :: CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF
max :: CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF
$cmin :: CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF
min :: CertVRF NeverVRF -> CertVRF NeverVRF -> CertVRF NeverVRF
Ord, (forall x. CertVRF NeverVRF -> Rep (CertVRF NeverVRF) x)
-> (forall x. Rep (CertVRF NeverVRF) x -> CertVRF NeverVRF)
-> Generic (CertVRF NeverVRF)
forall x. Rep (CertVRF NeverVRF) x -> CertVRF NeverVRF
forall x. CertVRF NeverVRF -> Rep (CertVRF NeverVRF) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. CertVRF NeverVRF -> Rep (CertVRF NeverVRF) x
from :: forall x. CertVRF NeverVRF -> Rep (CertVRF NeverVRF) x
$cto :: forall x. Rep (CertVRF NeverVRF) x -> CertVRF NeverVRF
to :: forall x. Rep (CertVRF NeverVRF) x -> CertVRF NeverVRF
Generic, Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo)
Proxy (CertVRF NeverVRF) -> String
(Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo))
-> (Proxy (CertVRF NeverVRF) -> String)
-> NoThunks (CertVRF NeverVRF)
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
$cnoThunks :: Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo)
noThunks :: Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo)
wNoThunks :: Context -> CertVRF NeverVRF -> IO (Maybe ThunkInfo)
$cshowTypeOf :: Proxy (CertVRF NeverVRF) -> String
showTypeOf :: Proxy (CertVRF NeverVRF) -> String
NoThunks)
algorithmNameVRF :: forall (proxy :: * -> *). proxy NeverVRF -> String
algorithmNameVRF proxy NeverVRF
_ = String
"never"
deriveVerKeyVRF :: SignKeyVRF NeverVRF -> VerKeyVRF NeverVRF
deriveVerKeyVRF SignKeyVRF NeverVRF
_ = VerKeyVRF NeverVRF
NeverUsedVerKeyVRF
evalVRF :: forall a.
(HasCallStack, Signable NeverVRF a) =>
ContextVRF NeverVRF
-> a
-> SignKeyVRF NeverVRF
-> (OutputVRF NeverVRF, CertVRF NeverVRF)
evalVRF = String
-> ()
-> a
-> SignKeyVRF NeverVRF
-> (OutputVRF NeverVRF, CertVRF NeverVRF)
forall a. HasCallStack => String -> a
error String
"VRF unavailable"
verifyVRF :: forall a.
(HasCallStack, Signable NeverVRF a) =>
ContextVRF NeverVRF
-> VerKeyVRF NeverVRF
-> a
-> CertVRF NeverVRF
-> Maybe (OutputVRF NeverVRF)
verifyVRF = String
-> ()
-> VerKeyVRF NeverVRF
-> a
-> CertVRF NeverVRF
-> Maybe (OutputVRF NeverVRF)
forall a. HasCallStack => String -> a
error String
"VRF unavailable"
sizeOutputVRF :: forall (proxy :: * -> *). proxy NeverVRF -> Word
sizeOutputVRF proxy NeverVRF
_ = Word
0
genKeyVRF :: Seed -> SignKeyVRF NeverVRF
genKeyVRF Seed
_ = SignKeyVRF NeverVRF
NeverUsedSignKeyVRF
seedSizeVRF :: forall (proxy :: * -> *). proxy NeverVRF -> Word
seedSizeVRF proxy NeverVRF
_ = Word
0
instance FixedSizeCodec (VerKeyVRF NeverVRF) where
type FixedSize (VerKeyVRF NeverVRF) = 0
rawEncodeFixedSized :: VerKeyVRF NeverVRF -> ByteString
rawEncodeFixedSized VerKeyVRF NeverVRF
_ = ByteString
BS.empty
rawDecodeFixedSized :: forall (m :: * -> *).
MonadFail m =>
ByteString -> m (VerKeyVRF NeverVRF)
rawDecodeFixedSized ByteString
bs = ByteString -> m (VerKeyVRF NeverVRF) -> m (VerKeyVRF NeverVRF)
forall a (m :: * -> *).
(FixedSizeCodec a, MonadFail m, Typeable a) =>
ByteString -> m a -> m a
guardFixedSized ByteString
bs (m (VerKeyVRF NeverVRF) -> m (VerKeyVRF NeverVRF))
-> m (VerKeyVRF NeverVRF) -> m (VerKeyVRF NeverVRF)
forall a b. (a -> b) -> a -> b
$ do
VerKeyVRF NeverVRF -> m (VerKeyVRF NeverVRF)
forall a. a -> m a
forall (f :: * -> *) a. Applicative f => a -> f a
pure VerKeyVRF NeverVRF
NeverUsedVerKeyVRF
{-# INLINE rawDecodeFixedSized #-}
instance FixedSizeCodec (SignKeyVRF NeverVRF) where
type FixedSize (SignKeyVRF NeverVRF) = 0
rawEncodeFixedSized :: SignKeyVRF NeverVRF -> ByteString
rawEncodeFixedSized SignKeyVRF NeverVRF
_ = ByteString
BS.empty
rawDecodeFixedSized :: forall (m :: * -> *).
MonadFail m =>
ByteString -> m (SignKeyVRF NeverVRF)
rawDecodeFixedSized ByteString
bs = ByteString -> m (SignKeyVRF NeverVRF) -> m (SignKeyVRF NeverVRF)
forall a (m :: * -> *).
(FixedSizeCodec a, MonadFail m, Typeable a) =>
ByteString -> m a -> m a
guardFixedSized ByteString
bs (m (SignKeyVRF NeverVRF) -> m (SignKeyVRF NeverVRF))
-> m (SignKeyVRF NeverVRF) -> m (SignKeyVRF NeverVRF)
forall a b. (a -> b) -> a -> b
$ do
SignKeyVRF NeverVRF -> m (SignKeyVRF NeverVRF)
forall a. a -> m a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SignKeyVRF NeverVRF
NeverUsedSignKeyVRF
{-# INLINE rawDecodeFixedSized #-}
instance FixedSizeCodec (CertVRF NeverVRF) where
type FixedSize (CertVRF NeverVRF) = 0
rawEncodeFixedSized :: CertVRF NeverVRF -> ByteString
rawEncodeFixedSized CertVRF NeverVRF
_ = ByteString
BS.empty
rawDecodeFixedSized :: forall (m :: * -> *).
MonadFail m =>
ByteString -> m (CertVRF NeverVRF)
rawDecodeFixedSized ByteString
bs = ByteString -> m (CertVRF NeverVRF) -> m (CertVRF NeverVRF)
forall a (m :: * -> *).
(FixedSizeCodec a, MonadFail m, Typeable a) =>
ByteString -> m a -> m a
guardFixedSized ByteString
bs (m (CertVRF NeverVRF) -> m (CertVRF NeverVRF))
-> m (CertVRF NeverVRF) -> m (CertVRF NeverVRF)
forall a b. (a -> b) -> a -> b
$ do
CertVRF NeverVRF -> m (CertVRF NeverVRF)
forall a. a -> m a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CertVRF NeverVRF
NeverUsedCertVRF
{-# INLINE rawDecodeFixedSized #-}