cryptopp 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. data/.gitignore +8 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README +7 -0
  4. data/Rakefile +42 -0
  5. data/cryptopp.gemspec +199 -0
  6. data/ext/.gitignore +5 -0
  7. data/ext/Rakefile +16 -0
  8. data/ext/ciphers.cpp +1402 -0
  9. data/ext/cryptopp.cpp +285 -0
  10. data/ext/cryptopp_ruby_api.h +139 -0
  11. data/ext/defs/block_modes.def +10 -0
  12. data/ext/defs/checksums.def +10 -0
  13. data/ext/defs/ciphers.def +136 -0
  14. data/ext/defs/hashes.def +78 -0
  15. data/ext/defs/hmacs.def +54 -0
  16. data/ext/defs/paddings.def +9 -0
  17. data/ext/defs/rngs.def +7 -0
  18. data/ext/digests.cpp +1120 -0
  19. data/ext/extconf.rb +39 -0
  20. data/ext/j3way.cpp +22 -0
  21. data/ext/j3way.h +29 -0
  22. data/ext/jadler32.h +32 -0
  23. data/ext/jaes.cpp +22 -0
  24. data/ext/jaes.h +31 -0
  25. data/ext/jarc4.cpp +22 -0
  26. data/ext/jarc4.h +37 -0
  27. data/ext/jbase.cpp +172 -0
  28. data/ext/jbase.h +92 -0
  29. data/ext/jbasiccipherinfo.h +74 -0
  30. data/ext/jblowfish.cpp +22 -0
  31. data/ext/jblowfish.h +29 -0
  32. data/ext/jcamellia.cpp +24 -0
  33. data/ext/jcamellia.h +33 -0
  34. data/ext/jcast128.cpp +22 -0
  35. data/ext/jcast128.h +31 -0
  36. data/ext/jcast256.cpp +22 -0
  37. data/ext/jcast256.h +31 -0
  38. data/ext/jcipher.cpp +112 -0
  39. data/ext/jcipher.h +42 -0
  40. data/ext/jcipher_t.h +469 -0
  41. data/ext/jconfig.h +127 -0
  42. data/ext/jconstants.h +189 -0
  43. data/ext/jcrc32.h +32 -0
  44. data/ext/jdes.cpp +22 -0
  45. data/ext/jdes.h +31 -0
  46. data/ext/jdes_ede2.cpp +22 -0
  47. data/ext/jdes_ede2.h +31 -0
  48. data/ext/jdes_ede3.cpp +22 -0
  49. data/ext/jdes_ede3.h +31 -0
  50. data/ext/jdes_xex3.cpp +22 -0
  51. data/ext/jdes_xex3.h +31 -0
  52. data/ext/jdiamond2.cpp +22 -0
  53. data/ext/jdiamond2.h +31 -0
  54. data/ext/jdiamond2lite.cpp +22 -0
  55. data/ext/jdiamond2lite.h +31 -0
  56. data/ext/jexception.h +20 -0
  57. data/ext/jgost.cpp +22 -0
  58. data/ext/jgost.h +31 -0
  59. data/ext/jhash.cpp +92 -0
  60. data/ext/jhash.h +54 -0
  61. data/ext/jhash_t.h +121 -0
  62. data/ext/jhaval.h +64 -0
  63. data/ext/jhelpers.cpp +90 -0
  64. data/ext/jhelpers.h +38 -0
  65. data/ext/jhmac.cpp +44 -0
  66. data/ext/jhmac.h +34 -0
  67. data/ext/jhmac_t.h +125 -0
  68. data/ext/jidea.cpp +22 -0
  69. data/ext/jidea.h +31 -0
  70. data/ext/jmarc4.cpp +22 -0
  71. data/ext/jmarc4.h +37 -0
  72. data/ext/jmars.cpp +22 -0
  73. data/ext/jmars.h +31 -0
  74. data/ext/jmd2.h +56 -0
  75. data/ext/jmd4.h +56 -0
  76. data/ext/jmd5.h +56 -0
  77. data/ext/jpanamacipher.cpp +32 -0
  78. data/ext/jpanamacipher.h +46 -0
  79. data/ext/jpanamahash.h +44 -0
  80. data/ext/jrc2.cpp +44 -0
  81. data/ext/jrc2.h +39 -0
  82. data/ext/jrc5.cpp +22 -0
  83. data/ext/jrc5.h +31 -0
  84. data/ext/jrc6.cpp +22 -0
  85. data/ext/jrc6.h +31 -0
  86. data/ext/jripemd160.h +113 -0
  87. data/ext/jsafer.cpp +32 -0
  88. data/ext/jsafer.h +42 -0
  89. data/ext/jseal.cpp +32 -0
  90. data/ext/jseal.h +42 -0
  91. data/ext/jserpent.cpp +22 -0
  92. data/ext/jserpent.h +31 -0
  93. data/ext/jsha.h +122 -0
  94. data/ext/jshacal2.cpp +22 -0
  95. data/ext/jshacal2.h +31 -0
  96. data/ext/jshark.cpp +24 -0
  97. data/ext/jshark.h +33 -0
  98. data/ext/jsink.cpp +90 -0
  99. data/ext/jsink.h +154 -0
  100. data/ext/jskipjack.cpp +22 -0
  101. data/ext/jskipjack.h +31 -0
  102. data/ext/jsquare.cpp +22 -0
  103. data/ext/jsquare.h +31 -0
  104. data/ext/jstream.cpp +8 -0
  105. data/ext/jstream.h +20 -0
  106. data/ext/jstream_t.h +175 -0
  107. data/ext/jtea.cpp +22 -0
  108. data/ext/jtea.h +31 -0
  109. data/ext/jtiger.h +52 -0
  110. data/ext/jtwofish.cpp +22 -0
  111. data/ext/jtwofish.h +31 -0
  112. data/ext/jwhirlpool.h +52 -0
  113. data/ext/utils.cpp +8 -0
  114. data/extras/parser_c.rb +114 -0
  115. data/test/ciphers_test.rb +37 -0
  116. data/test/data/ciphers/3desval.dat +7 -0
  117. data/test/data/ciphers/3wayval.dat +6 -0
  118. data/test/data/ciphers/arc4.dat +8 -0
  119. data/test/data/ciphers/blowfish.dat +5 -0
  120. data/test/data/ciphers/camellia.dat +7 -0
  121. data/test/data/ciphers/cast128v.dat +5 -0
  122. data/test/data/ciphers/cast256v.dat +5 -0
  123. data/test/data/ciphers/descert.dat +198 -0
  124. data/test/data/ciphers/diamond.dat +9 -0
  125. data/test/data/ciphers/gostval.dat +10 -0
  126. data/test/data/ciphers/ideaval.dat +13 -0
  127. data/test/data/ciphers/marsval.dat +11 -0
  128. data/test/data/ciphers/panamac.dat +7 -0
  129. data/test/data/ciphers/rc2val.dat +10 -0
  130. data/test/data/ciphers/rc5val.dat +7 -0
  131. data/test/data/ciphers/rc6val.dat +8 -0
  132. data/test/data/ciphers/rijndael.dat +11 -0
  133. data/test/data/ciphers/saferval.dat +27 -0
  134. data/test/data/ciphers/seal.dat +3 -0
  135. data/test/data/ciphers/serpentv.dat +11 -0
  136. data/test/data/ciphers/shacal2.dat +7 -0
  137. data/test/data/ciphers/sharkval.dat +9 -0
  138. data/test/data/ciphers/skipjack.dat +3 -0
  139. data/test/data/ciphers/squareva.dat +10 -0
  140. data/test/data/ciphers/twofishv.dat +11 -0
  141. data/test/data/digests/adler32.dat +8 -0
  142. data/test/data/digests/crc32.dat +10 -0
  143. data/test/data/digests/haval.dat +4 -0
  144. data/test/data/digests/havalcer.dat +23 -0
  145. data/test/data/digests/md2.dat +9 -0
  146. data/test/data/digests/md4.dat +9 -0
  147. data/test/data/digests/md5.dat +9 -0
  148. data/test/data/digests/panamah.dat +8 -0
  149. data/test/data/digests/ripemd.dat +43 -0
  150. data/test/data/digests/sha.dat +19 -0
  151. data/test/data/digests/tiger.dat +11 -0
  152. data/test/data/digests/whirlpool.dat +13 -0
  153. data/test/data/hmacs/hmac.dat +6 -0
  154. data/test/digests_test.rb +29 -0
  155. data/test/hmacs_test.rb +38 -0
  156. data/test/test_helper.rb +42 -0
  157. metadata +220 -0
@@ -0,0 +1,127 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #ifndef __JCONFIG_H__
9
+ #define __JCONFIG_H__
10
+
11
+ // to enable or disable specific cipher algorithms,
12
+ // set these to either 1 or 0 -- 1 for enabled, 0 for
13
+ // disabled, obviously.
14
+ //
15
+ // if we have config.h, rely on that, otherwise, below
16
+ // are the defaults...
17
+
18
+ #ifdef HAVE_CONFIG_H
19
+ #include "config.h"
20
+ #else
21
+
22
+ #define ENABLED_THREEWAY_CIPHER 1
23
+ #define ENABLED_AES_CIPHER 1
24
+ #define ENABLED_BLOWFISH_CIPHER 1
25
+ #define ENABLED_CAMELLIA_CIPHER 1
26
+ #define ENABLED_CAST128_CIPHER 1
27
+ #define ENABLED_CAST256_CIPHER 1
28
+ #define ENABLED_DES_CIPHER 1
29
+ #define ENABLED_DES_EDE2_CIPHER 1
30
+ #define ENABLED_DES_EDE3_CIPHER 1
31
+ #define ENABLED_DES_XEX3_CIPHER 1
32
+ #define ENABLED_DIAMOND2_CIPHER 0
33
+ #define ENABLED_DIAMOND2_LITE_CIPHER 0
34
+ #define ENABLED_GOST_CIPHER 1
35
+ #define ENABLED_IDEA_CIPHER 1
36
+ #define ENABLED_MARS_CIPHER 1
37
+ #define ENABLED_RC2_CIPHER 1
38
+ #define ENABLED_RC5_CIPHER 1
39
+ #define ENABLED_RC6_CIPHER 1
40
+ #define ENABLED_SAFER_K_CIPHER 1
41
+ #define ENABLED_SAFER_SK_CIPHER 1
42
+ #define ENABLED_SHACAL2_CIPHER 1
43
+ #define ENABLED_SHARK_CIPHER 1
44
+ #define ENABLED_SERPENT_CIPHER 1
45
+ #define ENABLED_SKIPJACK_CIPHER 1
46
+ #define ENABLED_SQUARE_CIPHER 1
47
+ #define ENABLED_TEA_CIPHER 1
48
+ #define ENABLED_TWOFISH_CIPHER 1
49
+
50
+ #define ENABLED_ARC4_CIPHER 1
51
+ #define ENABLED_MARC4_CIPHER 1
52
+ #define ENABLED_PANAMA_LITTLE_ENDIAN_CIPHER 1
53
+ #define ENABLED_PANAMA_BIG_ENDIAN_CIPHER 1
54
+ #define ENABLED_SEAL_LITTLE_ENDIAN_CIPHER 1
55
+ #define ENABLED_SEAL_BIG_ENDIAN_CIPHER 1
56
+
57
+ #define ENABLED_HAVAL_HASH 0
58
+ #define ENABLED_HAVAL3_HASH 0
59
+ #define ENABLED_HAVAL4_HASH 0
60
+ #define ENABLED_HAVAL5_HASH 0
61
+ #define ENABLED_MD2_HASH 1
62
+ #define ENABLED_MD4_HASH 1
63
+ #define ENABLED_MD5_HASH 1
64
+ #define ENABLED_PANAMA_LITTLE_ENDIAN_HASH 1
65
+ #define ENABLED_PANAMA_BIG_ENDIAN_HASH 1
66
+ #define ENABLED_RIPEMD128_HASH 1
67
+ #define ENABLED_RIPEMD160_HASH 1
68
+ #define ENABLED_RIPEMD256_HASH 1
69
+ #define ENABLED_RIPEMD320_HASH 1
70
+ #define ENABLED_SHA1_HASH 1
71
+ #define ENABLED_SHA256_HASH 1
72
+ #define ENABLED_SHA384_HASH 1
73
+ #define ENABLED_SHA512_HASH 1
74
+ #define ENABLED_TIGER_HASH 1
75
+ #define ENABLED_WHIRLPOOL_HASH 1
76
+
77
+ #define ENABLED_MD2_HMAC 1
78
+ #define ENABLED_MD4_HMAC 1
79
+ #define ENABLED_MD5_HMAC 1
80
+ #define ENABLED_RIPEMD128_HMAC 1
81
+ #define ENABLED_RIPEMD160_HMAC 1
82
+ #define ENABLED_RIPEMD256_HMAC 1
83
+ #define ENABLED_RIPEMD320_HMAC 1
84
+ #define ENABLED_SHA1_HMAC 1
85
+ #define ENABLED_SHA256_HMAC 1
86
+ #define ENABLED_SHA384_HMAC 1
87
+ #define ENABLED_SHA512_HMAC 1
88
+ #define ENABLED_TIGER_HMAC 1
89
+ #define ENABLED_WHIRLPOOL_HMAC 1
90
+
91
+ #define ENABLED_ADLER32_CHECKSUM 1
92
+ #define ENABLED_CRC32_CHECKSUM 1
93
+
94
+ #endif
95
+
96
+ // just to make sure SHARK and such are disabled if we don't
97
+ // have WORD64 or some version thereof...
98
+
99
+ // test if word64 is available for SHARK, SHA-384, SHA-512 and Tiger.
100
+
101
+ #if defined(__GNUC__) || defined(__MWERKS__) || defined(_MSC_VER) || defined(__BCPLUSPLUS__)
102
+ #define WORD64_AVAILABLE
103
+ #else
104
+ #undef ENABLED_CAMELLIA_CIPHER
105
+ #undef ENABLED_SHARK_CIPHER
106
+ #undef ENABLED_SHA384_HASH
107
+ #undef ENABLED_SHA512_HASH
108
+ #undef ENABLED_SHA384_HMAC
109
+ #undef ENABLED_SHA512_HMAC
110
+ #undef ENABLED_TIGER_HASH
111
+ #undef ENABLED_TIGER_HMAC
112
+ #undef ENABLED_WHIRLPOOL_HASH
113
+ #undef ENABLED_WHIRLPOOL_HMAC
114
+
115
+ #define ENABLED_CAMELLIA_CIPHER 0
116
+ #define ENABLED_SHARK_CIPHER 0
117
+ #define ENABLED_SHA384_HASH 0
118
+ #define ENABLED_SHA512_HASH 0
119
+ #define ENABLED_SHA384_HMAC 0
120
+ #define ENABLED_SHA512_HMAC 0
121
+ #define ENABLED_TIGER_HASH 0
122
+ #define ENABLED_TIGER_HMAC 0
123
+ #define ENABLED_WHIRLPOOL_HASH 0
124
+ #define ENABLED_WHIRLPOOL_HMAC 0
125
+ #endif
126
+
127
+ #endif
@@ -0,0 +1,189 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #ifndef __JCONSTANTS_H__
9
+ #define __JCONSTANTS_H__
10
+
11
+ using namespace CryptoPP;
12
+
13
+ // test if word64 is available for SHARK, SHA-384, SHA-512 and Tiger.
14
+
15
+ #if defined(__GNUC__) || defined(__MWERKS__) || defined(_MSC_VER) || defined(__BCPLUSPLUS__)
16
+ #define WORD64_AVAILABLE
17
+ #endif
18
+
19
+
20
+ // Cipher types used in JCipher and JStream...
21
+
22
+ enum CipherEnum {
23
+ UNKNOWN_CIPHER = -1,
24
+
25
+ // Stream ciphers...
26
+
27
+ ARC4_CIPHER,
28
+ PANAMA_LITTLE_ENDIAN_CIPHER,
29
+ PANAMA_BIG_ENDIAN_CIPHER,
30
+ MARC4_CIPHER,
31
+ SEAL_LITTLE_ENDIAN_CIPHER,
32
+ SEAL_BIG_ENDIAN_CIPHER,
33
+
34
+ // Block Ciphers...
35
+
36
+ THREEWAY_CIPHER,
37
+ AES_CIPHER,
38
+ BLOWFISH_CIPHER,
39
+ CAST128_CIPHER,
40
+ CAST256_CIPHER,
41
+ DES_CIPHER,
42
+ DES_EDE2_CIPHER,
43
+ DES_EDE3_CIPHER,
44
+ DES_XEX3_CIPHER,
45
+ DIAMOND2_CIPHER,
46
+ DIAMOND2_LITE_CIPHER,
47
+ GOST_CIPHER,
48
+ IDEA_CIPHER,
49
+ MARS_CIPHER,
50
+ RC2_CIPHER,
51
+ RC5_CIPHER,
52
+ RC6_CIPHER,
53
+ SAFER_K_CIPHER,
54
+ SAFER_SK_CIPHER,
55
+ SERPENT_CIPHER,
56
+ SKIPJACK_CIPHER,
57
+ SQUARE_CIPHER,
58
+ TEA_CIPHER,
59
+ TWOFISH_CIPHER,
60
+ SHARK_CIPHER,
61
+
62
+ // Ciphers from Crypto++ 5.2.1...
63
+
64
+ CAMELLIA_CIPHER,
65
+ SHACAL2_CIPHER
66
+ };
67
+
68
+ #define PANAMA_CIPHER PANAMA_LITTLE_ENDIAN_CIPHER
69
+ #define SEAL_CIPHER SEAL_BIG_ENDIAN_CIPHER
70
+ #define RIJNDAEL_CIPHER AES_CIPHER
71
+
72
+ // This is used to determine if we're using a stream
73
+ // cipher or a block cipher. If its <= TYPE_OF_CIPHER,
74
+ // it's a stream cipher; otherwise, it's a block cipher...
75
+
76
+ #define IS_BLOCK_CIPHER(x) (x >= THREEWAY_CIPHER && x <= SHACAL2_CIPHER)
77
+ #define IS_STREAM_CIPHER(x) (x >= ARC4_CIPHER && x <= SEAL_BIG_ENDIAN_CIPHER)
78
+ #define VALID_CIPHER(x) (x >= ARC4_CIPHER && x <= SHACAL2_CIPHER)
79
+
80
+
81
+ // Block cipher modes used in JCipher...
82
+
83
+ enum ModeEnum {
84
+ UNKNOWN_MODE = -1,
85
+ # define BLOCK_MODE_X(c, s) \
86
+ c ## _MODE,
87
+ # include "defs/block_modes.def"
88
+ };
89
+
90
+ #define VALID_MODE(x) (x > UNKNOWN_MODE && x <= OFB_MODE)
91
+
92
+
93
+ // Block cipher padding used in JCipher...
94
+
95
+ enum PaddingEnum {
96
+ UNKNOWN_PADDING = -1,
97
+ # define PADDING_X(c, s) \
98
+ c ## _PADDING = StreamTransformationFilter::c ## _PADDING,
99
+ # include "defs/paddings.def"
100
+ };
101
+
102
+ #define VALID_PADDING(x) (x > UNKNOWN_PADDING && x <= DEFAULT_PADDING)
103
+
104
+
105
+ // Hashes... and HMAC stuff, too...
106
+
107
+ enum HashEnum {
108
+ UNKNOWN_HASH = -1,
109
+
110
+ // These are checksums, not cryptographic hashes...
111
+
112
+ ADLER32_CHECKSUM,
113
+ CRC32_CHECKSUM,
114
+
115
+ // These are hashes. And message digests. ...
116
+
117
+ HAVAL_HASH,
118
+ HAVAL3_HASH,
119
+ HAVAL4_HASH,
120
+ HAVAL5_HASH,
121
+ MD2_HASH,
122
+ MD4_HASH,
123
+ MD5_HASH,
124
+ PANAMA_LITTLE_ENDIAN_HASH,
125
+ PANAMA_BIG_ENDIAN_HASH,
126
+ RIPEMD160_HASH,
127
+ SHA1_HASH,
128
+ SHA256_HASH,
129
+ SHA384_HASH,
130
+ SHA512_HASH,
131
+ TIGER_HASH,
132
+
133
+ // These are for HMAC hashes...
134
+
135
+ MD2_HMAC,
136
+ MD4_HMAC,
137
+ MD5_HMAC,
138
+ RIPEMD160_HMAC,
139
+ SHA1_HMAC,
140
+ SHA256_HMAC,
141
+ SHA384_HMAC,
142
+ SHA512_HMAC,
143
+ TIGER_HMAC,
144
+
145
+ // Newer hashes and HMACs from Crypto++ 5.2.1...
146
+
147
+ RIPEMD128_HASH,
148
+ RIPEMD256_HASH,
149
+ RIPEMD320_HASH,
150
+ WHIRLPOOL_HASH,
151
+
152
+ RIPEMD128_HMAC,
153
+ RIPEMD256_HMAC,
154
+ RIPEMD320_HMAC,
155
+ WHIRLPOOL_HMAC
156
+ };
157
+
158
+ #define PANAMA_HASH PANAMA_LITTLE_ENDIAN_HASH
159
+ #define PANAMA_HMAC PANAMA_LITTLE_ENDIAN_HMAC
160
+
161
+ // this is to figure out if we're dealing
162
+ // with a HMAC or a regular hash...
163
+
164
+ #define IS_HMAC(x) \
165
+ (((x > TIGER_HASH && x < RIPEMD128_HASH) || x >= RIPEMD128_HMAC))
166
+ #define IS_NON_HMAC(x) \
167
+ ((x <= TIGER_HASH || (x >= RIPEMD128_HASH && x <= WHIRLPOOL_HASH)))
168
+
169
+
170
+ // random number generators...
171
+
172
+ enum RNGEnum {
173
+ UNKNOWN_RNG = -1,
174
+ # define RNG_X(c, s) \
175
+ c ## _RNG,
176
+ # include "defs/rngs.def"
177
+ };
178
+
179
+ #define VALID_RNG(x) (x > UNKNOWN_RNG && x <= RAND_RNG)
180
+
181
+ #ifdef NONBLOCKING_RNG_AVAILABLE
182
+ #define DEFAULT_RNG NON_BLOCKING_RNG
183
+ #elif defined(BLOCKING_RNG_AVAILABLE)
184
+ #define DEFAULT_RNG BLOCKING_RNG
185
+ #else
186
+ #define DEFAULT_RNG RAND_RNG
187
+ #endif
188
+
189
+ #endif
@@ -0,0 +1,32 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #ifndef __JCRC32_H__
9
+ #define __JCRC32_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_CRC32_CHECKSUM
14
+
15
+ #include "jhash_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "crc.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ class JCRC32 : public JHash_Template<CRC32, CRC32_CHECKSUM>
24
+ {
25
+ public:
26
+ JCRC32(string plaintext = "") : JHash_Template<CRC32, CRC32_CHECKSUM>(plaintext) { }
27
+
28
+ static string getHashName() { return "CRC32"; }
29
+ };
30
+
31
+ #endif
32
+ #endif
@@ -0,0 +1,22 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #include "jdes.h"
9
+
10
+ #if ENABLED_DES_CIPHER
11
+
12
+ BlockCipher* JDES::getEncryptionObject()
13
+ {
14
+ return new DESEncryption((byte*) itsKey.data(), itsKeylength);
15
+ }
16
+
17
+ BlockCipher* JDES::getDecryptionObject()
18
+ {
19
+ return new DESDecryption((byte*) itsKey.data(), itsKeylength);
20
+ }
21
+
22
+ #endif
@@ -0,0 +1,31 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #ifndef __JDES_H__
9
+ #define __JDES_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_DES_CIPHER
14
+
15
+ #include "jcipher_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "des.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ class JDES : public JCipher_Template<DES_Info, DES_CIPHER>
24
+ {
25
+ protected:
26
+ BlockCipher* getEncryptionObject();
27
+ BlockCipher* getDecryptionObject();
28
+ };
29
+
30
+ #endif
31
+ #endif
@@ -0,0 +1,22 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #include "jdes_ede2.h"
9
+
10
+ #if ENABLED_DES_EDE2_CIPHER
11
+
12
+ BlockCipher* JDES_EDE2::getEncryptionObject()
13
+ {
14
+ return new DES_EDE2_Encryption((byte*) itsKey.data(), itsKeylength);
15
+ }
16
+
17
+ BlockCipher* JDES_EDE2::getDecryptionObject()
18
+ {
19
+ return new DES_EDE2_Decryption((byte*) itsKey.data(), itsKeylength);
20
+ }
21
+
22
+ #endif
@@ -0,0 +1,31 @@
1
+
2
+ /*
3
+ * Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2010 Wei Dai
5
+ * See COPYING for the extact license
6
+ */
7
+
8
+ #ifndef __JDES_EDE2_H__
9
+ #define __JDES_EDE2_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_DES_EDE2_CIPHER
14
+
15
+ #include "jcipher_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "des.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ class JDES_EDE2 : public JCipher_Template<DES_EDE2_Info, DES_EDE2_CIPHER>
24
+ {
25
+ protected:
26
+ BlockCipher* getEncryptionObject();
27
+ BlockCipher* getDecryptionObject();
28
+ };
29
+
30
+ #endif
31
+ #endif