summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClint Adams <clint@softwarefreedom.org>2012-04-04 10:59:00 -0400
committerClint Adams <clint@softwarefreedom.org>2012-04-04 10:59:00 -0400
commitf907d986330ac5f88f9e921bdd6c0572d4691003 (patch)
treef9b261cd77f03157f2a15bb8f2b1ac3abd15a2cb
parente4a8fe59707fc33ef26e1ca1dec4299a0d7ba6bf (diff)
Add newtype wrapper for lists for the purpose of avoiding the cereal instance.
-rw-r--r--Codec/Encryption/OpenPGP/ASCIIArmor/Decode.hs7
-rw-r--r--Codec/Encryption/OpenPGP/ASCIIArmor/Encode.hs5
2 files changed, 7 insertions, 5 deletions
diff --git a/Codec/Encryption/OpenPGP/ASCIIArmor/Decode.hs b/Codec/Encryption/OpenPGP/ASCIIArmor/Decode.hs
index 2383ff3..64f7236 100644
--- a/Codec/Encryption/OpenPGP/ASCIIArmor/Decode.hs
+++ b/Codec/Encryption/OpenPGP/ASCIIArmor/Decode.hs
@@ -9,7 +9,7 @@ module Codec.Encryption.OpenPGP.ASCIIArmor.Decode (
9 , decodeArmor 9 , decodeArmor
10) where 10) where
11 11
12import Codec.Encryption.OpenPGP.Serialize (getPackets) 12import Codec.Encryption.OpenPGP.Serialize ()
13import Codec.Encryption.OpenPGP.Types 13import Codec.Encryption.OpenPGP.Types
14import Control.Applicative (many, (<|>), (<$>)) 14import Control.Applicative (many, (<|>), (<$>))
15import Data.Attoparsec.ByteString (Parser, many1, string, inClass, notInClass, satisfy, word8, (<?>), parse, IResult(..)) 15import Data.Attoparsec.ByteString (Parser, many1, string, inClass, notInClass, satisfy, word8, (<?>), parse, IResult(..))
@@ -20,6 +20,7 @@ import qualified Data.ByteString as B
20import qualified Data.ByteString.Char8 as BC8 20import qualified Data.ByteString.Char8 as BC8
21import qualified Data.ByteString.Base64 as Base64 21import qualified Data.ByteString.Base64 as Base64
22import Data.Digest.CRC24 (crc24) 22import Data.Digest.CRC24 (crc24)
23import Data.Serialize (get)
23import Data.Serialize.Get (Get, runGet, getWord8) 24import Data.Serialize.Get (Get, runGet, getWord8)
24import Data.Serialize.Put (runPut, putWord32be) 25import Data.Serialize.Put (runPut, putWord32be)
25import Data.String (IsString, fromString) 26import Data.String (IsString, fromString)
@@ -38,9 +39,9 @@ parseArmor = do
38 blankishLine <?> "blank line" 39 blankishLine <?> "blank line"
39 payload <- base64Data <?> "base64 data" 40 payload <- base64Data <?> "base64 data"
40 endLine atype <?> "end line" 41 endLine atype <?> "end line"
41 case runGet getPackets payload of 42 case runGet get payload of
42 Left err -> fail err 43 Left err -> fail err
43 Right packets -> return $ Armor atype headers packets 44 Right packets -> return $ Armor atype headers (unBlock packets)
44 45
45beginLine :: (Integral a, Read a, Show a) => Parser (ArmorType a) 46beginLine :: (Integral a, Read a, Show a) => Parser (ArmorType a)
46beginLine = do 47beginLine = do
diff --git a/Codec/Encryption/OpenPGP/ASCIIArmor/Encode.hs b/Codec/Encryption/OpenPGP/ASCIIArmor/Encode.hs
index d08c3c1..c9c9641 100644
--- a/Codec/Encryption/OpenPGP/ASCIIArmor/Encode.hs
+++ b/Codec/Encryption/OpenPGP/ASCIIArmor/Encode.hs
@@ -7,13 +7,14 @@ module Codec.Encryption.OpenPGP.ASCIIArmor.Encode (
7 armor 7 armor
8) where 8) where
9 9
10import Codec.Encryption.OpenPGP.Serialize (putPackets) 10import Codec.Encryption.OpenPGP.Serialize ()
11import Codec.Encryption.OpenPGP.Types 11import Codec.Encryption.OpenPGP.Types
12import Data.ByteString (ByteString) 12import Data.ByteString (ByteString)
13import qualified Data.ByteString as B 13import qualified Data.ByteString as B
14import qualified Data.ByteString.Char8 as BC8 14import qualified Data.ByteString.Char8 as BC8
15import qualified Data.ByteString.Base64 as Base64 15import qualified Data.ByteString.Base64 as Base64
16import Data.Digest.CRC24 (crc24) 16import Data.Digest.CRC24 (crc24)
17import Data.Serialize (put)
17import Data.Serialize.Put (runPut, putWord32be) 18import Data.Serialize.Put (runPut, putWord32be)
18import Data.String (IsString, fromString) 19import Data.String (IsString, fromString)
19 20
@@ -44,7 +45,7 @@ armorHeaders ahs = BC8.unlines . map armorHeader $ ahs
44 armorHeader (k, v) = k `B.append` BC8.pack ": " `B.append` v 45 armorHeader (k, v) = k `B.append` BC8.pack ": " `B.append` v
45 46
46opgpStream :: [Packet] -> ByteString 47opgpStream :: [Packet] -> ByteString
47opgpStream = runPut . putPackets 48opgpStream = runPut . put . Block
48 49
49armorData :: ByteString -> ByteString 50armorData :: ByteString -> ByteString
50armorData = BC8.unlines . wrap76 . Base64.encode 51armorData = BC8.unlines . wrap76 . Base64.encode