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,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
  }