cryptopp 0.0.4 → 0.0.5

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 (195) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/Gemfile +14 -0
  4. data/Guardfile +17 -0
  5. data/MIT-LICENSE +1 -1
  6. data/Rakefile +20 -27
  7. data/VERSION +1 -0
  8. data/cryptopp.gemspec +7 -182
  9. data/ext/Rakefile +2 -2
  10. data/ext/ciphers.cpp +619 -619
  11. data/ext/cryptopp.cpp +220 -217
  12. data/ext/cryptopp_ruby_api.h +7 -7
  13. data/ext/defs/hashes.def +16 -0
  14. data/ext/defs/hmacs.def +16 -0
  15. data/ext/digests.cpp +635 -601
  16. data/ext/extconf.rb +61 -19
  17. data/ext/j3way.cpp +5 -5
  18. data/ext/j3way.h +6 -6
  19. data/ext/jadler32.h +6 -6
  20. data/ext/jaes.cpp +5 -5
  21. data/ext/jaes.h +6 -6
  22. data/ext/jarc4.cpp +5 -5
  23. data/ext/jarc4.h +6 -6
  24. data/ext/jbase.cpp +94 -94
  25. data/ext/jbase.h +49 -55
  26. data/ext/jbasiccipherinfo.h +23 -23
  27. data/ext/jblowfish.cpp +5 -5
  28. data/ext/jblowfish.h +6 -6
  29. data/ext/jcamellia.cpp +5 -7
  30. data/ext/jcamellia.h +6 -8
  31. data/ext/jcast128.cpp +5 -5
  32. data/ext/jcast128.h +6 -6
  33. data/ext/jcast256.cpp +5 -5
  34. data/ext/jcast256.h +6 -6
  35. data/ext/jcipher.cpp +62 -62
  36. data/ext/jcipher.h +24 -24
  37. data/ext/jcipher_t.h +383 -383
  38. data/ext/jconfig.h +29 -46
  39. data/ext/jconstants.h +120 -122
  40. data/ext/jcrc32.h +6 -6
  41. data/ext/jdes.cpp +5 -5
  42. data/ext/jdes.h +6 -6
  43. data/ext/jdes_ede2.cpp +5 -5
  44. data/ext/jdes_ede2.h +6 -6
  45. data/ext/jdes_ede3.cpp +5 -5
  46. data/ext/jdes_ede3.h +6 -6
  47. data/ext/jdes_xex3.cpp +5 -5
  48. data/ext/jdes_xex3.h +6 -6
  49. data/ext/jdiamond2.cpp +5 -5
  50. data/ext/jdiamond2.h +6 -6
  51. data/ext/jdiamond2lite.cpp +5 -5
  52. data/ext/jdiamond2lite.h +6 -6
  53. data/ext/jexception.h +5 -5
  54. data/ext/jgost.cpp +5 -5
  55. data/ext/jgost.h +6 -6
  56. data/ext/jhash.cpp +51 -51
  57. data/ext/jhash.h +22 -27
  58. data/ext/jhash_t.h +59 -59
  59. data/ext/jhaval.h +15 -15
  60. data/ext/jhelpers.cpp +54 -54
  61. data/ext/jhelpers.h +3 -3
  62. data/ext/jhmac.cpp +20 -20
  63. data/ext/jhmac.h +15 -15
  64. data/ext/jhmac_t.h +40 -72
  65. data/ext/jidea.cpp +5 -5
  66. data/ext/jidea.h +6 -6
  67. data/ext/jmarc4.cpp +5 -5
  68. data/ext/jmarc4.h +6 -6
  69. data/ext/jmars.cpp +5 -5
  70. data/ext/jmars.h +6 -6
  71. data/ext/jmd2.h +9 -9
  72. data/ext/jmd4.h +9 -9
  73. data/ext/jmd5.h +9 -9
  74. data/ext/jpanamacipher.cpp +7 -7
  75. data/ext/jpanamacipher.h +9 -9
  76. data/ext/jpanamahash.h +9 -9
  77. data/ext/jrc2.cpp +15 -15
  78. data/ext/jrc2.h +11 -11
  79. data/ext/jrc5.cpp +5 -5
  80. data/ext/jrc5.h +6 -6
  81. data/ext/jrc6.cpp +5 -5
  82. data/ext/jrc6.h +6 -6
  83. data/ext/jripemd160.h +28 -28
  84. data/ext/jsafer.cpp +7 -7
  85. data/ext/jsafer.h +9 -9
  86. data/ext/jseal.cpp +7 -7
  87. data/ext/jseal.h +9 -9
  88. data/ext/jserpent.cpp +5 -5
  89. data/ext/jserpent.h +6 -6
  90. data/ext/jsha.h +38 -37
  91. data/ext/jsha3.h +130 -0
  92. data/ext/jsha3_blocksizes.h +73 -0
  93. data/ext/jshacal2.cpp +5 -5
  94. data/ext/jshacal2.h +6 -6
  95. data/ext/jshark.cpp +5 -7
  96. data/ext/jshark.h +6 -8
  97. data/ext/jsink.cpp +57 -57
  98. data/ext/jsink.h +127 -123
  99. data/ext/jskipjack.cpp +5 -5
  100. data/ext/jskipjack.h +6 -6
  101. data/ext/jsquare.cpp +5 -5
  102. data/ext/jsquare.h +6 -6
  103. data/ext/jstream.cpp +3 -3
  104. data/ext/jstream.h +3 -3
  105. data/ext/jstream_t.h +74 -126
  106. data/ext/jtea.cpp +5 -5
  107. data/ext/jtea.h +6 -6
  108. data/ext/jtiger.h +9 -11
  109. data/ext/jtwofish.cpp +5 -5
  110. data/ext/jtwofish.h +6 -6
  111. data/ext/jwhirlpool.h +9 -11
  112. data/ext/utils.cpp +3 -3
  113. data/extras/parser_c.rb +102 -102
  114. data/test/ciphers_test.rb +24 -30
  115. data/test/data/ciphers/3desval.yml +13 -0
  116. data/test/data/ciphers/3wayval.yml +17 -0
  117. data/test/data/ciphers/arc4.yml +22 -0
  118. data/test/data/ciphers/blowfish.yml +9 -0
  119. data/test/data/ciphers/camellia.yml +21 -0
  120. data/test/data/ciphers/cast128v.yml +13 -0
  121. data/test/data/ciphers/cast256v.yml +13 -0
  122. data/test/data/ciphers/descert.yml +723 -0
  123. data/test/data/ciphers/diamond.yml +31 -0
  124. data/test/data/ciphers/gostval.yml +33 -0
  125. data/test/data/ciphers/ideaval.yml +45 -0
  126. data/test/data/ciphers/marsval.yml +37 -0
  127. data/test/data/ciphers/panamac.yml +11 -0
  128. data/test/data/ciphers/rc2val.yml +49 -0
  129. data/test/data/ciphers/rc5val.yml +26 -0
  130. data/test/data/ciphers/rc6val.yml +25 -0
  131. data/test/data/ciphers/rijndael.yml +37 -0
  132. data/test/data/ciphers/saferval.yml +77 -0
  133. data/test/data/ciphers/seal.yml +6 -0
  134. data/test/data/ciphers/serpentv.yml +37 -0
  135. data/test/data/ciphers/shacal2.yml +21 -0
  136. data/test/data/ciphers/sharkval.yml +29 -0
  137. data/test/data/ciphers/skipjack.yml +5 -0
  138. data/test/data/ciphers/squareva.yml +33 -0
  139. data/test/data/ciphers/twofishv.yml +37 -0
  140. data/test/data/digests/adler32.yml +19 -0
  141. data/test/data/digests/crc32.yml +25 -0
  142. data/test/data/digests/haval.yml +7 -0
  143. data/test/data/digests/havalcer.yml +1 -0
  144. data/test/data/digests/md2.yml +22 -0
  145. data/test/data/digests/md4.yml +22 -0
  146. data/test/data/digests/md5.yml +22 -0
  147. data/test/data/digests/panamah.yml +13 -0
  148. data/test/data/digests/ripemd.yml +97 -0
  149. data/test/data/digests/sha.yml +25 -0
  150. data/test/data/digests/sha3.yml +23 -0
  151. data/test/data/digests/tiger.yml +30 -0
  152. data/test/data/digests/whirlpool.yml +25 -0
  153. data/test/data/hmacs/hmac.yml +14 -0
  154. data/test/digests_test.rb +17 -23
  155. data/test/hmacs_test.rb +25 -31
  156. data/test/test_helper.rb +31 -37
  157. metadata +70 -82
  158. data/test/data/ciphers/3desval.dat +0 -7
  159. data/test/data/ciphers/3wayval.dat +0 -6
  160. data/test/data/ciphers/arc4.dat +0 -8
  161. data/test/data/ciphers/blowfish.dat +0 -5
  162. data/test/data/ciphers/camellia.dat +0 -7
  163. data/test/data/ciphers/cast128v.dat +0 -5
  164. data/test/data/ciphers/cast256v.dat +0 -5
  165. data/test/data/ciphers/descert.dat +0 -198
  166. data/test/data/ciphers/diamond.dat +0 -9
  167. data/test/data/ciphers/gostval.dat +0 -10
  168. data/test/data/ciphers/ideaval.dat +0 -13
  169. data/test/data/ciphers/marsval.dat +0 -11
  170. data/test/data/ciphers/panamac.dat +0 -7
  171. data/test/data/ciphers/rc2val.dat +0 -10
  172. data/test/data/ciphers/rc5val.dat +0 -7
  173. data/test/data/ciphers/rc6val.dat +0 -8
  174. data/test/data/ciphers/rijndael.dat +0 -11
  175. data/test/data/ciphers/saferval.dat +0 -27
  176. data/test/data/ciphers/seal.dat +0 -3
  177. data/test/data/ciphers/serpentv.dat +0 -11
  178. data/test/data/ciphers/shacal2.dat +0 -7
  179. data/test/data/ciphers/sharkval.dat +0 -9
  180. data/test/data/ciphers/skipjack.dat +0 -3
  181. data/test/data/ciphers/squareva.dat +0 -10
  182. data/test/data/ciphers/twofishv.dat +0 -11
  183. data/test/data/digests/adler32.dat +0 -8
  184. data/test/data/digests/crc32.dat +0 -10
  185. data/test/data/digests/haval.dat +0 -4
  186. data/test/data/digests/havalcer.dat +0 -23
  187. data/test/data/digests/md2.dat +0 -9
  188. data/test/data/digests/md4.dat +0 -9
  189. data/test/data/digests/md5.dat +0 -9
  190. data/test/data/digests/panamah.dat +0 -8
  191. data/test/data/digests/ripemd.dat +0 -43
  192. data/test/data/digests/sha.dat +0 -19
  193. data/test/data/digests/tiger.dat +0 -11
  194. data/test/data/digests/whirlpool.dat +0 -13
  195. data/test/data/hmacs/hmac.dat +0 -6
@@ -1,8 +1,8 @@
1
1
 
2
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
3
+ * Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2013 Wei Dai
5
+ * See MIT-LICENSE for the extact license
6
6
  */
7
7
 
8
8
  #ifndef __JHASH_H__
@@ -17,38 +17,33 @@ using namespace CryptoPP;
17
17
 
18
18
  class JHash
19
19
  {
20
- public:
21
- JHash(string plaintext = "", bool hex = false);
22
- virtual ~JHash();
20
+ public:
21
+ JHash(string plaintext = "", bool hex = false);
22
+ virtual ~JHash();
23
23
 
24
- string getPlaintext(bool hex = false) const;
25
- string getHashtext(bool hex = true) const;
26
- unsigned int getDigestSize() const;
27
- virtual enum HashEnum getHashType() const = 0;
24
+ string getPlaintext(bool hex = false) const;
25
+ string getHashtext(bool hex = true) const;
26
+ unsigned int getDigestSize() const;
27
+ virtual enum HashEnum getHashType() const = 0;
28
28
 
29
- void setPlaintext(string plaintext, bool hex = false);
30
- void setHashtext(string hashtext, bool hex = true);
29
+ void setPlaintext(string plaintext, bool hex = false);
30
+ void setHashtext(string hashtext, bool hex = true);
31
31
 
32
- void updatePlaintext(string plaintext, bool hex = false);
32
+ void updatePlaintext(string plaintext, bool hex = false);
33
33
 
34
- void clear();
34
+ void clear();
35
35
 
36
- virtual bool hash() = 0;
37
- virtual bool validate() = 0;
38
- virtual bool validate(string plaintext, string hashtext) = 0;
36
+ virtual bool hash() = 0;
37
+ virtual bool validate() = 0;
38
+ virtual bool validate(string plaintext, string hashtext) = 0;
39
39
 
40
- virtual string hashRubyIO(VALUE* in, bool hex = true) = 0;
40
+ virtual string hashRubyIO(VALUE* in, bool hex = true) = 0;
41
41
 
42
- /* This is deprecated. It was used before using php_streams. Use it
43
- if you're using this code in something other than the cryptopp PHP
44
- extension... */
45
- //virtual string hashFile(const string filename, bool hex = true) = 0;
42
+ protected:
43
+ HashTransformation* itsHashModule;
46
44
 
47
- protected:
48
- HashTransformation* itsHashModule;
49
-
50
- string itsPlaintext;
51
- string itsHashtext;
45
+ string itsPlaintext;
46
+ string itsHashtext;
52
47
  };
53
48
 
54
49
  #endif
@@ -1,8 +1,8 @@
1
1
 
2
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
3
+ * Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2013 Wei Dai
5
+ * See MIT-LICENSE for the extact license
6
6
  */
7
7
 
8
8
  #ifndef __JHASH_T_H__
@@ -17,18 +17,18 @@ using namespace CryptoPP;
17
17
  template <typename HASH, enum HashEnum TYPE>
18
18
  class JHash_Template : public JHash
19
19
  {
20
- public:
21
- JHash_Template(string plaintext = "");
22
- enum HashEnum getHashType() const;
23
- bool hash();
24
- bool validate();
25
- bool validate(string plaintext, string hashtext);
26
- string hashRubyIO(VALUE* in, bool hex = true);
27
-
28
- /* This is deprecated. It was used before using RubyIO. Use it
29
- if you're using this code in something other than the CryptoPP Ruby
30
- extension... */
31
- //string hashFile(const string filename, bool hex = true);
20
+ public:
21
+ JHash_Template(string plaintext = "");
22
+ enum HashEnum getHashType() const;
23
+ bool hash();
24
+ bool validate();
25
+ bool validate(string plaintext, string hashtext);
26
+ string hashRubyIO(VALUE* in, bool hex = true);
27
+
28
+ /* This is deprecated. It was used before using RubyIO. Use it
29
+ if you're using this code in something other than the CryptoPP Ruby
30
+ extension... */
31
+ //string hashFile(const string filename, bool hex = true);
32
32
  };
33
33
 
34
34
  #define HASH_TYPE TYPE
@@ -36,60 +36,60 @@ class JHash_Template : public JHash
36
36
  template <typename HASH, enum HashEnum TYPE>
37
37
  JHash_Template<HASH, TYPE>::JHash_Template(string plaintext) : JHash(plaintext)
38
38
  {
39
- itsHashModule = new HASH;
39
+ itsHashModule = new HASH;
40
40
  }
41
41
 
42
42
  template <typename HASH, enum HashEnum TYPE>
43
43
  HashEnum JHash_Template<HASH, TYPE>::getHashType() const
44
44
  {
45
- return TYPE;
45
+ return TYPE;
46
46
  }
47
47
 
48
48
  template <typename HASH, enum HashEnum TYPE>
49
49
  bool JHash_Template<HASH, TYPE>::hash()
50
50
  {
51
- itsHashtext.erase();
51
+ itsHashtext.erase();
52
52
 
53
- StringSource s(itsPlaintext, true, new HashFilter(*itsHashModule, new StringSink(itsHashtext)));
54
- return true;
53
+ StringSource s(itsPlaintext, true, new HashFilter(*itsHashModule, new StringSink(itsHashtext)));
54
+ return true;
55
55
  }
56
56
 
57
57
  template <typename HASH, enum HashEnum TYPE>
58
58
  bool JHash_Template<HASH, TYPE>::validate()
59
59
  {
60
- return validate(itsPlaintext, itsHashtext);
60
+ return validate(itsPlaintext, itsHashtext);
61
61
  }
62
62
 
63
63
  template <typename HASH, enum HashEnum TYPE>
64
64
  bool JHash_Template<HASH, TYPE>::validate(string plaintext, string hashtext)
65
65
  {
66
- if (itsHashModule == NULL) {
67
- throw;
68
- }
66
+ if (itsHashModule == NULL) {
67
+ throw;
68
+ }
69
69
 
70
- return itsHashModule->VerifyDigest((const byte*) hashtext.data(), (const byte*) plaintext.data(), plaintext.length());
70
+ return itsHashModule->VerifyDigest((const byte*) hashtext.data(), (const byte*) plaintext.data(), plaintext.length());
71
71
  }
72
72
 
73
73
  template <typename HASH, enum HashEnum TYPE>
74
74
  string JHash_Template<HASH, TYPE>::hashRubyIO(VALUE* in, bool hex)
75
75
  {
76
- if (itsHashModule == NULL) {
77
- throw;
78
- }
79
-
80
- string retval;
81
- try {
82
- if (hex) {
83
- RubyIOSource f(&in, true, new HashFilter(*itsHashModule, new HexEncoder(new StringSink(retval), false)));
84
- }
85
- else {
86
- RubyIOSource f(&in, true, new HashFilter(*itsHashModule, new StringSink(retval)));
87
- }
88
- }
89
- catch (Exception e) {
90
- throw e;
91
- }
92
- return retval;
76
+ if (itsHashModule == NULL) {
77
+ throw;
78
+ }
79
+
80
+ string retval;
81
+ try {
82
+ if (hex) {
83
+ RubyIOSource f(&in, true, new HashFilter(*itsHashModule, new HexEncoder(new StringSink(retval), false)));
84
+ }
85
+ else {
86
+ RubyIOSource f(&in, true, new HashFilter(*itsHashModule, new StringSink(retval)));
87
+ }
88
+ }
89
+ catch (Exception e) {
90
+ throw e;
91
+ }
92
+ return retval;
93
93
  }
94
94
 
95
95
 
@@ -99,23 +99,23 @@ string JHash_Template<HASH, TYPE>::hashRubyIO(VALUE* in, bool hex)
99
99
  /*template <typename HASH, enum HashEnum TYPE>
100
100
  string JHash_Template<HASH, TYPE>::hashFile(const string filename, bool hex)
101
101
  {
102
- if (itsHashModule == NULL) {
103
- throw;
104
- }
105
-
106
- string retval;
107
- try {
108
- if (hex) {
109
- FileSource f(filename.c_str(), true, new HashFilter(*itsHashModule, new HexEncoder(new StringSink(retval), false)));
110
- }
111
- else {
112
- FileSource f(filename.c_str(), true, new HashFilter(*itsHashModule, new StringSink(retval)));
113
- }
114
- }
115
- catch (FileStore::OpenErr e) {
116
- throw e;
117
- }
118
- return retval;
102
+ if (itsHashModule == NULL) {
103
+ throw;
104
+ }
105
+
106
+ string retval;
107
+ try {
108
+ if (hex) {
109
+ FileSource f(filename.c_str(), true, new HashFilter(*itsHashModule, new HexEncoder(new StringSink(retval), false)));
110
+ }
111
+ else {
112
+ FileSource f(filename.c_str(), true, new HashFilter(*itsHashModule, new StringSink(retval)));
113
+ }
114
+ }
115
+ catch (FileStore::OpenErr e) {
116
+ throw e;
117
+ }
118
+ return retval;
119
119
  }*/
120
120
 
121
121
  #endif
@@ -1,8 +1,8 @@
1
1
 
2
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
3
+ * Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2013 Wei Dai
5
+ * See MIT-LICENSE for the extact license
6
6
  */
7
7
 
8
8
  #ifndef __JHAVAL_H__
@@ -23,40 +23,40 @@ using namespace CryptoPP;
23
23
  #if ENABLED_HAVAL_HASH
24
24
  class JHAVAL : public JHash_Template<HAVAL, HAVAL_HASH>
25
25
  {
26
- public:
27
- JHAVAL(string plaintext = "") : JHash_Template<HAVAL, HAVAL_HASH>(plaintext) { }
26
+ public:
27
+ JHAVAL(string plaintext = "") : JHash_Template<HAVAL, HAVAL_HASH>(plaintext) { }
28
28
 
29
- static string getHashName() { return "HAVAL"; }
29
+ static string getHashName() { return "HAVAL"; }
30
30
  };
31
31
  #endif
32
32
 
33
33
  #if ENABLED_HAVAL3_HASH
34
34
  class JHAVAL3 : public JHash_Template<HAVAL3, HAVAL3_HASH>
35
35
  {
36
- public:
37
- JHAVAL3(string plaintext = "") : JHash_Template<HAVAL3, HAVAL3_HASH>(plaintext) { }
36
+ public:
37
+ JHAVAL3(string plaintext = "") : JHash_Template<HAVAL3, HAVAL3_HASH>(plaintext) { }
38
38
 
39
- static string getHashName() { return "HAVAL3"; }
39
+ static string getHashName() { return "HAVAL3"; }
40
40
  };
41
41
  #endif
42
42
 
43
43
  #if ENABLED_HAVAL4_HASH
44
44
  class JHAVAL4 : public JHash_Template<HAVAL4, HAVAL4_HASH>
45
45
  {
46
- public:
47
- JHAVAL4(string plaintext = "") : JHash_Template<HAVAL4, HAVAL4_HASH>(plaintext) { }
46
+ public:
47
+ JHAVAL4(string plaintext = "") : JHash_Template<HAVAL4, HAVAL4_HASH>(plaintext) { }
48
48
 
49
- static string getHashName() { return "HAVAL4"; }
49
+ static string getHashName() { return "HAVAL4"; }
50
50
  };
51
51
  #endif
52
52
 
53
53
  #if ENABLED_HAVAL5_HASH
54
54
  class JHAVAL5 : public JHash_Template<HAVAL5, HAVAL5_HASH>
55
55
  {
56
- public:
57
- JHAVAL5(string plaintext = "") : JHash_Template<HAVAL5, HAVAL5_HASH>(plaintext) { }
56
+ public:
57
+ JHAVAL5(string plaintext = "") : JHash_Template<HAVAL5, HAVAL5_HASH>(plaintext) { }
58
58
 
59
- static string getHashName() { return "HAVAL5"; }
59
+ static string getHashName() { return "HAVAL5"; }
60
60
  };
61
61
  #endif
62
62
 
@@ -1,8 +1,8 @@
1
1
 
2
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
3
+ * Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2013 Wei Dai
5
+ * See MIT-LICENSE for the extact license
6
6
  */
7
7
 
8
8
  #include "jhelpers.h"
@@ -11,80 +11,80 @@ using namespace CryptoPP;
11
11
 
12
12
  string bin2hex(const string bin, const bool uppercase)
13
13
  {
14
- string retval;
15
- StringSource(bin, true, new HexEncoder(new StringSink(retval), uppercase));
16
- return retval;
14
+ string retval;
15
+ StringSource(bin, true, new HexEncoder(new StringSink(retval), uppercase));
16
+ return retval;
17
17
  }
18
18
 
19
19
  string hex2bin(const string hex)
20
20
  {
21
- string retval;
22
- StringSource(hex, true, new HexDecoder(new StringSink(retval)));
23
- return retval;
21
+ string retval;
22
+ StringSource(hex, true, new HexDecoder(new StringSink(retval)));
23
+ return retval;
24
24
  }
25
25
 
26
26
  char* bin2hex(const char* bin, size_t length, const bool uppercase)
27
27
  {
28
- char* retval = new char[length * 2 + 1];
29
- StringSource(bin, true, new HexEncoder(new ArraySink((byte*) retval, length * 2), uppercase));
30
- return retval;
28
+ char* retval = new char[length * 2 + 1];
29
+ StringSource(bin, true, new HexEncoder(new ArraySink((byte*) retval, length * 2), uppercase));
30
+ return retval;
31
31
  }
32
32
 
33
33
  char* hex2bin(const char* hex, size_t length)
34
34
  {
35
- char* retval = new char[length / 2 + 1];
36
- StringSource(hex, true, new HexDecoder(new ArraySink((byte*) retval, length / 2)));
37
- return retval;
35
+ char* retval = new char[length / 2 + 1];
36
+ StringSource(hex, true, new HexDecoder(new ArraySink((byte*) retval, length / 2)));
37
+ return retval;
38
38
  }
39
39
 
40
40
  string generateIV(const unsigned int size, const enum RNGEnum rng)
41
41
  {
42
- string retval;
43
- RandomNumberGenerator* randPool = NULL;
42
+ string retval;
43
+ RandomNumberGenerator* randPool = NULL;
44
44
 
45
- #ifdef NONBLOCKING_RNG_AVAILABLE
46
- if (rng == NON_BLOCKING_RNG) {
47
- randPool = new NonblockingRng;
48
- }
49
- #endif
45
+ #ifdef NONBLOCKING_RNG_AVAILABLE
46
+ if (rng == NON_BLOCKING_RNG) {
47
+ randPool = new NonblockingRng;
48
+ }
49
+ #endif
50
50
 
51
- #if defined(NONBLOCKING_RNG_AVAILABLE) && defined(BLOCKING_RNG_AVAILABLE)
52
- else
53
- #endif
51
+ #if defined(NONBLOCKING_RNG_AVAILABLE) && defined(BLOCKING_RNG_AVAILABLE)
52
+ else
53
+ #endif
54
54
 
55
- #ifdef BLOCKING_RNG_AVAILABLE
56
- if (rng == BLOCKING_RNG) {
57
- randPool = new BlockingRng;
58
- }
59
- #endif
55
+ #ifdef BLOCKING_RNG_AVAILABLE
56
+ if (rng == BLOCKING_RNG) {
57
+ randPool = new BlockingRng;
58
+ }
59
+ #endif
60
60
 
61
- if (rng == RAND_RNG) {
62
- for (unsigned int i = 0; i < size; i++) {
63
- retval += (char)(255.0 * rand() / RAND_MAX);
64
- }
65
- }
66
- else if (randPool != NULL) {
67
- for (unsigned int i = 0; i < size; i++) {
68
- retval += (char) randPool->GenerateByte();
69
- }
70
- delete randPool;
71
- }
61
+ if (rng == RAND_RNG) {
62
+ for (unsigned int i = 0; i < size; i++) {
63
+ retval += (char)(255.0 * rand() / RAND_MAX);
64
+ }
65
+ }
66
+ else if (randPool != NULL) {
67
+ for (unsigned int i = 0; i < size; i++) {
68
+ retval += (char) randPool->GenerateByte();
69
+ }
70
+ delete randPool;
71
+ }
72
72
 
73
- return retval;
73
+ return retval;
74
74
  }
75
75
 
76
76
  unsigned int checkBounds(unsigned int length, unsigned int min, unsigned int max, unsigned short int multiple)
77
77
  {
78
- if (min == max) {
79
- return min;
80
- }
81
- else if (length < min) {
82
- return min;
83
- }
84
- else if (length > max) {
85
- return max;
86
- }
87
- else {
88
- return (length + multiple - 1) - ((length + multiple - 1) % multiple);
89
- }
78
+ if (min == max) {
79
+ return min;
80
+ }
81
+ else if (length < min) {
82
+ return min;
83
+ }
84
+ else if (length > max) {
85
+ return max;
86
+ }
87
+ else {
88
+ return (length + multiple - 1) - ((length + multiple - 1) % multiple);
89
+ }
90
90
  }
@@ -1,8 +1,8 @@
1
1
 
2
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
3
+ * Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
4
+ * Crypto++ copyright (c) 1995-2013 Wei Dai
5
+ * See MIT-LICENSE for the extact license
6
6
  */
7
7
 
8
8
  #ifndef __JHELPERS_H__