diff options
Diffstat (limited to 'Arbitrary.patch')
-rw-r--r-- | Arbitrary.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/Arbitrary.patch b/Arbitrary.patch new file mode 100644 index 0000000..fdbfba6 --- /dev/null +++ b/Arbitrary.patch | |||
@@ -0,0 +1,108 @@ | |||
1 | --- Data/OpenPGP/Arbitrary.hs 2012-04-27 12:38:11.492411339 -0500 | ||
2 | +++ arb.s 2012-04-27 12:37:57.176469214 -0500 | ||
3 | @@ -1 +1,2 @@ | ||
4 | +{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-} | ||
5 | module Data.OpenPGP.Arbitrary where | ||
6 | @@ -14,13 +14,18 @@ | ||
7 | 1 -> do x1 <- arbitrary | ||
8 | x2 <- arbitrary | ||
9 | x3 <- arbitrary | ||
10 | - x4 <- arbitrary | ||
11 | - x5 <- arbitrary | ||
12 | + x4 <- resize 10 (listOf arbitrary) | ||
13 | + x5 <- resize 10 (listOf arbitrary) | ||
14 | x6 <- arbitrary | ||
15 | x7 <- arbitrary | ||
16 | - x8 <- arbitrary | ||
17 | - x9 <- arbitrary | ||
18 | - return (SignaturePacket x1 x2 x3 x4 x5 x6 x7 x8 x9) | ||
19 | + version <- choose (2 :: Word8, 4) | ||
20 | + case version of | ||
21 | + 4 -> | ||
22 | + return (signaturePacket 4 x1 x2 x3 x4 x5 x6 x7) | ||
23 | + _ -> do | ||
24 | + creation_time <- arbitrary | ||
25 | + keyid <- vectorOf 16 (elements (['0'..'9'] ++ ['A'..'F'])) | ||
26 | + return (signaturePacket version x1 x2 x3 [] [SignatureCreationTimePacket creation_time, IssuerPacket keyid] x6 x7) | ||
27 | 2 -> do x1 <- arbitrary | ||
28 | x2 <- arbitrary | ||
29 | x3 <- arbitrary | ||
30 | @@ -88,5 +93,5 @@ | ||
31 | x2 <- arbitrary | ||
32 | - x3 <- arbitrary | ||
33 | + x3 <- fmap decode_s2k_count arbitrary | ||
34 | return (IteratedSaltedS2K x1 x2 x3) | ||
35 | - 3 -> do x1 <- arbitrary | ||
36 | + 3 -> do x1 <- suchThat arbitrary (`notElem` [0,1,3]) | ||
37 | x2 <- arbitrary | ||
38 | @@ -73,7 +72,7 @@ | ||
39 | 4 -> return SHA384 | ||
40 | 5 -> return SHA512 | ||
41 | 6 -> return SHA224 | ||
42 | - 7 -> do x1 <- arbitrary | ||
43 | + 7 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,08,09,10,11]) | ||
44 | return (HashAlgorithm x1) | ||
45 | _ -> error "FATAL ERROR: Arbitrary instance, logic bug" | ||
46 | |||
47 | @@ -90,7 +89,7 @@ | ||
48 | 5 -> return ECC | ||
49 | 6 -> return ECDSA | ||
50 | 7 -> return DH | ||
51 | - 8 -> do x1 <- arbitrary | ||
52 | + 8 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,16,17,18,19,21]) | ||
53 | return (KeyAlgorithm x1) | ||
54 | _ -> error "FATAL ERROR: Arbitrary instance, logic bug" | ||
55 | |||
56 | @@ -108,7 +107,7 @@ | ||
57 | 6 -> return AES192 | ||
58 | 7 -> return AES256 | ||
59 | 8 -> return Twofish | ||
60 | - 9 -> do x1 <- arbitrary | ||
61 | + 9 -> do x1 <- suchThat arbitrary (`notElem` [00,01,02,03,04,07,08,09,10]) | ||
62 | return (SymmetricAlgorithm x1) | ||
63 | _ -> error "FATAL ERROR: Arbitrary instance, logic bug" | ||
64 | |||
65 | @@ -121,7 +120,7 @@ | ||
66 | 1 -> return ZIP | ||
67 | 2 -> return ZLIB | ||
68 | 3 -> return BZip2 | ||
69 | - 4 -> do x1 <- arbitrary | ||
70 | + 4 -> do x1 <- suchThat arbitrary (`notElem` [0,1,2,3]) | ||
71 | return (CompressionAlgorithm x1) | ||
72 | _ -> error "FATAL ERROR: Arbitrary instance, logic bug" | ||
73 | |||
74 | @@ -135,7 +134,7 @@ | ||
75 | 2 -> return KeyCompromised | ||
76 | 3 -> return KeyRetired | ||
77 | 4 -> return UserIDInvalid | ||
78 | - 5 -> do x1 <- arbitrary | ||
79 | + 5 -> do x1 <- suchThat arbitrary (`notElem` [00,01,02,03,32]) | ||
80 | return (RevocationCode x1) | ||
81 | _ -> error "FATAL ERROR: Arbitrary instance, logic bug" | ||
82 | |||
83 | @@ -134,7 +133,7 @@ | ||
84 | |||
85 | instance Arbitrary MPI where | ||
86 | arbitrary | ||
87 | - = do x1 <- arbitrary | ||
88 | + = do x1 <- suchThat arbitrary (>=0) | ||
89 | return (MPI x1) | ||
90 | |||
91 | |||
92 | @@ -160,5 +160,5 @@ | ||
93 | return (PreferredSymmetricAlgorithmsPacket x1) | ||
94 | 8 -> do x1 <- arbitrary | ||
95 | x2 <- arbitrary | ||
96 | - x3 <- arbitrary | ||
97 | + x3 <- vectorOf 40 (elements (['0'..'9'] ++ ['A'..'F'])) | ||
98 | return (RevocationKeyPacket x1 x2 x3) | ||
99 | @@ -166 +165 @@ | ||
100 | - 9 -> do x1 <- arbitrary | ||
101 | + 9 -> do x1 <- vectorOf 16 (elements (['0'..'9'] ++ ['A'..'F'])) | ||
102 | @@ -217 +216 @@ | ||
103 | - 22 -> do x1 <- arbitrary | ||
104 | + 22 -> do x1 <- suchThat arbitrary isSignaturePacket | ||
105 | @@ -169,2 +168 @@ | ||
106 | - x2 <- arbitrary | ||
107 | - return (UnsupportedSignatureSubpacket x1 x2) | ||
108 | + return (UnsupportedSignatureSubpacket 105 x1) | ||