mirror of
https://github.com/kazu-yamamoto/crypton.git
synced 2024-10-06 08:49:03 +03:00
[RSA] allow data to be passed as is, instead of hashed
This commit is contained in:
parent
39cf449ba7
commit
0d2290a4a1
@ -171,7 +171,7 @@ encrypt pk m = do
|
|||||||
-- If unsure always set a blinder or use signSafer
|
-- If unsure always set a blinder or use signSafer
|
||||||
sign :: HashAlgorithmASN1 hashAlg
|
sign :: HashAlgorithmASN1 hashAlg
|
||||||
=> Maybe Blinder -- ^ optional blinder
|
=> Maybe Blinder -- ^ optional blinder
|
||||||
-> hashAlg -- ^ hash algorithm
|
-> Maybe hashAlg -- ^ hash algorithm
|
||||||
-> PrivateKey -- ^ private key
|
-> PrivateKey -- ^ private key
|
||||||
-> ByteString -- ^ message to sign
|
-> ByteString -- ^ message to sign
|
||||||
-> Either Error ByteString
|
-> Either Error ByteString
|
||||||
@ -179,9 +179,9 @@ sign blinder hashDescr pk m = dp blinder pk `fmap` makeSignature hashDescr (priv
|
|||||||
|
|
||||||
-- | sign message using the private key and by automatically generating a blinder.
|
-- | sign message using the private key and by automatically generating a blinder.
|
||||||
signSafer :: (HashAlgorithmASN1 hashAlg, MonadRandom m)
|
signSafer :: (HashAlgorithmASN1 hashAlg, MonadRandom m)
|
||||||
=> hashAlg -- ^ Hash algorithm
|
=> Maybe hashAlg -- ^ Hash algorithm
|
||||||
-> PrivateKey -- ^ private key
|
-> PrivateKey -- ^ private key
|
||||||
-> ByteString -- ^ message to sign
|
-> ByteString -- ^ message to sign
|
||||||
-> m (Either Error ByteString)
|
-> m (Either Error ByteString)
|
||||||
signSafer hashAlg pk m = do
|
signSafer hashAlg pk m = do
|
||||||
blinder <- generateBlinder (private_n pk)
|
blinder <- generateBlinder (private_n pk)
|
||||||
@ -189,7 +189,7 @@ signSafer hashAlg pk m = do
|
|||||||
|
|
||||||
-- | verify message with the signed message
|
-- | verify message with the signed message
|
||||||
verify :: HashAlgorithmASN1 hashAlg
|
verify :: HashAlgorithmASN1 hashAlg
|
||||||
=> hashAlg
|
=> Maybe hashAlg
|
||||||
-> PublicKey
|
-> PublicKey
|
||||||
-> ByteString
|
-> ByteString
|
||||||
-> ByteString
|
-> ByteString
|
||||||
@ -201,8 +201,9 @@ verify hashAlg pk m sm =
|
|||||||
|
|
||||||
-- | make signature digest, used in 'sign' and 'verify'
|
-- | make signature digest, used in 'sign' and 'verify'
|
||||||
makeSignature :: HashAlgorithmASN1 hashAlg
|
makeSignature :: HashAlgorithmASN1 hashAlg
|
||||||
=> hashAlg
|
=> Maybe hashAlg -- ^ optional hashing algorithm
|
||||||
-> Int
|
-> Int
|
||||||
-> ByteString
|
-> ByteString
|
||||||
-> Either Error ByteString
|
-> Either Error ByteString
|
||||||
makeSignature hashAlg klen m = padSignature klen (hashDigestASN1 $ hashWith hashAlg m)
|
makeSignature Nothing klen m = padSignature klen m
|
||||||
|
makeSignature (Just hashAlg) klen m = padSignature klen (hashDigestASN1 $ hashWith hashAlg m)
|
||||||
|
Loading…
Reference in New Issue
Block a user