{-# LANGUAGE ConstraintKinds             #-}
{-# LANGUAGE DataKinds                   #-}
{-# LANGUAGE KindSignatures              #-}
{-# LANGUAGE MultiParamTypeClasses       #-}
{-# LANGUAGE FlexibleInstances           #-}
{-# LANGUAGE TypeFamilies                #-}

-- | The implementation of the authenticator part of the construction.
signature Auth.Implementation where

import Raaz.Core

data Prim
data Internals

instance Eq Prim            -- We need ability to compare
instance Equality Prim      -- Timing safe comparison when part of a
                            -- compound type
instance Encodable Prim    -- To serialise authentication tag.

instance Memory Internals
instance WriteAccessible Internals
instance Extractable Internals Prim