summaryrefslogtreecommitdiff
path: root/Data/OpenPGP/Util/DecryptSecretKey.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Data/OpenPGP/Util/DecryptSecretKey.hs')
-rw-r--r--Data/OpenPGP/Util/DecryptSecretKey.hs26
1 files changed, 2 insertions, 24 deletions
diff --git a/Data/OpenPGP/Util/DecryptSecretKey.hs b/Data/OpenPGP/Util/DecryptSecretKey.hs
index 0ba89d2..4370ffc 100644
--- a/Data/OpenPGP/Util/DecryptSecretKey.hs
+++ b/Data/OpenPGP/Util/DecryptSecretKey.hs
@@ -3,22 +3,14 @@ module Data.OpenPGP.Util.DecryptSecretKey where
3import qualified Data.OpenPGP as OpenPGP 3import qualified Data.OpenPGP as OpenPGP
4import qualified Data.ByteString as BS 4import qualified Data.ByteString as BS
5import qualified Data.ByteString.Lazy as LZ 5import qualified Data.ByteString.Lazy as LZ
6import Data.Word (Word16,Word8) 6import Data.Word (Word16)
7import Data.Char (toUpper)
8import Control.Monad (foldM) 7import Control.Monad (foldM)
9import Numeric (showHex)
10import Data.Binary (get,Binary,Get) 8import Data.Binary (get,Binary,Get)
11import Data.Binary.Get (runGetOrFail) 9import Data.Binary.Get (runGetOrFail)
12import qualified Data.Serialize as Serialize 10import qualified Data.Serialize as Serialize
13import Control.Applicative ( (<$>) ) 11import Control.Applicative ( (<$>) )
14 12
15import Crypto.Hash.MD5 as MD5
16import Crypto.Hash.SHA1 as SHA1 13import Crypto.Hash.SHA1 as SHA1
17import Crypto.Hash.SHA256 as SHA256
18import Crypto.Hash.SHA384 as SHA384
19import Crypto.Hash.SHA512 as SHA512
20import Crypto.Hash.SHA224 as SHA224
21import Crypto.Hash.RIPEMD160 as RIPEMD160
22 14
23import qualified Crypto.Cipher.AES as Vincent 15import qualified Crypto.Cipher.AES as Vincent
24import qualified Crypto.Cipher.Blowfish as Vincent 16import qualified Crypto.Cipher.Blowfish as Vincent
@@ -28,16 +20,9 @@ import qualified Data.Byteable as Vincent
28 20
29import Crypto.Cipher.Cast5 (CAST5_128) 21import Crypto.Cipher.Cast5 (CAST5_128)
30import Crypto.Cipher.ThomasToVincent 22import Crypto.Cipher.ThomasToVincent
23import Data.OpenPGP.Util.Base (toStrictBS,toLazyBS,hashBySymbol)
31 24
32 25
33hashBySymbol OpenPGP.MD5 = MD5.hashlazy
34hashBySymbol OpenPGP.SHA1 = SHA1.hashlazy
35hashBySymbol OpenPGP.SHA256 = SHA256.hashlazy
36hashBySymbol OpenPGP.SHA384 = SHA384.hashlazy
37hashBySymbol OpenPGP.SHA512 = SHA512.hashlazy
38hashBySymbol OpenPGP.SHA224 = SHA224.hashlazy
39hashBySymbol OpenPGP.RIPEMD160 = RIPEMD160.hashlazy
40
41 26
42 27
43data Enciphered = 28data Enciphered =
@@ -94,13 +79,6 @@ decryptSecretKey pass k@(OpenPGP.SecretKeyPacket {
94 79
95decryptSecretKey _ _ = Nothing 80decryptSecretKey _ _ = Nothing
96 81
97toStrictBS :: LZ.ByteString -> BS.ByteString
98toStrictBS = BS.concat . LZ.toChunks
99
100toLazyBS :: BS.ByteString -> LZ.ByteString
101toLazyBS = LZ.fromChunks . (:[])
102
103
104 82
105string2sdecrypt :: OpenPGP.SymmetricAlgorithm -> OpenPGP.S2K -> LZ.ByteString -> Enciphered -> LZ.ByteString 83string2sdecrypt :: OpenPGP.SymmetricAlgorithm -> OpenPGP.S2K -> LZ.ByteString -> Enciphered -> LZ.ByteString
106string2sdecrypt OpenPGP.AES128 s2k s = withIV $ simpleUnCFB (string2key s2k s :: Vincent.AES128) 84string2sdecrypt OpenPGP.AES128 s2k s = withIV $ simpleUnCFB (string2key s2k s :: Vincent.AES128)