diff options
author | Joe Crayne <joe@jerkface.net> | 2019-11-09 20:42:40 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2019-11-09 20:42:40 -0500 |
commit | d0a13aa249c23d3521cc9654bf450923d849578f (patch) | |
tree | 612f6b4dd19f30c382330d7a8d4ef803fa106e21 /tests | |
parent | 5fcf5e6479f58787b98c5d9e67f0bdeff66756eb (diff) |
Simple ed25519 test.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-ed25519.hs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/test-ed25519.hs b/tests/test-ed25519.hs new file mode 100644 index 0000000..b249f34 --- /dev/null +++ b/tests/test-ed25519.hs | |||
@@ -0,0 +1,58 @@ | |||
1 | {-# LANGUAGE LambdaCase, QuasiQuotes #-} | ||
2 | |||
3 | import Data.Binary | ||
4 | import Data.OpenPGP | ||
5 | import Data.OpenPGP.Util | ||
6 | import Control.Monad | ||
7 | import Crypto.Cipher.SBox | ||
8 | -- import Data.ByteString (ByteString) | ||
9 | import qualified Data.ByteString.Lazy as BL | ||
10 | import System.IO | ||
11 | |||
12 | -- Five pgp packets. | ||
13 | keyring :: BL.ByteString | ||
14 | keyring = BL.fromChunks . (:[]) $ [bytes| | ||
15 | 98 33 04 5d c3 17 92 16 09 2b 06 01 04 01 da 47 | ||
16 | 0f 01 01 07 40 d3 0e e6 a9 02 02 ce 00 35 98 4d | ||
17 | 46 a5 c2 fe 77 dd 91 aa b0 ee db 37 f2 d3 60 71 | ||
18 | e9 55 9f 9a d0 b4 1b 74 65 73 74 65 72 20 3c 6e | ||
19 | 6f 62 6f 64 79 40 65 78 61 6d 70 6c 65 2e 63 6f | ||
20 | 6d 3e 88 90 04 13 16 0a 00 38 16 21 04 7e ea bd | ||
21 | d2 ea 2e 2a 5d eb c7 b0 35 6f 1d fe 7b 47 ad 75 | ||
22 | bb 05 02 5d c3 17 92 02 1b 03 05 0b 09 08 07 02 | ||
23 | 06 15 0a 09 08 0b 02 04 16 02 03 01 02 1e 01 02 | ||
24 | 17 80 00 0a 09 10 6f 1d fe 7b 47 ad 75 bb f3 f0 | ||
25 | 00 ff 57 ff 3b 5d 8e 7c 43 f0 d4 4f fe 0e 10 76 | ||
26 | e4 d5 55 0d e1 db 28 e1 92 87 05 02 24 50 d1 c4 | ||
27 | 3d 35 00 ff 50 ef f4 dd 3f 69 89 a4 89 12 eb 0d | ||
28 | 5e 11 4f 79 67 89 04 fd 60 ba fd 2a 50 1e 03 21 | ||
29 | 38 9a 2a 04 b8 38 04 5d c3 17 92 12 0a 2b 06 01 | ||
30 | 04 01 97 55 01 05 01 01 07 40 73 1d 7a 99 ae e3 | ||
31 | 0e 8f 49 74 7d f3 b6 91 f2 d9 44 1c 4a bc eb 43 | ||
32 | 17 96 0b 8f 2c fc 6b 2e 8a 7c 03 01 08 07 88 78 | ||
33 | 04 18 16 0a 00 20 16 21 04 7e ea bd d2 ea 2e 2a | ||
34 | 5d eb c7 b0 35 6f 1d fe 7b 47 ad 75 bb 05 02 5d | ||
35 | c3 17 92 02 1b 0c 00 0a 09 10 6f 1d fe 7b 47 ad | ||
36 | 75 bb a3 4e 00 fe 2b e9 46 86 d5 02 d7 e1 47 e7 | ||
37 | 27 3e e1 3b 5a d8 7d 81 41 24 3e a2 4e c4 b2 f3 | ||
38 | cd 8f 09 24 6f e3 00 ff 61 bb 9a 89 9f 6f 5f c2 | ||
39 | 39 18 15 cb f6 c9 2f 24 a3 ba 7d 6d a0 1e f0 a2 | ||
40 | 5d a6 2e 03 4c 97 9f 0d | ||
41 | |] | ||
42 | |||
43 | main = do | ||
44 | let Message | ||
45 | [ master -- ---Public 7EEABDD2EA2E2A5DEBC7B0356F1DFE7B47AD75BB Ed25519 | ||
46 | , uid -- UserID "tester <nobody@example.com>" | ||
47 | , uidsig -- Signature ^ signed: 6F1DFE7B47AD75BB ["vouch-sign"] | ||
48 | , subkey -- PublicKey 231056D292F432A87A5207F7E1304F68665EC913 ECC | ||
49 | , subsig -- Signature ^ signed: 6F1DFE7B47AD75BB ["encrypt"] | ||
50 | ] = decode keyring | ||
51 | over_uid = CertificationSignature master uid [uidsig] | ||
52 | over_sub = SubkeySignature master subkey [subsig] | ||
53 | |||
54 | let uid_result = not . null $ signatures_over $ verify (Message [master]) over_uid | ||
55 | putStrLn $ " UID signature: " ++ show uid_result | ||
56 | |||
57 | let sub_result = not . null $ signatures_over $ verify (Message [master]) over_sub | ||
58 | putStrLn $ "Subkey signature: " ++ show sub_result | ||