#
# Test Data for the Data Encryption Standard (see testdes.c)
#
# From National Bureau of Standards Special Publication 500-20, Sep-80.
#
# Column 1: Key
# Column 2: PlainText 
# Column 3: CipherText
#
# If column 2 begins with a P, then encrypt plaintext to produce ciphertext
# If column 2 begins with a S, then decrypt ciphertext to produce plaintext
#
# Lines beginning with # are comments
# Lines beginning with " are output by the test program when in verbose mode
#
"  Test 1:  Initial Permutation IP
K0101010101010101	P95f8a5e5dd31d900	S8000000000000000
K0101010101010101	Pdd7f121ca5015619	S4000000000000000
K0101010101010101	P2e8653104f3834ea	S2000000000000000
K0101010101010101	P4bd388ff6cd81d4f	S1000000000000000
K0101010101010101	P20b9e767b2fb1456	S0800000000000000
K0101010101010101	P55579380d77138ef	S0400000000000000
K0101010101010101	P6cc5defaaf04512f	S0200000000000000
K0101010101010101	P0d9f279ba5d87260	S0100000000000000
K0101010101010101	Pd9031b0271bd5a0a	S0080000000000000
K0101010101010101	P424250b37c3dd951	S0040000000000000
K0101010101010101	Pb8061b7ecd9a21e5	S0020000000000000
K0101010101010101	Pf15d0f286b65bd28	S0010000000000000
K0101010101010101	Padd0cc8d6e5deba1	S0008000000000000
K0101010101010101	Pe6d5f82752ad63d1	S0004000000000000
K0101010101010101	Pecbfe3bd3f591a5e	S0002000000000000
K0101010101010101	Pf356834379d165cd	S0001000000000000
K0101010101010101	P2b9f982f20037fa9	S0000800000000000
K0101010101010101	P889de068a16f0be6	S0000400000000000
K0101010101010101	Pe19e275d846a1298	S0000200000000000
K0101010101010101	P329a8ed523d71aec	S0000100000000000
K0101010101010101	Pe7fce22557d23c97	S0000080000000000
K0101010101010101	P12a9f5817ff2d65d	S0000040000000000
K0101010101010101	Pa484c3ad38dc9c19	S0000020000000000
K0101010101010101	Pfbe00a8a1ef8ad72	S0000010000000000
K0101010101010101	P750d079407521363	S0000008000000000
K0101010101010101	P64feed9c724c2faf	S0000004000000000
K0101010101010101	Pf02b263b328e2b60	S0000002000000000
K0101010101010101	P9d64555a9a10b852	S0000001000000000
K0101010101010101	Pd106ff0bed5255d7	S0000000800000000
K0101010101010101	Pe1652c6b138c64a5	S0000000400000000
K0101010101010101	Pe428581186ec8f46	S0000000200000000
K0101010101010101	Paeb5f5ede22d1a36	S0000000100000000
K0101010101010101	Pe943d7568aec0c5c	S0000000080000000
K0101010101010101	Pdf98c8276f54b04b	S0000000040000000
K0101010101010101	Pb160e4680f6c696f	S0000000020000000
K0101010101010101	Pfa0752b07d9c4ab8	S0000000010000000
K0101010101010101	Pca3a2b036dbc8502	S0000000008000000
K0101010101010101	P5e0905517bb59bcf	S0000000004000000
K0101010101010101	P814eeb3b91d90726	S0000000002000000
K0101010101010101	P4d49db1532919c9f	S0000000001000000
K0101010101010101	P25eb5fc3f8cf0621	S0000000000800000
K0101010101010101	Pab6a20c0620d1c6f	S0000000000400000
K0101010101010101	P79e90dbc98f92cca	S0000000000200000
K0101010101010101	P866ecedd8072bb0e	S0000000000100000
K0101010101010101	P8b54536f2f3e64a8	S0000000000080000
K0101010101010101	Pea51d3975595b86b	S0000000000040000
K0101010101010101	Pcaffc6ac4542de31	S0000000000020000
K0101010101010101	P8dd45a2ddf90796c	S0000000000010000
K0101010101010101	P1029d55e880ec2d0	S0000000000008000
K0101010101010101	P5d86cb23639dbea9	S0000000000004000
K0101010101010101	P1d1ca853ae7c0c5f	S0000000000002000
K0101010101010101	Pce332329248f3228	S0000000000001000
K0101010101010101	P8405d1abe24fb942	S0000000000000800
K0101010101010101	Pe643d78090ca4207	S0000000000000400
K0101010101010101	P48221b9937748a23	S0000000000000200
K0101010101010101	Pdd7c0bbd61fafd54	S0000000000000100
K0101010101010101	P2fbc291a570db5c4	S0000000000000080
K0101010101010101	Pe07c30d7e4e26e12	S0000000000000040
K0101010101010101	P0953e2258e8e90a1	S0000000000000020
K0101010101010101	P5b711bc4ceebf2ee	S0000000000000010
K0101010101010101	Pcc083f1e6d9e85f6	S0000000000000008
K0101010101010101	Pd2fd8867d50d2dfe	S0000000000000004
K0101010101010101	P06e7ea22ce92708f	S0000000000000002
K0101010101010101	P166b40b44aba4bd6	S0000000000000001
"  Test 2:  IP inverse
K0101010101010101	P8000000000000000	S95f8a5e5dd31d900
K0101010101010101	P4000000000000000	Sdd7f121ca5015619
K0101010101010101	P2000000000000000	S2e8653104f3834ea
K0101010101010101	P1000000000000000	S4bd388ff6cd81d4f
K0101010101010101	P0800000000000000	S20b9e767b2fb1456
K0101010101010101	P0400000000000000	S55579380d77138ef
K0101010101010101	P0200000000000000	S6cc5defaaf04512f
K0101010101010101	P0100000000000000	S0d9f279ba5d87260
K0101010101010101	P0080000000000000	Sd9031b0271bd5a0a
K0101010101010101	P0040000000000000	S424250b37c3dd951
K0101010101010101	P0020000000000000	Sb8061b7ecd9a21e5
K0101010101010101	P0010000000000000	Sf15d0f286b65bd28
K0101010101010101	P0008000000000000	Sadd0cc8d6e5deba1
K0101010101010101	P0004000000000000	Se6d5f82752ad63d1
K0101010101010101	P0002000000000000	Secbfe3bd3f591a5e
K0101010101010101	P0001000000000000	Sf356834379d165cd
K0101010101010101	P0000800000000000	S2b9f982f20037fa9
K0101010101010101	P0000400000000000	S889de068a16f0be6
K0101010101010101	P0000200000000000	Se19e275d846a1298
K0101010101010101	P0000100000000000	S329a8ed523d71aec
K0101010101010101	P0000080000000000	Se7fce22557d23c97
K0101010101010101	P0000040000000000	S12a9f5817ff2d65d
K0101010101010101	P0000020000000000	Sa484c3ad38dc9c19
K0101010101010101	P0000010000000000	Sfbe00a8a1ef8ad72
K0101010101010101	P0000008000000000	S750d079407521363
K0101010101010101	P0000004000000000	S64feed9c724c2faf
K0101010101010101	P0000002000000000	Sf02b263b328e2b60
K0101010101010101	P0000001000000000	S9d64555a9a10b852
K0101010101010101	P0000000800000000	Sd106ff0bed5255d7
K0101010101010101	P0000000400000000	Se1652c6b138c64a5
K0101010101010101	P0000000200000000	Se428581186ec8f46
K0101010101010101	P0000000100000000	Saeb5f5ede22d1a36
K0101010101010101	P0000000080000000	Se943d7568aec0c5c
K0101010101010101	P0000000040000000	Sdf98c8276f54b04b
K0101010101010101	P0000000020000000	Sb160e4680f6c696f
K0101010101010101	P0000000010000000	Sfa0752b07d9c4ab8
K0101010101010101	P0000000008000000	Sca3a2b036dbc8502
K0101010101010101	P0000000004000000	S5e0905517bb59bcf
K0101010101010101	P0000000002000000	S814eeb3b91d90726
K0101010101010101	P0000000001000000	S4d49db1532919c9f
K0101010101010101	P0000000000800000	S25eb5fc3f8cf0621
K0101010101010101	P0000000000400000	Sab6a20c0620d1c6f
K0101010101010101	P0000000000200000	S79e90dbc98f92cca
K0101010101010101	P0000000000100000	S866ecedd8072bb0e
K0101010101010101	P0000000000080000	S8b54536f2f3e64a8
K0101010101010101	P0000000000040000	Sea51d3975595b86b
K0101010101010101	P0000000000020000	Scaffc6ac4542de31
K0101010101010101	P0000000000010000	S8dd45a2ddf90796c
K0101010101010101	P0000000000008000	S1029d55e880ec2d0
K0101010101010101	P0000000000004000	S5d86cb23639dbea9
K0101010101010101	P0000000000002000	S1d1ca853ae7c0c5f
K0101010101010101	P0000000000001000	Sce332329248f3228
K0101010101010101	P0000000000000800	S8405d1abe24fb942
K0101010101010101	P0000000000000400	Se643d78090ca4207
K0101010101010101	P0000000000000200	S48221b9937748a23
K0101010101010101	P0000000000000100	Sdd7c0bbd61fafd54
K0101010101010101	P0000000000000080	S2fbc291a570db5c4
K0101010101010101	P0000000000000040	Se07c30d7e4e26e12
K0101010101010101	P0000000000000020	S0953e2258e8e90a1
K0101010101010101	P0000000000000010	S5b711bc4ceebf2ee
K0101010101010101	P0000000000000008	Scc083f1e6d9e85f6
K0101010101010101	P0000000000000004	Sd2fd8867d50d2dfe
K0101010101010101	P0000000000000002	S06e7ea22ce92708f
K0101010101010101	P0000000000000001	S166b40b44aba4bd6
"  Test 3:  Permutation Matrix P
K1046913489980131	P0000000000000000	S88d55e54f54c97b4
K1007103489988020	P0000000000000000	S0c0cc00c83ea48fd
K10071034c8980120	P0000000000000000	S83bc8ef3a6570183
K1046103489988020	P0000000000000000	Sdf725dcad94ea2e9
K1086911519190101	P0000000000000000	Se652b53b550be8b0
K1086911519580101	P0000000000000000	Saf527120c485cbb0
K5107b01519580101	P0000000000000000	S0f04ce393db926d5
K1007b01519190101	P0000000000000000	Sc9f00ffc74079067
K3107915498080101	P0000000000000000	S7cfd82a593252b4e
K3107919498080101	P0000000000000000	Scb49a2f9e91363e3
K10079115b9080140	P0000000000000000	S00b588be70d23f56
K3107911598080140	P0000000000000000	S406a9a6ab43399ae
K1007d01589980101	P0000000000000000	S6cb773611dca9ada
K9107911589980101	P0000000000000000	S67fd21c17dbb5d70
K9107d01589190101	P0000000000000000	S9592cb4110430787
K1007d01598980120	P0000000000000000	Sa6b7ff68a318ddd3
K1007940498190101	P0000000000000000	S4d102196c914ca16
K0107910491190401	P0000000000000000	S2dfa9f4573594965
K0107910491190101	P0000000000000000	Sb46604816c0e0774
K0107940491190401	P0000000000000000	S6e7e6221a4f34e87
K19079210981a0101	P0000000000000000	Saa85e74643233199
K1007911998190801	P0000000000000000	S2e5a19db4d1962d6
K10079119981a0801	P0000000000000000	S23a866a809d30894
K1007921098190101	P0000000000000000	Sd812d961f017d320
K100791159819010b	P0000000000000000	S055605816e58608f
K1004801598190101	P0000000000000000	Sabd88e8b1b7716f1
K1004801598190102	P0000000000000000	S537ac95be69da1e1
K1004801598190108	P0000000000000000	Saed0f6ae3c25cdd8
K1002911598100104	P0000000000000000	Sb3e35a5ee53e7b8d
K1002911598190104	P0000000000000000	S61c79c71921a2ef8
K1002911598100201	P0000000000000000	Se2f5728f0995013c
K1002911698100101	P0000000000000000	S1aeac39a61f0a464
"  Test 4a: Key Permuted Choices 1 and 2 (PC1 & PC2) [encryption]
K8001010101010101	P0000000000000000	S95a8d72813daa94d
K4001010101010101	P0000000000000000	S0eec1487dd8c26d5
K2001010101010101	P0000000000000000	S7ad16ffb79c45926
K1001010101010101	P0000000000000000	Sd3746294ca6a6cf3
K0801010101010101	P0000000000000000	S809f5f873c1fd761
K0401010101010101	P0000000000000000	Sc02faffec989d1fc
K0201010101010101	P0000000000000000	S4615aa1d33e72f10
K0180010101010101	P0000000000000000	S2055123350c00858
K0140010101010101	P0000000000000000	Sdf3b99d6577397c8
K0120010101010101	P0000000000000000	S31fe17369b5288c9
K0110010101010101	P0000000000000000	Sdfdd3cc64dae1642
K0108010101010101	P0000000000000000	S178c83ce2b399d94
K0104010101010101	P0000000000000000	S50f636324a9b7f80
K0102010101010101	P0000000000000000	Sa8468ee3bc18f06d
K0101800101010101	P0000000000000000	Sa2dc9e92fd3cde92
K0101400101010101	P0000000000000000	Scac09f797d031287
K0101200101010101	P0000000000000000	S90ba680b22aeb525
K0101100101010101	P0000000000000000	Sce7a24f350e280b6
K0101080101010101	P0000000000000000	S882bff0aa01a0b87
K0101040101010101	P0000000000000000	S25610288924511c2
K0101020101010101	P0000000000000000	Sc71516c29c75d170
K0101018001010101	P0000000000000000	S5199c29a52c9f059
K0101014001010101	P0000000000000000	Sc22f0a294a71f29f
K0101012001010101	P0000000000000000	See371483714c02ea
K0101011001010101	P0000000000000000	Sa81fbd448f9e522f
K0101010801010101	P0000000000000000	S4f644c92e192dfed
K0101010401010101	P0000000000000000	S1afa9a66a6df92ae
K0101010201010101	P0000000000000000	Sb3c1cc715cb879d8
K0101010180010101	P0000000000000000	S19d032e64ab0bd8b
K0101010140010101	P0000000000000000	S3cfaa7a7dc8720dc
K0101010120010101	P0000000000000000	Sb7265f7f447ac6f3
K0101010110010101	P0000000000000000	S9db73b3c0d163f54
K0101010108010101	P0000000000000000	S8181b65babf4a975
K0101010104010101	P0000000000000000	S93c9b64042eaa240
K0101010102010101	P0000000000000000	S5570530829705592
K0101010101800101	P0000000000000000	S8638809e878787a0
K0101010101400101	P0000000000000000	S41b9a79af79ac208
K0101010101200101	P0000000000000000	S7a9be42f2009a892
K0101010101100101	P0000000000000000	S29038d56ba6d2745
K0101010101080101	P0000000000000000	S5495c6abf1e5df51
K0101010101040101	P0000000000000000	Sae13dbd561488933
K0101010101020101	P0000000000000000	S024d1ffa8904e389
K0101010101018001	P0000000000000000	Sd1399712f99bf02e
K0101010101014001	P0000000000000000	S14c1d7c1cffec79e
K0101010101012001	P0000000000000000	S1de5279dae3bed6f
K0101010101011001	P0000000000000000	Se941a33f85501303
K0101010101010801	P0000000000000000	Sda99dbbc9a03f379
K0101010101010401	P0000000000000000	Sb7fc92f91d8e92e9
K0101010101010201	P0000000000000000	Sae8e5caa3ca04e85
K0101010101010180	P0000000000000000	S9cc62df43b6eed74
K0101010101010140	P0000000000000000	Sd863dbb5c59a91a0
K0101010101010120	P0000000000000000	Sa1ab2190545b91d7
K0101010101010110	P0000000000000000	S0875041e64c570f7
K0101010101010108	P0000000000000000	S5a594528bebef1cc
K0101010101010104	P0000000000000000	Sfcdb3291de21f0c0
K0101010101010102	P0000000000000000	S869efd7f9f265a09
"  Test 4b: Key Permuted Choices 1 and 2 (PC1 & PC2) [decryption]
K8001010101010101	S95a8d72813daa94d	P0000000000000000
K4001010101010101	S0eec1487dd8c26d5	P0000000000000000
K2001010101010101	S7ad16ffb79c45926	P0000000000000000
K1001010101010101	Sd3746294ca6a6cf3	P0000000000000000
K0801010101010101	S809f5f873c1fd761	P0000000000000000
K0401010101010101	Sc02faffec989d1fc	P0000000000000000
K0201010101010101	S4615aa1d33e72f10	P0000000000000000
K0181010101010101	S2055123350c00858	P0000000000000000
K0141010101010101	Sdf3b99d6577397c8	P0000000000000000
K0121010101010101	S31fe17369b5288c9	P0000000000000000
K0111010101010101	Sdfdd3cc64dae1642	P0000000000000000
K0108010101010101	S178c83ce2b399d94	P0000000000000000
K0104010101010101	S50f636324a9b7f80	P0000000000000000
K0102010101010101	Sa8468ee3bc18f06d	P0000000000000000
K0101800101010101	Sa2dc9e92fd3cde92	P0000000000000000
K0101400101010101	Scac09f797d031287	P0000000000000000
K0101200101010101	S90ba680b22aeb525	P0000000000000000
K0101100101010101	Sce7a24f350e280b6	P0000000000000000
K0101080101010101	S882bff0aa01a0b87	P0000000000000000
K0101040101010101	S25610288924511c2	P0000000000000000
K0101020101010101	Sc71516c29c75d170	P0000000000000000
K0101018001010101	S5199c29a52c9f059	P0000000000000000
K0101014001010101	Sc22f0a294a71f29f	P0000000000000000
K0101012001010101	See371483714c02ea	P0000000000000000
K0101011001010101	Sa81fbd448f9e522f	P0000000000000000
K0101010801010101	S4f644c92e192dfed	P0000000000000000
K0101010401010101	S1afa9a66a6df92ae	P0000000000000000
K0101010201010101	Sb3c1cc715cb879d8	P0000000000000000
K0101010180010101	S19d032e64ab0bd8b	P0000000000000000
K0101010140010101	S3cfaa7a7dc8720dc	P0000000000000000
K0101010120010101	Sb7265f7f447ac6f3	P0000000000000000
K0101010110010101	S9db73b3c0d163f54	P0000000000000000
K0101010108010101	S8181b65babf4a975	P0000000000000000
K0101010104010101	S93c9b64042eaa240	P0000000000000000
K0101010102010101	S5570530829705592	P0000000000000000
K0101010101800101	S8638809e878787a0	P0000000000000000
K0101010101400101	S41b9a79af79ac208	P0000000000000000
K0101010101200101	S7a9be42f2009a892	P0000000000000000
K0101010101100101	S29038d56ba6d2745	P0000000000000000
K0101010101080101	S5495c6abf1e5df51	P0000000000000000
K0101010101040101	Sae13dbd561488933	P0000000000000000
K0101010101020101	S024d1ffa8904e389	P0000000000000000
K0101010101018001	Sd1399712f99bf02e	P0000000000000000
K0101010101014001	S14c1d7c1cffec79e	P0000000000000000
K0101010101012001	S1de5279dae3bed6f	P0000000000000000
K0101010101011001	Se941a33f85501303	P0000000000000000
K0101010101010801	Sda99dbbc9a03f379	P0000000000000000
K0101010101010401	Sb7fc92f91d8e92e9	P0000000000000000
K0101010101010201	Sae8e5caa3ca04e85	P0000000000000000
K0101010101010180	S9cc62df43b6eed74	P0000000000000000
K0101010101010140	Sd863dbb5c59a91a0	P0000000000000000
K0101010101010120	Sa1ab2190545b91d7	P0000000000000000
K0101010101010110	S0875041e64c570f7	P0000000000000000
K0101010101010108	S5a594528bebef1cc	P0000000000000000
K0101010101010104	Sfcdb3291de21f0c0	P0000000000000000
K0101010101010102	S869efd7f9f265a09	P0000000000000000
"  Test 5:  Exercise every S-box entry
K7ca110454a1a6e57	P01a1d6d039776742	S690f5b0d9a26939b
K0131d9619dc1376e	P5cd54ca83def57da	S7a389d10354bd271
K07a1133e4a0b2686	P0248d43806f67172	S868ebb51cab4599a
K3849674c2602319e	P51454b582ddf440a	S7178876e01f19b2a
K04b915ba43feb5b6	P42fd443059577fa2	Saf37fb421f8c4095
K0113b970fd34f2ce	P059b5e0851cf143a	S86a560f10ec6d85b
K0170f175468fb5e6	P0756d8e0774761d2	S0cd3da020021dc09
K43297fad38e373fe	P762514b829bf486a	Sea676b2cb7db2b7a
K07a7137045da2a16	P3bdd119049372802	Sdfd64a815caf1a0f
K04689104c2fd3b2f	P26955f6835af609a	S5c513c9c4886c088
K37d06bb516cb7546	P164d5e404f275232	S0a2aeeae3ff4ab77
K1f08260d1ac2465e	P6b056e18759f5cca	Sef1bf03e5dfa575a
K584023641aba6176	P004bd6ef09176062	S88bf0db6d70dee56
K025816164629b007	P480d39006ee762f2	Sa1f9915541020b56
K49793ebc79b3258f	P437540c8698f3cfa	S6fbf1cafcffd0556
K4fb05e1515ab73a7	P072d43a077075292	S2f22e49bab7ca1ac
K49e95d6d4ca229bf	P02fe55778117f12a	S5a6b612cc26cce4a
K018310dc409b26d6	P1d9d5c5018f728c2	S5f4c038ed12b2e41
K1c587f1c13924fef	P305532286d6f295a	S63fac0d034d9f793
