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,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 "jidea.h"
9
+
10
+ #if ENABLED_IDEA_CIPHER
11
+
12
+ BlockCipher* JIDEA::getEncryptionObject()
13
+ {
14
+ return new IDEAEncryption((byte*) itsKey.data(), itsKeylength);
15
+ }
16
+
17
+ BlockCipher* JIDEA::getDecryptionObject()
18
+ {
19
+ return new IDEADecryption((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 __JIDEA_H__
9
+ #define __JIDEA_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_IDEA_CIPHER
14
+
15
+ #include "jcipher_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "idea.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ class JIDEA : public JCipher_Template<IDEA_Info, IDEA_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 "jmarc4.h"
9
+
10
+ #if ENABLED_MARC4_CIPHER
11
+
12
+ SymmetricCipher* JMARC4::getEncryptionObject()
13
+ {
14
+ return new Weak::MARC4((byte*) itsKey.data(), itsKeylength);
15
+ }
16
+
17
+ SymmetricCipher* JMARC4::getDecryptionObject()
18
+ {
19
+ return getEncryptionObject();
20
+ }
21
+
22
+ #endif
@@ -0,0 +1,37 @@
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 __JMARC4_H__
9
+ #define __JMARC4_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_MARC4_CIPHER
14
+
15
+ #ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
16
+ #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
17
+ #endif
18
+
19
+ #include "jstream_t.h"
20
+
21
+ // Crypto++ headers...
22
+
23
+ #include "arc4.h"
24
+
25
+ using namespace CryptoPP;
26
+
27
+ class JMARC4 : public JStream_Template<Weak::MARC4_Base, MARC4_CIPHER>
28
+ {
29
+ protected:
30
+ SymmetricCipher* getEncryptionObject();
31
+ SymmetricCipher* getDecryptionObject();
32
+ };
33
+
34
+ #undef CRYPTOPP_ENABLE_NAMESPACE_WEAK
35
+
36
+ #endif
37
+ #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 "jmars.h"
9
+
10
+ #if ENABLED_MARS_CIPHER
11
+
12
+ BlockCipher* JMARS::getEncryptionObject()
13
+ {
14
+ return new MARSEncryption((byte*) itsKey.data(), itsKeylength);
15
+ }
16
+
17
+ BlockCipher* JMARS::getDecryptionObject()
18
+ {
19
+ return new MARSDecryption((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 __JMARS_H__
9
+ #define __JMARS_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_MARS_CIPHER
14
+
15
+ #include "jcipher_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "mars.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ class JMARS : public JCipher_Template<MARS_Info, MARS_CIPHER>
24
+ {
25
+ protected:
26
+ BlockCipher* getEncryptionObject();
27
+ BlockCipher* getDecryptionObject();
28
+ };
29
+
30
+ #endif
31
+ #endif
@@ -0,0 +1,56 @@
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 __JMD2_H__
9
+ #define __JMD2_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_MD2_HASH || ENABLED_MD2_HMAC
14
+
15
+ #ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
16
+ #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
17
+ #endif
18
+
19
+ #if ENABLED_MD2_HASH
20
+ #include "jhash_t.h"
21
+ #endif
22
+
23
+ #if ENABLED_MD2_HMAC
24
+ #include "jhmac_t.h"
25
+ #endif
26
+
27
+ // Crypto++ headers...
28
+
29
+ #include "md2.h"
30
+
31
+ using namespace CryptoPP;
32
+
33
+ #if ENABLED_MD2_HASH
34
+ class JMD2 : public JHash_Template<Weak::MD2, MD2_HASH>
35
+ {
36
+ public:
37
+ JMD2(string plaintext = "") : JHash_Template<Weak::MD2, MD2_HASH>(plaintext) { }
38
+
39
+ static string getHashName() { return "MD2"; }
40
+ };
41
+ #endif
42
+
43
+ #if ENABLED_MD5_HMAC
44
+ class JMD2_HMAC : public JHMAC_Template<Weak::MD2, MD2_HMAC>
45
+ {
46
+ public:
47
+ JMD2_HMAC(string plaintext = "") : JHMAC_Template<Weak::MD2, MD2_HMAC>(plaintext) { }
48
+
49
+ static string getHashName() { return "MD2-HMAC"; }
50
+ };
51
+ #endif
52
+
53
+ #undef CRYPTOPP_ENABLE_NAMESPACE_WEAK
54
+
55
+ #endif
56
+ #endif
@@ -0,0 +1,56 @@
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 __JMD4_H__
9
+ #define __JMD4_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_MD4_HASH || ENABLED_MD4_HMAC
14
+
15
+ #ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
16
+ #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
17
+ #endif
18
+
19
+ #if ENABLED_MD4_HASH
20
+ #include "jhash_t.h"
21
+ #endif
22
+
23
+ #if ENABLED_MD4_HMAC
24
+ #include "jhmac_t.h"
25
+ #endif
26
+
27
+ // Crypto++ headers...
28
+
29
+ #include "md4.h"
30
+
31
+ using namespace CryptoPP;
32
+
33
+ #if ENABLED_MD4_HASH
34
+ class JMD4 : public JHash_Template<Weak::MD4, MD4_HASH>
35
+ {
36
+ public:
37
+ JMD4(string plaintext = "") : JHash_Template<Weak::MD4, MD4_HASH>(plaintext) { }
38
+
39
+ static string getHashName() { return "MD4"; }
40
+ };
41
+ #endif
42
+
43
+ #if ENABLED_MD4_HMAC
44
+ class JMD4_HMAC : public JHMAC_Template<Weak::MD4, MD4_HMAC>
45
+ {
46
+ public:
47
+ JMD4_HMAC(string plaintext = "") : JHMAC_Template<Weak::MD4, MD4_HMAC>(plaintext) { }
48
+
49
+ static string getHashName() { return "MD4-HMAC"; }
50
+ };
51
+ #endif
52
+
53
+ #undef CRYPTOPP_ENABLE_NAMESPACE_WEAK
54
+
55
+ #endif
56
+ #endif
@@ -0,0 +1,56 @@
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 __JMD5_H__
9
+ #define __JMD5_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_MD5_HASH || ENABLED_MD5_HMAC
14
+
15
+ #ifndef CRYPTOPP_ENABLE_NAMESPACE_WEAK
16
+ #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
17
+ #endif
18
+
19
+ #if ENABLED_MD5_HASH
20
+ #include "jhash_t.h"
21
+ #endif
22
+
23
+ #if ENABLED_MD5_HMAC
24
+ #include "jhmac_t.h"
25
+ #endif
26
+
27
+ // Crypto++ headers...
28
+
29
+ #include "md5.h"
30
+
31
+ using namespace CryptoPP;
32
+
33
+ #if ENABLED_MD5_HASH
34
+ class JMD5 : public JHash_Template<Weak::MD5, MD5_HASH>
35
+ {
36
+ public:
37
+ JMD5(string plaintext = "") : JHash_Template<Weak::MD5, MD5_HASH>(plaintext) { }
38
+
39
+ static string getHashName() { return "MD5"; }
40
+ };
41
+ #endif
42
+
43
+ #if ENABLED_MD5_HMAC
44
+ class JMD5_HMAC : public JHMAC_Template<Weak::MD5, MD5_HMAC>
45
+ {
46
+ public:
47
+ JMD5_HMAC(string plaintext = "") : JHMAC_Template<Weak::MD5, MD5_HMAC>(plaintext) { }
48
+
49
+ static string getHashName() { return "MD5-HMAC"; }
50
+ };
51
+ #endif
52
+
53
+ #undef CRYPTOPP_ENABLE_NAMESPACE_WEAK
54
+
55
+ #endif
56
+ #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
+ #include "jpanamacipher.h"
9
+
10
+ #if ENABLED_PANAMA_LITTLE_ENDIAN_CIPHER
11
+ SymmetricCipher* JPanamaCipherLE::getEncryptionObject()
12
+ {
13
+ return new PanamaCipher<LittleEndian>::Encryption((byte*) itsKey.data(), itsKeylength, (byte*) itsIV.data());
14
+ }
15
+
16
+ SymmetricCipher* JPanamaCipherLE::getDecryptionObject()
17
+ {
18
+ return new PanamaCipher<LittleEndian>::Decryption((byte*) itsKey.data(), itsKeylength, (byte*) itsIV.data());
19
+ }
20
+ #endif
21
+
22
+ #if ENABLED_PANAMA_BIG_ENDIAN_CIPHER
23
+ SymmetricCipher* JPanamaCipherBE::getEncryptionObject()
24
+ {
25
+ return new PanamaCipher<BigEndian>::Encryption((byte*) itsKey.data(), itsKeylength, (byte*) itsIV.data());
26
+ }
27
+
28
+ SymmetricCipher* JPanamaCipherBE::getDecryptionObject()
29
+ {
30
+ return new PanamaCipher<BigEndian>::Decryption((byte*) itsKey.data(), itsKeylength, (byte*) itsIV.data());
31
+ }
32
+ #endif
@@ -0,0 +1,46 @@
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 __JPANAMACIPHER_H__
9
+ #define __JPANAMACIPHER_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_PANAMA_LITTLE_ENDIAN_CIPHER || ENABLED_PANAMA_BIG_ENDIAN_CIPHER
14
+
15
+ #include "jstream_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "panama.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ #if ENABLED_PANAMA_LITTLE_ENDIAN_CIPHER
24
+ class JPanamaCipherLE : public JStream_Template<PanamaCipherInfo<LittleEndian>, PANAMA_LITTLE_ENDIAN_CIPHER>
25
+ {
26
+ protected:
27
+ SymmetricCipher* getEncryptionObject();
28
+ SymmetricCipher* getDecryptionObject();
29
+ };
30
+
31
+ typedef JPanamaCipherLE JPanamaLittleEndianCipher;
32
+ #endif
33
+
34
+ #if ENABLED_PANAMA_BIG_ENDIAN_CIPHER
35
+ class JPanamaCipherBE : public JStream_Template<PanamaCipherInfo<BigEndian>, PANAMA_BIG_ENDIAN_CIPHER>
36
+ {
37
+ protected:
38
+ SymmetricCipher* getEncryptionObject();
39
+ SymmetricCipher* getDecryptionObject();
40
+ };
41
+
42
+ typedef JPanamaCipherBE JPanamaBigEndianCipher;
43
+ #endif
44
+
45
+ #endif
46
+ #endif
@@ -0,0 +1,44 @@
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 __JPANAMAHASH_H__
9
+ #define __JPANAMAHASH_H__
10
+
11
+ #include "jconfig.h"
12
+
13
+ #if ENABLED_PANAMA_LITTLE_ENDIAN_HASH || ENABLED_PANAMA_BIG_ENDIAN_HASH
14
+
15
+ #include "jhash_t.h"
16
+
17
+ // Crypto++ headers...
18
+
19
+ #include "panama.h"
20
+
21
+ using namespace CryptoPP;
22
+
23
+ #if ENABLED_PANAMA_LITTLE_ENDIAN_HASH
24
+ class JPanamaHashLE : public JHash_Template<Weak::PanamaHash<LittleEndian>, PANAMA_LITTLE_ENDIAN_HASH>
25
+ {
26
+ public:
27
+ JPanamaHashLE(string plaintext = "") : JHash_Template<Weak::PanamaHash<LittleEndian>, PANAMA_LITTLE_ENDIAN_HASH>(plaintext) { }
28
+
29
+ static string getHashName() { return "Panama-LE Hash"; }
30
+ };
31
+ #endif
32
+
33
+ #if ENABLED_PANAMA_BIG_ENDIAN_HASH
34
+ class JPanamaHashBE : public JHash_Template<Weak::PanamaHash<BigEndian>, PANAMA_BIG_ENDIAN_HASH>
35
+ {
36
+ public:
37
+ JPanamaHashBE(string plaintext = "") : JHash_Template<Weak::PanamaHash<BigEndian>, PANAMA_BIG_ENDIAN_HASH>(plaintext) { }
38
+
39
+ static string getHashName() { return "Panama-BE Hash"; }
40
+ };
41
+ #endif
42
+
43
+ #endif
44
+ #endif