2012-08-18 22:05:37 +00:00
|
|
|
{-# LANGUAGE OverloadedStrings #-}
|
2012-08-19 07:48:05 +00:00
|
|
|
-- |
|
|
|
|
-- Module : Network.TLS.Handshake.Signature
|
|
|
|
-- License : BSD-style
|
|
|
|
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
|
|
|
|
-- Stability : experimental
|
|
|
|
-- Portability : unknown
|
|
|
|
--
|
2012-08-18 22:05:37 +00:00
|
|
|
module Network.TLS.Handshake.Signature
|
|
|
|
( getHashAndASN1
|
|
|
|
) where
|
|
|
|
|
2012-12-30 15:31:13 +00:00
|
|
|
import Crypto.PubKey.HashDescr
|
2012-08-18 22:05:37 +00:00
|
|
|
import Network.TLS.Context
|
|
|
|
import Network.TLS.Struct
|
|
|
|
|
|
|
|
import Control.Monad.State
|
|
|
|
|
2012-12-30 15:31:13 +00:00
|
|
|
getHashAndASN1 :: MonadIO m => (HashAlgorithm, SignatureAlgorithm) -> m HashDescr
|
2012-08-18 22:05:37 +00:00
|
|
|
getHashAndASN1 hashSig = do
|
|
|
|
case hashSig of
|
2012-12-31 13:37:19 +00:00
|
|
|
(HashSHA1, SignatureRSA) -> return hashDescrSHA1
|
2012-12-30 15:31:13 +00:00
|
|
|
(HashSHA224, SignatureRSA) -> return hashDescrSHA224
|
|
|
|
(HashSHA256, SignatureRSA) -> return hashDescrSHA256
|
|
|
|
(HashSHA384, SignatureRSA) -> return hashDescrSHA384
|
|
|
|
(HashSHA512, SignatureRSA) -> return hashDescrSHA512
|
|
|
|
_ -> throwCore $ Error_Misc "unsupported hash/sig algorithm"
|
2012-08-18 22:05:37 +00:00
|
|
|
|
|
|
|
|