cryptopp 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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,39 +1,81 @@
1
1
 
2
2
  require 'mkmf'
3
+ require 'rbconfig'
3
4
 
4
- Config::CONFIG['CC'] = 'g++'
5
- Config::CONFIG['CPP'] = 'g++ -E'
5
+ if RbConfig::CONFIG["arch"] =~ /-darwin\d/
6
+ if $warnflags
7
+ $warnflags << ' -Wno-shorten-64-to-32'
8
+ $warnflags.gsub!('-Wdeclaration-after-statement', '')
9
+ $warnflags.gsub!('-Wimplicit-function-declaration', '')
10
+ end
6
11
 
7
- # hack to get C++ standard library properly linked into shared
8
- # object
9
- # $libs = append_library($libs, "supc++") # doesn't work
10
- if Config::CONFIG["arch"] =~ /-darwin\d/
11
- Config::CONFIG['LDSHARED']="g++ -dynamic -bundle -undefined suppress -flat_namespace"
12
+ CONFIG["CXX"] = "clang++"
13
+ elsif RbConfig::CONFIG["arch"] =~ /x86_64-freebsd/
14
+ $LDFLAGS << " -fPIC -shared"
12
15
  else
13
- Config::CONFIG['LDSHARED'] = "g++ -shared"
16
+ $LDFLAGS << " -shared"
14
17
  end
15
18
 
16
- $CFLAGS << " -DNDEBUG -DCRYPTOPP_DISABLE_ASM"
19
+ version = File.read(File.join(File.dirname(__FILE__), *%w{ .. VERSION })).strip
20
+ ruby_version = RbConfig::CONFIG.values_at('MAJOR', 'MINOR', 'TEENY').join
21
+
22
+ $defs.concat([
23
+ "-DNDEBUG",
24
+ "-DCRYPTOPP_DISABLE_ASM",
25
+ "-DRUBY_VERSION_CODE=#{ruby_version}",
26
+ "-DEXT_VERSION_CODE=#{version}"
27
+ ])
17
28
 
18
29
  def error msg
19
- message msg + "\n"
20
- abort
30
+ message msg + "\n"
31
+ abort
21
32
  end
22
33
 
23
- unless have_library('stdc++')
24
- error "Can't find libstdc++"
34
+ unless find_library('cryptopp', nil, *%w{
35
+ /usr/local/lib
36
+ /usr/local/lib/cryptopp
37
+ /opt/local/lib
38
+ /opt/local/lib/cryptopp
39
+ /usr/lib
40
+ /usr/lib/cryptopp
41
+ })
42
+ error "Can't find cryptopp library"
25
43
  end
26
44
 
27
- unless have_library('cryptopp')
28
- error "Can't find cryptopp library"
45
+ # For the C++ headers, we need to compile using a C++ compiler since the header
46
+ # files can't compile cleanly in C.
47
+ puts "NOTE: The following warning is NORMAL due to an mkmf hack."
48
+
49
+ if defined?(MakeMakefile)
50
+ MakeMakefile::CONFTEST_C = 'conftest.cc'
51
+ else
52
+ CONFTEST_C = 'conftest.cc'
29
53
  end
30
54
 
31
55
  unless find_header('cryptlib.h', *%w{
32
- /usr/local/include/cryptopp
33
- /usr/include/cryptopp
34
- /opt/local/include/cryptopp
56
+ /usr/local/include
57
+ /usr/local/include/cryptopp
58
+ /opt/local/include
59
+ /opt/local/include/cryptopp
60
+ /usr/include
61
+ /usr/include/cryptopp
35
62
  })
36
- error "Can't find cryptlib.h"
63
+ error "Can't find cryptlib.h"
64
+ end
65
+
66
+ have_blocksize = try_link(<<SRC)
67
+ #include "cryptlib.h"
68
+ #include "sha3.h"
69
+
70
+ int main() {
71
+ CryptoPP::SHA3_224::BLOCKSIZE;
72
+ return 0;
73
+ }
74
+ SRC
75
+
76
+ if have_blocksize
77
+ $defs << "-DHAVE_CRYPTOPP_SHA3_BLOCKSIZE"
37
78
  end
38
79
 
39
80
  create_makefile('cryptopp')
81
+
@@ -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 "j3way.h"
@@ -11,12 +11,12 @@
11
11
 
12
12
  BlockCipher* J3Way::getEncryptionObject()
13
13
  {
14
- return new ThreeWayEncryption((byte*) itsKey.data(), itsKeylength, itsRounds);
14
+ return new ThreeWayEncryption((byte*) itsKey.data(), itsKeylength, itsRounds);
15
15
  }
16
16
 
17
17
  BlockCipher* J3Way::getDecryptionObject()
18
18
  {
19
- return new ThreeWayDecryption((byte*) itsKey.data(), itsKeylength, itsRounds);
19
+ return new ThreeWayDecryption((byte*) itsKey.data(), itsKeylength, itsRounds);
20
20
  }
21
21
 
22
22
  #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 __J3WAY_H__
@@ -20,9 +20,9 @@
20
20
 
21
21
  class J3Way : public JCipher_Template<ThreeWay_Info, THREEWAY_CIPHER, 11, 1, INT_MAX>
22
22
  {
23
- protected:
24
- BlockCipher* getEncryptionObject();
25
- BlockCipher* getDecryptionObject();
23
+ protected:
24
+ BlockCipher* getEncryptionObject();
25
+ BlockCipher* getDecryptionObject();
26
26
  };
27
27
 
28
28
  #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 __JADLER32_H__
@@ -22,10 +22,10 @@ using namespace CryptoPP;
22
22
 
23
23
  class JAdler32 : public JHash_Template<Adler32, ADLER32_CHECKSUM>
24
24
  {
25
- public:
26
- JAdler32(string plaintext = "") : JHash_Template<Adler32, ADLER32_CHECKSUM>(plaintext) { }
25
+ public:
26
+ JAdler32(string plaintext = "") : JHash_Template<Adler32, ADLER32_CHECKSUM>(plaintext) { }
27
27
 
28
- static string getHashName() { return "Adler32"; }
28
+ static string getHashName() { return "Adler32"; }
29
29
  };
30
30
 
31
31
  #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
  #include "jaes.h"
@@ -11,12 +11,12 @@
11
11
 
12
12
  BlockCipher* JAES::getEncryptionObject()
13
13
  {
14
- return new AESEncryption((byte*) itsKey.data(), itsKeylength);
14
+ return new AESEncryption((byte*) itsKey.data(), itsKeylength);
15
15
  }
16
16
 
17
17
  BlockCipher* JAES::getDecryptionObject()
18
18
  {
19
- return new AESDecryption((byte*) itsKey.data(), itsKeylength);
19
+ return new AESDecryption((byte*) itsKey.data(), itsKeylength);
20
20
  }
21
21
 
22
22
  #endif
data/ext/jaes.h CHANGED
@@ -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 __JAES_H__
@@ -20,9 +20,9 @@
20
20
 
21
21
  class JAES : public JCipher_Template<Rijndael_Info, AES_CIPHER>
22
22
  {
23
- protected:
24
- BlockCipher* getEncryptionObject();
25
- BlockCipher* getDecryptionObject();
23
+ protected:
24
+ BlockCipher* getEncryptionObject();
25
+ BlockCipher* getDecryptionObject();
26
26
  };
27
27
 
28
28
  typedef JAES JRijndael;
@@ -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 "jarc4.h"
@@ -11,12 +11,12 @@
11
11
 
12
12
  SymmetricCipher* JARC4::getEncryptionObject()
13
13
  {
14
- return new Weak::ARC4((byte*) itsKey.data(), itsKeylength);
14
+ return new Weak::ARC4((byte*) itsKey.data(), itsKeylength);
15
15
  }
16
16
 
17
17
  SymmetricCipher* JARC4::getDecryptionObject()
18
18
  {
19
- return getEncryptionObject();
19
+ return getEncryptionObject();
20
20
  }
21
21
 
22
22
  #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 __JARC4_H__
@@ -26,9 +26,9 @@ using namespace CryptoPP;
26
26
 
27
27
  class JARC4 : public JStream_Template<Weak::ARC4_Base, ARC4_CIPHER>
28
28
  {
29
- protected:
30
- SymmetricCipher* getEncryptionObject();
31
- SymmetricCipher* getDecryptionObject();
29
+ protected:
30
+ SymmetricCipher* getEncryptionObject();
31
+ SymmetricCipher* getDecryptionObject();
32
32
  };
33
33
 
34
34
  #undef CRYPTOPP_ENABLE_NAMESPACE_WEAK
@@ -1,172 +1,172 @@
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 "jbase.h"
9
9
 
10
10
  JBase::JBase()
11
11
  {
12
- itsPlaintext = "";
13
- itsIV = "";
14
- itsRNG = DEFAULT_RNG;
12
+ itsPlaintext = "";
13
+ itsIV = "";
14
+ itsRNG = DEFAULT_RNG;
15
15
  }
16
16
 
17
17
  string JBase::getPlaintext(const bool hex) const
18
18
  {
19
- if (hex) {
20
- return bin2hex(itsPlaintext);
21
- }
22
- else {
23
- return itsPlaintext;
24
- }
19
+ if (hex) {
20
+ return bin2hex(itsPlaintext);
21
+ }
22
+ else {
23
+ return itsPlaintext;
24
+ }
25
25
  }
26
26
 
27
27
  string JBase::getCiphertext(const bool hex) const
28
28
  {
29
- if (hex) {
30
- return bin2hex(itsCiphertext);
31
- }
32
- else {
33
- return itsCiphertext;
34
- }
29
+ if (hex) {
30
+ return bin2hex(itsCiphertext);
31
+ }
32
+ else {
33
+ return itsCiphertext;
34
+ }
35
35
  }
36
36
 
37
37
  string JBase::getKey(const bool hex) const
38
38
  {
39
- if (hex) {
40
- return bin2hex(itsKey);
41
- }
42
- else {
43
- return itsKey;
44
- }
39
+ if (hex) {
40
+ return bin2hex(itsKey);
41
+ }
42
+ else {
43
+ return itsKey;
44
+ }
45
45
  }
46
46
 
47
47
  unsigned int JBase::getKeylength() const
48
48
  {
49
- return itsKeylength;
49
+ return itsKeylength;
50
50
  }
51
51
 
52
52
  void JBase::setPlaintext(const string plaintext, const bool hex)
53
53
  {
54
- if (hex) {
55
- itsPlaintext = hex2bin(plaintext);
56
- }
57
- else {
58
- itsPlaintext = plaintext;
59
- }
54
+ if (hex) {
55
+ itsPlaintext = hex2bin(plaintext);
56
+ }
57
+ else {
58
+ itsPlaintext = plaintext;
59
+ }
60
60
  }
61
61
 
62
62
  void JBase::setCiphertext(const string ciphertext, const bool hex)
63
63
  {
64
- if (hex) {
65
- itsCiphertext = hex2bin(ciphertext);
66
- }
67
- else {
68
- itsCiphertext = ciphertext;
69
- }
64
+ if (hex) {
65
+ itsCiphertext = hex2bin(ciphertext);
66
+ }
67
+ else {
68
+ itsCiphertext = ciphertext;
69
+ }
70
70
  }
71
71
 
72
72
  unsigned int JBase::setKey(const string key, const bool hex)
73
73
  {
74
- if (hex) {
75
- itsKey = hex2bin(key);
76
- }
77
- else {
78
- itsKey = key;
79
- }
74
+ if (hex) {
75
+ itsKey = hex2bin(key);
76
+ }
77
+ else {
78
+ itsKey = key;
79
+ }
80
80
 
81
- setKeylength(itsKey.length());
81
+ setKeylength(itsKey.length());
82
82
 
83
- return itsKeylength;
83
+ return itsKeylength;
84
84
  }
85
85
 
86
86
  unsigned int JBase::setKeylength(const unsigned int keylength)
87
87
  {
88
- itsKeylength = getValidKeylength(keylength);
89
- itsKey.resize(itsKeylength);
88
+ itsKeylength = getValidKeylength(keylength);
89
+ itsKey.resize(itsKeylength);
90
90
 
91
- return itsKeylength;
91
+ return itsKeylength;
92
92
  }
93
93
 
94
94
  string JBase::getRNGName() const
95
95
  {
96
- return getRNGName(itsRNG);
96
+ return getRNGName(itsRNG);
97
97
  }
98
98
 
99
99
  string JBase::getRNGName(const enum RNGEnum rng)
100
100
  {
101
- switch (rng) {
102
- #ifdef NONBLOCKING_RNG_AVAILABLE
103
- case NON_BLOCKING_RNG:
104
- #if defined(CRYPTOPP_WIN32_AVAILABLE) && defined(USE_MS_CRYPTOAPI)
105
- return "Non-blocking (Microsoft CryptoAPI)";
106
- #else
107
- return "Non-blocking (/dev/urandom, etc.)";
108
- #endif
109
- #endif
101
+ switch (rng) {
102
+ #ifdef NONBLOCKING_RNG_AVAILABLE
103
+ case NON_BLOCKING_RNG:
104
+ #if defined(CRYPTOPP_WIN32_AVAILABLE) && defined(USE_MS_CRYPTOAPI)
105
+ return "Non-blocking (Microsoft CryptoAPI)";
106
+ #else
107
+ return "Non-blocking (/dev/urandom, etc.)";
108
+ #endif
109
+ #endif
110
110
 
111
- #ifdef BLOCKING_RNG_AVAILABLE
112
- case BLOCKING_RNG:
113
- return "Blocking (/dev/random, etc.)";
114
- #endif
111
+ #ifdef BLOCKING_RNG_AVAILABLE
112
+ case BLOCKING_RNG:
113
+ return "Blocking (/dev/random, etc.)";
114
+ #endif
115
115
 
116
- case RAND_RNG:
117
- return "System rand() function";
118
- }
116
+ case RAND_RNG:
117
+ return "System rand() function";
118
+ }
119
119
 
120
- return "Unknown";
120
+ return "Unknown";
121
121
  }
122
122
 
123
123
  enum RNGEnum JBase::getRNG() const
124
124
  {
125
- return itsRNG;
125
+ return itsRNG;
126
126
  }
127
127
 
128
128
  enum RNGEnum JBase::setRNG(const enum RNGEnum rng)
129
129
  {
130
- #ifdef NONBLOCKING_RNG_AVAILABLE
131
- if (rng == NON_BLOCKING_RNG) {
132
- itsRNG = rng;
133
- }
134
- #endif
130
+ #ifdef NONBLOCKING_RNG_AVAILABLE
131
+ if (rng == NON_BLOCKING_RNG) {
132
+ itsRNG = rng;
133
+ }
134
+ #endif
135
135
 
136
- #ifdef BLOCKING_RNG_AVAILABLE
137
- if (rng == BLOCKING_RNG) {
138
- itsRNG = rng;
139
- }
140
- #endif
136
+ #ifdef BLOCKING_RNG_AVAILABLE
137
+ if (rng == BLOCKING_RNG) {
138
+ itsRNG = rng;
139
+ }
140
+ #endif
141
141
 
142
- if (rng == RAND_RNG) {
143
- itsRNG = rng;
144
- }
142
+ if (rng == RAND_RNG) {
143
+ itsRNG = rng;
144
+ }
145
145
 
146
- return itsRNG;
146
+ return itsRNG;
147
147
  }
148
148
 
149
149
  string JBase::getIV(bool hex) const
150
150
  {
151
- if (hex) {
152
- return bin2hex(itsIV);
153
- }
154
- else {
155
- return itsIV;
156
- }
151
+ if (hex) {
152
+ return bin2hex(itsIV);
153
+ }
154
+ else {
155
+ return itsIV;
156
+ }
157
157
  }
158
158
 
159
159
  void JBase::setIV(string iv, bool hex)
160
160
  {
161
- if (hex) {
162
- itsIV = hex2bin(iv);
163
- }
164
- else {
165
- itsIV = iv;
166
- }
161
+ if (hex) {
162
+ itsIV = hex2bin(iv);
163
+ }
164
+ else {
165
+ itsIV = iv;
166
+ }
167
167
  }
168
168
 
169
169
  void JBase::setRandIV(const unsigned int size)
170
170
  {
171
- itsIV = generateIV(size, itsRNG);
171
+ itsIV = generateIV(size, itsRNG);
172
172
  }