packages feed

natskell-1.0.0.1: internal/Policy/Auth/NKey.hs

module Auth.NKey
  ( auth
  , authHandler
  , signNonceWithSeed
  ) where

import qualified Auth.NKey.Codec as Codec
import           Auth.Types

auth :: NKeyData -> Auth
auth seed = emptyAuth { authChallenge = Just (AuthNKeySeed seed) }

authHandler :: NKeyPublicKey -> SignatureHandler -> Auth
authHandler publicKey handler =
  emptyAuth { authChallenge = Just (AuthNKeyHandler publicKey handler) }

signNonceWithSeed :: NKeyData -> Nonce -> Either String (NKeyPublicKey, Signature)
signNonceWithSeed seed nonce = do
  (publicKey, signature) <- Codec.signNonceWithSeedRaw seed nonce
  pure (publicKey, Codec.encodeSignature signature)