/
Arbitrary.patch
119 lines (119 loc) · 5.8 KB
/
Arbitrary.patch
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
109
110
111
112
113
114
115
116
117
118
119
--- /tmp/Arbitrary.hs 2014-01-05 16:06:55.100958114 -0500
+++ Data/OpenPGP/Arbitrary.hs 2014-01-05 16:11:22.200655463 -0500
@@ -1 +1,2 @@
+{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-}
module Data.OpenPGP.Arbitrary where
@@ -20,9 +21,14 @@
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
@@ -79,15 +85,5 @@
arbitrary
- = do x <- choose (0 :: Int, 5)
+ = do x <- choose (0 :: Int, 0)
case x of
0 -> do x1 <- arbitrary
- return (PublicMaterialRSA x1)
- 1 -> do x1 <- arbitrary
- return (PublicMaterialRSA_E x1)
- 2 -> do x1 <- arbitrary
- return (PublicMaterialRSA_S x1)
- 3 -> do x1 <- arbitrary
- return (PublicMaterialELGAMAL x1)
- 4 -> do x1 <- arbitrary
- return (PublicMaterialDSA x1)
- 5 -> do x1 <- arbitrary
x2 <- arbitrary
@@ -99,18 +95,8 @@
arbitrary
- = do x <- choose (0 :: Int, 6)
+ = do x <- choose (0 :: Int, 1)
case x of
0 -> do x1 <- arbitrary
- return (SecretMaterialRSA x1)
- 1 -> do x1 <- arbitrary
- return (SecretMaterialRSA_E x1)
- 2 -> do x1 <- arbitrary
- return (SecretMaterialRSA_S x1)
- 3 -> do x1 <- arbitrary
- return (SecretMaterialELGAMAL x1)
- 4 -> do x1 <- arbitrary
- return (SecretMaterialDSA x1)
- 5 -> do x1 <- arbitrary
x2 <- arbitrary
return (SecretMaterialEncrypted x1 x2)
- 6 -> do x1 <- arbitrary
+ 1 -> do x1 <- arbitrary
x2 <- arbitrary
@@ -131,5 +117,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
@@ -150,3 +136,3 @@
6 -> return SHA224
- 7 -> do x1 <- arbitrary
+ 7 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,08,09,10,11])
return (HashAlgorithm x1)
@@ -167,3 +153,3 @@
7 -> return DH
- 8 -> do x1 <- arbitrary
+ 8 -> do x1 <- suchThat arbitrary (`notElem` [01,02,03,16,17,18,19,21])
return (KeyAlgorithm x1)
@@ -185,3 +171,3 @@
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)
@@ -198,3 +184,3 @@
3 -> return BZip2
- 4 -> do x1 <- arbitrary
+ 4 -> do x1 <- suchThat arbitrary (`notElem` [0,1,2,3])
return (CompressionAlgorithm x1)
@@ -212,3 +198,3 @@
4 -> return UserIDInvalid
- 5 -> do x1 <- arbitrary
+ 5 -> do x1 <- suchThat arbitrary (`notElem` [00,01,02,03,32])
return (RevocationCode x1)
@@ -246,3 +232,3 @@
arbitrary
- = do x1 <- arbitrary
+ = do x1 <- suchThat arbitrary (>=0)
return (MPI x1)
@@ -273,5 +259,5 @@
x2 <- arbitrary
- x3 <- arbitrary
+ x3 <- vectorOf 40 (elements (['0'..'9'] ++ ['A'..'F']))
return (RevocationKeyPacket x1 x2 x3)
- 9 -> do x1 <- arbitrary
+ 9 -> do x1 <- vectorOf 16 (elements (['0'..'9'] ++ ['A'..'F']))
return (IssuerPacket x1)
@@ -312,7 +298,6 @@
return (SignatureTargetPacket x1 x2 x3)
- 22 -> do x1 <- arbitrary
+ 22 -> do x1 <- suchThat arbitrary isSignaturePacket
return (EmbeddedSignaturePacket x1)
23 -> do x1 <- arbitrary
- x2 <- arbitrary
- return (UnsupportedSignatureSubpacket x1 x2)
+ return (UnsupportedSignatureSubpacket 105 x1)
_ -> error "FATAL ERROR: Arbitrary instance, logic bug"