summaryrefslogtreecommitdiff
path: root/Arbitrary.patch
blob: fdbfba627b5799c8000f87cad316bbc04cf7094b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
--- Data/OpenPGP/Arbitrary.hs	2012-04-27 12:38:11.492411339 -0500
+++ arb.s	2012-04-27 12:37:57.176469214 -0500
@@ -1 +1,2 @@
+{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-}
 module Data.OpenPGP.Arbitrary where
@@ -14,13 +14,18 @@
                    1 -> do x1 <- arbitrary
                            x2 <- arbitrary
                            x3 <- arbitrary
-                           x4 <- arbitrary
-                           x5 <- arbitrary
+                           x4 <- resize 10 (listOf arbitrary)
+                           x5 <- resize 10 (listOf arbitrary)
                            x6 <- arbitrary
                            x7 <- arbitrary
-                           x8 <- arbitrary
-                           x9 <- arbitrary
-                           return (SignaturePacket x1 x2 x3 x4 x5 x6 x7 x8 x9)
+                           version <- choose (2 :: Word8, 4)
+                           case version of
+                                   4 ->
+                                           return (signaturePacket 4 x1 x2 x3 x4 x5 x6 x7)
+                                   _ -> do
+                                           creation_time <- arbitrary
+                                           keyid <- vectorOf 16 (elements (['0'..'9'] ++ ['A'..'F']))
+                                           return (signaturePacket version x1 x2 x3 [] [SignatureCreationTimePacket creation_time, IssuerPacket keyid] x6 x7)
                    2 -> do x1 <- arbitrary
                            x2 <- arbitrary
                            x3 <- arbitrary
@@ -88,5 +93,5 @@
                            x2 <- arbitrary
-                           x3 <- arbitrary
+                           x3 <- fmap decode_s2k_count arbitrary
                            return (IteratedSaltedS2K x1 x2 x3)
-                   3 -> do x1 <- arbitrary
+                   3 -> do x1 <- suchThat arbitrary (`notElem` [0,1,3])
                            x2 <- arbitrary
@@ -73,7 +72,7 @@
                    4 -> return SHA384
                    5 -> return SHA512
                    6 -> return SHA224
-                   7 -> do x1 <- arbitrary
+                   7 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,08,09,10,11])
                            return (HashAlgorithm x1)
                    _ -> error "FATAL ERROR: Arbitrary instance, logic bug"

@@ -90,7 +89,7 @@
                    5 -> return ECC
                    6 -> return ECDSA
                    7 -> return DH
-                   8 -> do x1 <- arbitrary
+                   8 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,16,17,18,19,21])
                            return (KeyAlgorithm x1)
                    _ -> error "FATAL ERROR: Arbitrary instance, logic bug"

@@ -108,7 +107,7 @@
                    6 -> return AES192
                    7 -> return AES256
                    8 -> return Twofish
-                   9 -> do x1 <- arbitrary
+                   9 -> do x1 <- suchThat arbitrary (`notElem` [00,01,02,03,04,07,08,09,10])
                            return (SymmetricAlgorithm x1)
                    _ -> error "FATAL ERROR: Arbitrary instance, logic bug"

@@ -121,7 +120,7 @@
                    1 -> return ZIP
                    2 -> return ZLIB
                    3 -> return BZip2
-                   4 -> do x1 <- arbitrary
+                   4 -> do x1 <- suchThat arbitrary (`notElem` [0,1,2,3])
                            return (CompressionAlgorithm x1)
                    _ -> error "FATAL ERROR: Arbitrary instance, logic bug"

@@ -135,7 +134,7 @@
                    2 -> return KeyCompromised
                    3 -> return KeyRetired
                    4 -> return UserIDInvalid
-                   5 -> do x1 <- arbitrary
+                   5 -> do x1 <- suchThat arbitrary (`notElem` [00,01,02,03,32])
                            return (RevocationCode x1)
                    _ -> error "FATAL ERROR: Arbitrary instance, logic bug"

@@ -134,7 +133,7 @@

 instance Arbitrary MPI where
         arbitrary
-          = do x1 <- arbitrary
+          = do x1 <- suchThat arbitrary (>=0)
                return (MPI x1)


@@ -160,5 +160,5 @@
                            return (PreferredSymmetricAlgorithmsPacket x1)
                    8 -> do x1 <- arbitrary
                            x2 <- arbitrary
-                           x3 <- arbitrary
+                           x3 <- vectorOf 40 (elements (['0'..'9'] ++ ['A'..'F']))
                            return (RevocationKeyPacket x1 x2 x3)
@@ -166 +165 @@
-                   9 -> do x1 <- arbitrary
+                   9 -> do x1 <- vectorOf 16 (elements (['0'..'9'] ++ ['A'..'F']))
@@ -217 +216 @@
-                   22 -> do x1 <- arbitrary
+                   22 -> do x1 <- suchThat arbitrary isSignaturePacket
@@ -169,2 +168 @@
-                            x2 <- arbitrary
-                            return (UnsupportedSignatureSubpacket x1 x2)
+                            return (UnsupportedSignatureSubpacket 105 x1)