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
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 68d183271bac57caacfe1f66a50dad317c4de678
4
+ data.tar.gz: a87c4ec4a2469fcbc766435b7072e97106b2b2e3
5
+ SHA512:
6
+ metadata.gz: 9a0845962d2279bc631f4212b7a5b2e5ed098216d9fc1af0eed42d47136500986e01baf70e0d1464e9afa889fd684ddc4f9e19487eb4e491abf2046a00691dc5
7
+ data.tar.gz: 236319c0bf9930ae7b7bb859d534fe55d3e42499adc21271f75cd14b064ea79223fbd2864f4ab223af992fa1fb5df9cd0e25eb87c1e1664f8feff3e632cd4a21
data/.gitignore CHANGED
@@ -1,8 +1,12 @@
1
1
  ext/*.bundle
2
2
  ext/*.o
3
+ ext/extconf.h
3
4
  doc
4
5
  *.kpf
5
6
  *~
6
7
  .DS_Store
7
8
  *tmp*
8
9
  pkg/
10
+ Gemfile.lock
11
+ Gemfile.local
12
+ *.orig
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem "rdoc", "~> 3.12"
6
+ gem "rake", "~> 10.0"
7
+ gem "minitest"
8
+ gem "minitest-reporters"
9
+ gem "guard-minitest"
10
+
11
+ if File.exists?('Gemfile.local')
12
+ instance_eval File.read('Gemfile.local')
13
+ end
14
+
@@ -0,0 +1,17 @@
1
+
2
+ guard 'minitest', :test_folders => 'test', :test_file_patterns => '*_test.rb' do
3
+ watch(%r|^test/(.+)_test\.rb|)
4
+
5
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) do |m|
6
+ "test/#{m[2]}_test.rb"
7
+ end
8
+
9
+ watch(%r|^test/test_helper\.rb|) do
10
+ "test"
11
+ end
12
+ end
13
+
14
+ if File.exists?('Guardfile.local')
15
+ instance_eval File.read('Guardfile.local')
16
+ end
17
+
@@ -1,4 +1,4 @@
1
- Copyright (c) 2002-2010 J Smith <dark.panda@gmail.com>
1
+ Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
data/Rakefile CHANGED
@@ -1,42 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
1
2
 
2
3
  # -*- ruby -*-
3
4
 
4
5
  require 'rubygems'
5
- require 'rake/gempackagetask'
6
+ require 'rubygems/package_task'
6
7
  require 'rake/testtask'
7
- require 'rake/rdoctask'
8
+ require 'rdoc/task'
9
+ require 'bundler/gem_tasks'
8
10
 
9
- $:.push 'lib'
11
+ $:.push File.expand_path(File.dirname(__FILE__), 'lib')
10
12
 
11
- begin
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- gem.name = "cryptopp"
15
- gem.version = "0.0.4"
16
- gem.summary = "cryptopp is a cryptographic library for Ruby built on Wei Dai's Crypto++."
17
- gem.description = gem.summary
18
- gem.email = "dark.panda@gmail.com"
19
- gem.homepage = "http://github.com/dark-panda/ruby-cryptopp"
20
- gem.authors = [ "J Smith" ]
21
- end
22
- Jeweler::GemcutterTasks.new
23
- rescue LoadError
24
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
25
- end
13
+ version = File.read(File.expand_path('VERSION', File.dirname(__FILE__)))
26
14
 
27
- desc 'Test cryptopp interface'
15
+ desc 'Test CryptoPP interface'
28
16
  Rake::TestTask.new(:test) do |t|
29
- t.libs << 'lib'
30
- t.pattern = 'test/**/*_test.rb'
31
- t.verbose = false
17
+ t.test_files = FileList['test/**/*_test.rb']
18
+ t.verbose = !!ENV['VERBOSE_TESTS']
19
+ t.warning = !!ENV['WARNINGS']
32
20
  end
33
21
 
34
22
  desc 'Build docs'
35
23
  Rake::RDocTask.new do |t|
36
- require 'rdoc/rdoc'
37
- require 'extras/parser_c.rb'
38
- t.main = 'README'
39
- t.rdoc_dir = 'doc'
40
- t.rdoc_files.include('README', 'ext/cryptopp.cpp', 'ext/ciphers.cpp', 'ext/digests.cpp')
24
+ t.title = "CryptoPP #{version}"
25
+ t.main = 'README'
26
+ t.rdoc_dir = 'doc'
27
+ t.rdoc_files.include(
28
+ 'README',
29
+ 'MIT-LICENSE',
30
+ 'ext/cryptopp.cpp',
31
+ 'ext/ciphers.cpp',
32
+ 'ext/digests.cpp'
33
+ )
41
34
  end
42
35
 
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.5
@@ -1,199 +1,24 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
5
2
 
3
+ version = File.read(File.expand_path('VERSION', File.dirname(__FILE__)))
4
+
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{cryptopp}
8
- s.version = "0.0.4"
6
+ s.name = "cryptopp"
7
+ s.version = version
9
8
 
10
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
10
  s.authors = ["J Smith"]
12
- s.date = %q{2010-07-01}
13
11
  s.description = %q{cryptopp is a cryptographic library for Ruby built on Wei Dai's Crypto++.}
12
+ s.summary = s.description
14
13
  s.email = %q{dark.panda@gmail.com}
14
+ s.license = "MIT"
15
15
  s.extensions = ["ext/extconf.rb"]
16
16
  s.extra_rdoc_files = [
17
17
  "README"
18
18
  ]
19
- s.files = [
20
- ".gitignore",
21
- "MIT-LICENSE",
22
- "README",
23
- "Rakefile",
24
- "cryptopp.gemspec",
25
- "ext/.gitignore",
26
- "ext/Rakefile",
27
- "ext/ciphers.cpp",
28
- "ext/cryptopp.cpp",
29
- "ext/cryptopp_ruby_api.h",
30
- "ext/defs/block_modes.def",
31
- "ext/defs/checksums.def",
32
- "ext/defs/ciphers.def",
33
- "ext/defs/hashes.def",
34
- "ext/defs/hmacs.def",
35
- "ext/defs/paddings.def",
36
- "ext/defs/rngs.def",
37
- "ext/digests.cpp",
38
- "ext/extconf.rb",
39
- "ext/j3way.cpp",
40
- "ext/j3way.h",
41
- "ext/jadler32.h",
42
- "ext/jaes.cpp",
43
- "ext/jaes.h",
44
- "ext/jarc4.cpp",
45
- "ext/jarc4.h",
46
- "ext/jbase.cpp",
47
- "ext/jbase.h",
48
- "ext/jbasiccipherinfo.h",
49
- "ext/jblowfish.cpp",
50
- "ext/jblowfish.h",
51
- "ext/jcamellia.cpp",
52
- "ext/jcamellia.h",
53
- "ext/jcast128.cpp",
54
- "ext/jcast128.h",
55
- "ext/jcast256.cpp",
56
- "ext/jcast256.h",
57
- "ext/jcipher.cpp",
58
- "ext/jcipher.h",
59
- "ext/jcipher_t.h",
60
- "ext/jconfig.h",
61
- "ext/jconstants.h",
62
- "ext/jcrc32.h",
63
- "ext/jdes.cpp",
64
- "ext/jdes.h",
65
- "ext/jdes_ede2.cpp",
66
- "ext/jdes_ede2.h",
67
- "ext/jdes_ede3.cpp",
68
- "ext/jdes_ede3.h",
69
- "ext/jdes_xex3.cpp",
70
- "ext/jdes_xex3.h",
71
- "ext/jdiamond2.cpp",
72
- "ext/jdiamond2.h",
73
- "ext/jdiamond2lite.cpp",
74
- "ext/jdiamond2lite.h",
75
- "ext/jexception.h",
76
- "ext/jgost.cpp",
77
- "ext/jgost.h",
78
- "ext/jhash.cpp",
79
- "ext/jhash.h",
80
- "ext/jhash_t.h",
81
- "ext/jhaval.h",
82
- "ext/jhelpers.cpp",
83
- "ext/jhelpers.h",
84
- "ext/jhmac.cpp",
85
- "ext/jhmac.h",
86
- "ext/jhmac_t.h",
87
- "ext/jidea.cpp",
88
- "ext/jidea.h",
89
- "ext/jmarc4.cpp",
90
- "ext/jmarc4.h",
91
- "ext/jmars.cpp",
92
- "ext/jmars.h",
93
- "ext/jmd2.h",
94
- "ext/jmd4.h",
95
- "ext/jmd5.h",
96
- "ext/jpanamacipher.cpp",
97
- "ext/jpanamacipher.h",
98
- "ext/jpanamahash.h",
99
- "ext/jrc2.cpp",
100
- "ext/jrc2.h",
101
- "ext/jrc5.cpp",
102
- "ext/jrc5.h",
103
- "ext/jrc6.cpp",
104
- "ext/jrc6.h",
105
- "ext/jripemd160.h",
106
- "ext/jsafer.cpp",
107
- "ext/jsafer.h",
108
- "ext/jseal.cpp",
109
- "ext/jseal.h",
110
- "ext/jserpent.cpp",
111
- "ext/jserpent.h",
112
- "ext/jsha.h",
113
- "ext/jshacal2.cpp",
114
- "ext/jshacal2.h",
115
- "ext/jshark.cpp",
116
- "ext/jshark.h",
117
- "ext/jsink.cpp",
118
- "ext/jsink.h",
119
- "ext/jskipjack.cpp",
120
- "ext/jskipjack.h",
121
- "ext/jsquare.cpp",
122
- "ext/jsquare.h",
123
- "ext/jstream.cpp",
124
- "ext/jstream.h",
125
- "ext/jstream_t.h",
126
- "ext/jtea.cpp",
127
- "ext/jtea.h",
128
- "ext/jtiger.h",
129
- "ext/jtwofish.cpp",
130
- "ext/jtwofish.h",
131
- "ext/jwhirlpool.h",
132
- "ext/utils.cpp",
133
- "extras/parser_c.rb",
134
- "test/ciphers_test.rb",
135
- "test/data/ciphers/3desval.dat",
136
- "test/data/ciphers/3wayval.dat",
137
- "test/data/ciphers/arc4.dat",
138
- "test/data/ciphers/blowfish.dat",
139
- "test/data/ciphers/camellia.dat",
140
- "test/data/ciphers/cast128v.dat",
141
- "test/data/ciphers/cast256v.dat",
142
- "test/data/ciphers/descert.dat",
143
- "test/data/ciphers/diamond.dat",
144
- "test/data/ciphers/gostval.dat",
145
- "test/data/ciphers/ideaval.dat",
146
- "test/data/ciphers/marsval.dat",
147
- "test/data/ciphers/panamac.dat",
148
- "test/data/ciphers/rc2val.dat",
149
- "test/data/ciphers/rc5val.dat",
150
- "test/data/ciphers/rc6val.dat",
151
- "test/data/ciphers/rijndael.dat",
152
- "test/data/ciphers/saferval.dat",
153
- "test/data/ciphers/seal.dat",
154
- "test/data/ciphers/serpentv.dat",
155
- "test/data/ciphers/shacal2.dat",
156
- "test/data/ciphers/sharkval.dat",
157
- "test/data/ciphers/skipjack.dat",
158
- "test/data/ciphers/squareva.dat",
159
- "test/data/ciphers/twofishv.dat",
160
- "test/data/digests/adler32.dat",
161
- "test/data/digests/crc32.dat",
162
- "test/data/digests/haval.dat",
163
- "test/data/digests/havalcer.dat",
164
- "test/data/digests/md2.dat",
165
- "test/data/digests/md4.dat",
166
- "test/data/digests/md5.dat",
167
- "test/data/digests/panamah.dat",
168
- "test/data/digests/ripemd.dat",
169
- "test/data/digests/sha.dat",
170
- "test/data/digests/tiger.dat",
171
- "test/data/digests/whirlpool.dat",
172
- "test/data/hmacs/hmac.dat",
173
- "test/digests_test.rb",
174
- "test/hmacs_test.rb",
175
- "test/test_helper.rb"
176
- ]
19
+ s.files = `git ls-files`.split($\)
177
20
  s.homepage = %q{http://github.com/dark-panda/ruby-cryptopp}
178
21
  s.rdoc_options = ["--charset=UTF-8"]
179
22
  s.require_paths = ["lib"]
180
- s.rubygems_version = %q{1.3.6}
181
- s.summary = %q{cryptopp is a cryptographic library for Ruby built on Wei Dai's Crypto++.}
182
- s.test_files = [
183
- "test/ciphers_test.rb",
184
- "test/digests_test.rb",
185
- "test/hmacs_test.rb",
186
- "test/test_helper.rb"
187
- ]
188
-
189
- if s.respond_to? :specification_version then
190
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
191
- s.specification_version = 3
192
-
193
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
194
- else
195
- end
196
- else
197
- end
198
23
  end
199
24
 
@@ -7,10 +7,10 @@ CLOBBER.include 'cryptopp.so'
7
7
  task :default => ['cryptopp.so']
8
8
 
9
9
  file 'cryptopp.so' => [ 'Makefile' ] do
10
- sh 'make'
10
+ sh 'make'
11
11
  end
12
12
 
13
13
  file 'Makefile' do
14
- ruby 'extconf.rb'
14
+ ruby 'extconf.rb'
15
15
  end
16
16
 
@@ -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"
@@ -73,208 +73,208 @@ static VALUE cipher_decrypt(VALUE self, bool hex);
73
73
 
74
74
  static CipherEnum cipher_sym_to_const(VALUE c)
75
75
  {
76
- CipherEnum cipher = UNKNOWN_CIPHER;
77
- ID id = SYM2ID(c);
76
+ CipherEnum cipher = UNKNOWN_CIPHER;
77
+ ID id = SYM2ID(c);
78
78
 
79
- if (id == rb_intern("rijndael")) {
80
- cipher = AES_CIPHER;
81
- }
82
- else if (id == rb_intern("panama")) {
83
- cipher = PANAMA_CIPHER;
84
- }
85
- else if (id == rb_intern("seal")) {
86
- cipher = SEAL_CIPHER;
87
- }
88
- # define CIPHER_ALGORITHM_X_FORCE 1
89
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
90
- else if (id == rb_intern(# s)) { \
91
- cipher = r ## _CIPHER; \
92
- }
93
- # include "defs/ciphers.def"
94
- return cipher;
79
+ if (id == rb_intern("rijndael")) {
80
+ cipher = AES_CIPHER;
81
+ }
82
+ else if (id == rb_intern("panama")) {
83
+ cipher = PANAMA_CIPHER;
84
+ }
85
+ else if (id == rb_intern("seal")) {
86
+ cipher = SEAL_CIPHER;
87
+ }
88
+ # define CIPHER_ALGORITHM_X_FORCE 1
89
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
90
+ else if (id == rb_intern(# s)) { \
91
+ cipher = r ## _CIPHER; \
92
+ }
93
+ # include "defs/ciphers.def"
94
+ return cipher;
95
95
  }
96
96
 
97
97
 
98
98
  static ModeEnum mode_sym_to_const(VALUE m)
99
99
  {
100
- ModeEnum mode = UNKNOWN_MODE;
101
- ID id = SYM2ID(m);
100
+ ModeEnum mode = UNKNOWN_MODE;
101
+ ID id = SYM2ID(m);
102
102
 
103
- if (id == rb_intern("counter")) {
104
- mode = CTR_MODE;
105
- }
106
- # define BLOCK_MODE_X(c, s) \
107
- else if (id == rb_intern(# s)) { \
108
- mode = c ## _MODE; \
109
- }
110
- # include "defs/block_modes.def"
111
- return mode;
103
+ if (id == rb_intern("counter")) {
104
+ mode = CTR_MODE;
105
+ }
106
+ # define BLOCK_MODE_X(c, s) \
107
+ else if (id == rb_intern(# s)) { \
108
+ mode = c ## _MODE; \
109
+ }
110
+ # include "defs/block_modes.def"
111
+ return mode;
112
112
  }
113
113
 
114
114
  static PaddingEnum padding_sym_to_const(VALUE p)
115
115
  {
116
- PaddingEnum padding = UNKNOWN_PADDING;
117
- ID id = SYM2ID(p);
118
-
119
- if (id == rb_intern("none")) {
120
- padding = NO_PADDING;
121
- }
122
- else if (id == rb_intern("zeroes")) {
123
- padding = ZEROS_PADDING;
124
- }
125
- else if (id == rb_intern("one_and_zeroes")) {
126
- padding = ONE_AND_ZEROS_PADDING;
127
- }
128
- # define PADDING_X(c, s) \
129
- else if (id == rb_intern(# s)) { \
130
- padding = c ## _PADDING; \
131
- }
132
- # include "defs/paddings.def"
133
- return padding;
116
+ PaddingEnum padding = UNKNOWN_PADDING;
117
+ ID id = SYM2ID(p);
118
+
119
+ if (id == rb_intern("none")) {
120
+ padding = NO_PADDING;
121
+ }
122
+ else if (id == rb_intern("zeroes")) {
123
+ padding = ZEROS_PADDING;
124
+ }
125
+ else if (id == rb_intern("one_and_zeroes")) {
126
+ padding = ONE_AND_ZEROS_PADDING;
127
+ }
128
+ # define PADDING_X(c, s) \
129
+ else if (id == rb_intern(# s)) { \
130
+ padding = c ## _PADDING; \
131
+ }
132
+ # include "defs/paddings.def"
133
+ return padding;
134
134
  }
135
135
 
136
136
  static RNGEnum rng_sym_to_const(VALUE r)
137
137
  {
138
- RNGEnum rng = UNKNOWN_RNG;
139
- ID id = SYM2ID(r);
138
+ RNGEnum rng = UNKNOWN_RNG;
139
+ ID id = SYM2ID(r);
140
140
 
141
- if (false) {
142
- // no-op so we can use our x-macro
143
- }
144
- # define RNG_X(c, s) \
145
- else if (id == rb_intern(# s)) { \
146
- rng = c ## _RNG; \
147
- }
148
- # include "defs/rngs.def"
149
- return rng;
141
+ if (false) {
142
+ // no-op so we can use our x-macro
143
+ }
144
+ # define RNG_X(c, s) \
145
+ else if (id == rb_intern(# s)) { \
146
+ rng = c ## _RNG; \
147
+ }
148
+ # include "defs/rngs.def"
149
+ return rng;
150
150
  }
151
151
 
152
152
 
153
153
  /* See if a cipher algorithm is enabled. */
154
154
  static bool cipher_enabled(CipherEnum cipher)
155
155
  {
156
- switch (cipher) {
157
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
158
- case r ##_CIPHER:
159
- # include "defs/ciphers.def"
160
- return true;
161
- }
162
- return false;
156
+ switch (cipher) {
157
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
158
+ case r ##_CIPHER:
159
+ # include "defs/ciphers.def"
160
+ return true;
161
+ }
162
+ return false;
163
163
  }
164
164
 
165
165
 
166
166
  /* Figure out options for a cipher. We only check for Symbols, not Strings. */
167
167
  static void cipher_options(VALUE self, VALUE options)
168
168
  {
169
- Check_Type(options, T_HASH);
170
-
171
- {
172
- VALUE plaintext = rb_hash_aref(options, ID2SYM(rb_intern("plaintext")));
173
- VALUE plaintext_hex = rb_hash_aref(options, ID2SYM(rb_intern("plaintext_hex")));
174
- if (!NIL_P(plaintext) && !NIL_P(plaintext_hex)) {
175
- rb_raise(rb_eCryptoPP_Error, "can't set both plaintext and plaintext_hex in options");
176
- }
177
- else if (!NIL_P(plaintext)) {
178
- cipher_plaintext_eq(self, plaintext, false);
179
- }
180
- else if (!NIL_P(plaintext_hex)) {
181
- cipher_plaintext_eq(self, plaintext_hex, true);
182
- }
183
- }
184
-
185
- {
186
- VALUE ciphertext = rb_hash_aref(options, ID2SYM(rb_intern("ciphertext")));
187
- VALUE ciphertext_hex = rb_hash_aref(options, ID2SYM(rb_intern("ciphertext_hex")));
188
- if (!NIL_P(ciphertext) && !NIL_P(ciphertext_hex)) {
189
- rb_raise(rb_eCryptoPP_Error, "can't set both ciphertext and ciphertext_hex in options");
190
- }
191
- else if (!NIL_P(ciphertext)) {
192
- cipher_ciphertext_eq(self, ciphertext, false);
193
- }
194
- else if (!NIL_P(ciphertext_hex)) {
195
- cipher_ciphertext_eq(self, ciphertext_hex, true);
196
- }
197
- }
198
-
199
- {
200
- VALUE key = rb_hash_aref(options, ID2SYM(rb_intern("key")));
201
- VALUE key_hex = rb_hash_aref(options, ID2SYM(rb_intern("key_hex")));
202
- if (!NIL_P(key) && !NIL_P(key_hex)) {
203
- rb_raise(rb_eCryptoPP_Error, "can't set both key and key_hex in options");
204
- }
205
- else if (!NIL_P(key)) {
206
- cipher_key_eq(self, key, false);
207
- }
208
- else if (!NIL_P(key_hex)) {
209
- cipher_key_eq(self, key_hex, true);
210
- }
211
- }
212
-
213
- {
214
- VALUE key_length = rb_hash_aref(options, ID2SYM(rb_intern("key_length")));
215
- if (!NIL_P(key_length)) {
216
- rb_cipher_key_length_eq(self, key_length);
217
- }
218
- }
219
-
220
- # if ENABLED_RC2_CIPHER
221
- {
222
- VALUE effective_key_length = rb_hash_aref(options, ID2SYM(rb_intern("effective_key_length")));
223
- if (!NIL_P(effective_key_length)) {
224
- rb_cipher_effective_key_length_eq(self, effective_key_length);
225
- }
226
- }
227
- # endif
228
-
229
- {
230
- VALUE rounds = rb_hash_aref(options, ID2SYM(rb_intern("rounds")));
231
- if (!NIL_P(rounds)) {
232
- rb_cipher_rounds_eq(self, rounds);
233
- }
234
- }
235
-
236
- {
237
- VALUE rng = rb_hash_aref(options, ID2SYM(rb_intern("rng")));
238
- if (!NIL_P(rng)) {
239
- rb_cipher_rng_eq(self, rng);
240
- }
241
- }
242
-
243
- {
244
- VALUE rand_iv = rb_hash_aref(options, ID2SYM(rb_intern("rand_iv")));
245
- VALUE iv = rb_hash_aref(options, ID2SYM(rb_intern("iv")));
246
- VALUE iv_hex = rb_hash_aref(options, ID2SYM(rb_intern("iv_hex")));
247
-
248
- if (!NIL_P(rand_iv) && (!NIL_P(iv) || !NIL_P(iv_hex))) {
249
- rb_raise(rb_eCryptoPP_Error, "can't set both rand_iv and iv or iv_hex in options");
250
- }
251
- else if (!NIL_P(iv) && !NIL_P(iv_hex)) {
252
- rb_raise(rb_eCryptoPP_Error, "can't set both iv and iv_hex in options");
253
- }
254
- else if (!NIL_P(rand_iv)) {
255
- cipher_rand_iv(self, rand_iv);
256
- }
257
- else if (!NIL_P(iv)) {
258
- cipher_iv_eq(self, iv, false);
259
- }
260
- else if (!NIL_P(iv_hex)) {
261
- cipher_iv_eq(self, iv_hex, true);
262
- }
263
- }
264
-
265
- {
266
- VALUE block_mode = rb_hash_aref(options, ID2SYM(rb_intern("block_mode")));
267
- if (!NIL_P(block_mode)) {
268
- rb_cipher_block_mode_eq(self, block_mode);
269
- }
270
- }
271
-
272
- {
273
- VALUE padding = rb_hash_aref(options, ID2SYM(rb_intern("padding")));
274
- if (!NIL_P(padding)) {
275
- rb_cipher_padding_eq(self, padding);
276
- }
277
- }
169
+ Check_Type(options, T_HASH);
170
+
171
+ {
172
+ VALUE plaintext = rb_hash_aref(options, ID2SYM(rb_intern("plaintext")));
173
+ VALUE plaintext_hex = rb_hash_aref(options, ID2SYM(rb_intern("plaintext_hex")));
174
+ if (!NIL_P(plaintext) && !NIL_P(plaintext_hex)) {
175
+ rb_raise(rb_eCryptoPP_Error, "can't set both plaintext and plaintext_hex in options");
176
+ }
177
+ else if (!NIL_P(plaintext)) {
178
+ cipher_plaintext_eq(self, plaintext, false);
179
+ }
180
+ else if (!NIL_P(plaintext_hex)) {
181
+ cipher_plaintext_eq(self, plaintext_hex, true);
182
+ }
183
+ }
184
+
185
+ {
186
+ VALUE ciphertext = rb_hash_aref(options, ID2SYM(rb_intern("ciphertext")));
187
+ VALUE ciphertext_hex = rb_hash_aref(options, ID2SYM(rb_intern("ciphertext_hex")));
188
+ if (!NIL_P(ciphertext) && !NIL_P(ciphertext_hex)) {
189
+ rb_raise(rb_eCryptoPP_Error, "can't set both ciphertext and ciphertext_hex in options");
190
+ }
191
+ else if (!NIL_P(ciphertext)) {
192
+ cipher_ciphertext_eq(self, ciphertext, false);
193
+ }
194
+ else if (!NIL_P(ciphertext_hex)) {
195
+ cipher_ciphertext_eq(self, ciphertext_hex, true);
196
+ }
197
+ }
198
+
199
+ {
200
+ VALUE key = rb_hash_aref(options, ID2SYM(rb_intern("key")));
201
+ VALUE key_hex = rb_hash_aref(options, ID2SYM(rb_intern("key_hex")));
202
+ if (!NIL_P(key) && !NIL_P(key_hex)) {
203
+ rb_raise(rb_eCryptoPP_Error, "can't set both key and key_hex in options");
204
+ }
205
+ else if (!NIL_P(key)) {
206
+ cipher_key_eq(self, key, false);
207
+ }
208
+ else if (!NIL_P(key_hex)) {
209
+ cipher_key_eq(self, key_hex, true);
210
+ }
211
+ }
212
+
213
+ {
214
+ VALUE key_length = rb_hash_aref(options, ID2SYM(rb_intern("key_length")));
215
+ if (!NIL_P(key_length)) {
216
+ rb_cipher_key_length_eq(self, key_length);
217
+ }
218
+ }
219
+
220
+ # if ENABLED_RC2_CIPHER
221
+ {
222
+ VALUE effective_key_length = rb_hash_aref(options, ID2SYM(rb_intern("effective_key_length")));
223
+ if (!NIL_P(effective_key_length)) {
224
+ rb_cipher_effective_key_length_eq(self, effective_key_length);
225
+ }
226
+ }
227
+ # endif
228
+
229
+ {
230
+ VALUE rounds = rb_hash_aref(options, ID2SYM(rb_intern("rounds")));
231
+ if (!NIL_P(rounds)) {
232
+ rb_cipher_rounds_eq(self, rounds);
233
+ }
234
+ }
235
+
236
+ {
237
+ VALUE rng = rb_hash_aref(options, ID2SYM(rb_intern("rng")));
238
+ if (!NIL_P(rng)) {
239
+ rb_cipher_rng_eq(self, rng);
240
+ }
241
+ }
242
+
243
+ {
244
+ VALUE rand_iv = rb_hash_aref(options, ID2SYM(rb_intern("rand_iv")));
245
+ VALUE iv = rb_hash_aref(options, ID2SYM(rb_intern("iv")));
246
+ VALUE iv_hex = rb_hash_aref(options, ID2SYM(rb_intern("iv_hex")));
247
+
248
+ if (!NIL_P(rand_iv) && (!NIL_P(iv) || !NIL_P(iv_hex))) {
249
+ rb_raise(rb_eCryptoPP_Error, "can't set both rand_iv and iv or iv_hex in options");
250
+ }
251
+ else if (!NIL_P(iv) && !NIL_P(iv_hex)) {
252
+ rb_raise(rb_eCryptoPP_Error, "can't set both iv and iv_hex in options");
253
+ }
254
+ else if (!NIL_P(rand_iv)) {
255
+ cipher_rand_iv(self, rand_iv);
256
+ }
257
+ else if (!NIL_P(iv)) {
258
+ cipher_iv_eq(self, iv, false);
259
+ }
260
+ else if (!NIL_P(iv_hex)) {
261
+ cipher_iv_eq(self, iv_hex, true);
262
+ }
263
+ }
264
+
265
+ {
266
+ VALUE block_mode = rb_hash_aref(options, ID2SYM(rb_intern("block_mode")));
267
+ if (!NIL_P(block_mode)) {
268
+ rb_cipher_block_mode_eq(self, block_mode);
269
+ }
270
+ }
271
+
272
+ {
273
+ VALUE padding = rb_hash_aref(options, ID2SYM(rb_intern("padding")));
274
+ if (!NIL_P(padding)) {
275
+ rb_cipher_padding_eq(self, padding);
276
+ }
277
+ }
278
278
  }
279
279
 
280
280
 
@@ -282,43 +282,43 @@ static void cipher_options(VALUE self, VALUE options)
282
282
  * is found. May throw a JException if no suitable cipher is found. */
283
283
  static JBase* cipher_factory(VALUE algorithm)
284
284
  {
285
- try {
286
- switch (cipher_sym_to_const(algorithm)) {
287
- default:
288
- throw JException("the requested algorithm cannot be found");
289
- break;
285
+ try {
286
+ switch (cipher_sym_to_const(algorithm)) {
287
+ default:
288
+ throw JException("the requested algorithm cannot be found");
289
+ break;
290
290
 
291
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
292
- case r ## _CIPHER: \
293
- return static_cast<c*>(new c);
294
- # include "defs/ciphers.def"
295
- }
296
- }
297
- catch (Exception e) {
298
- throw JException("Crypto++ exception: " + e.GetWhat());
299
- }
291
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
292
+ case r ## _CIPHER: \
293
+ return static_cast<c*>(new c);
294
+ # include "defs/ciphers.def"
295
+ }
296
+ }
297
+ catch (Exception e) {
298
+ throw JException("Crypto++ exception: " + e.GetWhat());
299
+ }
300
300
  }
301
301
 
302
302
  /* Wraps a Cipher object into a Ruby object. May throw a JException if no
303
303
  * suitable Cipher is found. */
304
304
  static VALUE wrap_cipher_in_ruby(JBase* cipher)
305
305
  {
306
- const type_info& info = typeid(*cipher);
307
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
308
- if (info == typeid(c)) { \
309
- return Data_Wrap_Struct(rb_cCryptoPP_Cipher_## r, cipher_mark, cipher_free, cipher); \
310
- } \
311
- else
312
- # include "defs/ciphers.def"
313
- {
314
- throw JException("the requested algorithm has been disabled");
315
- }
306
+ const type_info& info = typeid(*cipher);
307
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
308
+ if (info == typeid(c)) { \
309
+ return Data_Wrap_Struct(rb_cCryptoPP_Cipher_## r, cipher_mark, cipher_free, cipher); \
310
+ } \
311
+ else
312
+ # include "defs/ciphers.def"
313
+ {
314
+ throw JException("the requested algorithm has been disabled");
315
+ }
316
316
  }
317
317
 
318
318
  /**
319
- * call-seq:
320
- * cipher_factory(algorithm) => Cipher
321
- * cipher_factory(algorithm, options) => Cipher
319
+ * call-seq:
320
+ * cipher_factory(algorithm) => Cipher
321
+ * cipher_factory(algorithm, options) => Cipher
322
322
  *
323
323
  * Creates a new Cipher object.
324
324
  *
@@ -326,35 +326,35 @@ static VALUE wrap_cipher_in_ruby(JBase* cipher)
326
326
  */
327
327
  VALUE rb_module_cipher_factory(int argc, VALUE *argv, VALUE self)
328
328
  {
329
- VALUE algorithm, options, retval;
330
- rb_scan_args(argc, argv, "11", &algorithm, &options);
331
- try {
332
- retval = wrap_cipher_in_ruby(cipher_factory(algorithm));
333
- }
334
- catch (Exception& e) {
335
- rb_raise(rb_eCryptoPP_Error, e.GetWhat().c_str());
336
- }
337
- if (!NIL_P(options)) {
338
- cipher_options(retval, options);
339
- }
340
- return retval;
329
+ VALUE algorithm, options, retval;
330
+ rb_scan_args(argc, argv, "11", &algorithm, &options);
331
+ try {
332
+ retval = wrap_cipher_in_ruby(cipher_factory(algorithm));
333
+ }
334
+ catch (Exception& e) {
335
+ rb_raise(rb_eCryptoPP_Error, "%s", e.GetWhat().c_str());
336
+ }
337
+ if (!NIL_P(options)) {
338
+ cipher_options(retval, options);
339
+ }
340
+ return retval;
341
341
  }
342
342
 
343
343
  #define CIPHER_ALGORITHM_X(klass, r, n, s) \
344
344
  VALUE rb_cipher_ ## r ##_new(int argc, VALUE *argv, VALUE self) \
345
345
  { \
346
- VALUE options, retval; \
347
- rb_scan_args(argc, argv, "01", &options); \
348
- try { \
349
- retval = wrap_cipher_in_ruby(cipher_factory(ID2SYM(rb_intern(# s)))); \
350
- } \
351
- catch (Exception& e) { \
352
- rb_raise(rb_eCryptoPP_Error, e.GetWhat().c_str()); \
353
- } \
354
- if (!NIL_P(options)) { \
355
- cipher_options(retval, options); \
356
- } \
357
- return retval; \
346
+ VALUE options, retval; \
347
+ rb_scan_args(argc, argv, "01", &options); \
348
+ try { \
349
+ retval = wrap_cipher_in_ruby(cipher_factory(ID2SYM(rb_intern(# s)))); \
350
+ } \
351
+ catch (Exception& e) { \
352
+ rb_raise(rb_eCryptoPP_Error, "%s", e.GetWhat().c_str()); \
353
+ } \
354
+ if (!NIL_P(options)) { \
355
+ cipher_options(retval, options); \
356
+ } \
357
+ return retval; \
358
358
  }
359
359
  #include "defs/ciphers.def"
360
360
 
@@ -362,15 +362,15 @@ VALUE rb_cipher_ ## r ##_new(int argc, VALUE *argv, VALUE self) \
362
362
  /* Creates a random initialization vector on the cipher. */
363
363
  static void cipher_rand_iv(VALUE self, VALUE l)
364
364
  {
365
- JBase *cipher = NULL;
366
- unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
367
- Data_Get_Struct(self, JBase, cipher);
368
- cipher->setRandIV(length);
365
+ JBase *cipher = NULL;
366
+ unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
367
+ Data_Get_Struct(self, JBase, cipher);
368
+ cipher->setRandIV(length);
369
369
  }
370
370
 
371
371
  /**
372
372
  * call-seq:
373
- * rand_iv(length) => nil
373
+ * rand_iv(length) => nil
374
374
  *
375
375
  * Sets a random initialization vector on the Cipher. This method uses the
376
376
  * random number generator set on the Cipher to produce the IV, so be sure to
@@ -380,135 +380,135 @@ static void cipher_rand_iv(VALUE self, VALUE l)
380
380
  */
381
381
  VALUE rb_cipher_rand_iv(VALUE self, VALUE l)
382
382
  {
383
- JBase *cipher = NULL;
384
- unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
385
- Data_Get_Struct(self, JBase, cipher);
386
- cipher->setRandIV(length);
387
- return l;
383
+ JBase *cipher = NULL;
384
+ unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
385
+ Data_Get_Struct(self, JBase, cipher);
386
+ cipher->setRandIV(length);
387
+ return l;
388
388
  }
389
389
 
390
390
 
391
391
  /* Sets an IV on the cipher. */
392
392
  static string cipher_iv_eq(VALUE self, VALUE iv, bool hex)
393
393
  {
394
- JBase *cipher = NULL;
395
- Check_Type(iv, T_STRING);
396
- Data_Get_Struct(self, JBase, cipher);
397
- cipher->setIV(string(StringValuePtr(iv), RSTRING(iv)->len), hex);
398
- return cipher->getIV(hex);
394
+ JBase *cipher = NULL;
395
+ Check_Type(iv, T_STRING);
396
+ Data_Get_Struct(self, JBase, cipher);
397
+ cipher->setIV(string(StringValuePtr(iv), RSTRING_LEN(iv)), hex);
398
+ return cipher->getIV(hex);
399
399
  }
400
400
 
401
401
  /**
402
402
  * call-seq:
403
- * iv=(iv) => String
403
+ * iv=(iv) => String
404
404
  *
405
405
  * Set an initialization vector on the Cipher.
406
406
  */
407
407
  VALUE rb_cipher_iv_eq(VALUE self, VALUE iv)
408
408
  {
409
- cipher_iv_eq(self, iv, false);
410
- return iv;
409
+ cipher_iv_eq(self, iv, false);
410
+ return iv;
411
411
  }
412
412
 
413
413
  /**
414
414
  * call-seq:
415
- * iv_hex=(iv) => String
415
+ * iv_hex=(iv) => String
416
416
  *
417
417
  * Set an initialization vector on the Cipher. This method uses hex data and
418
418
  * returns the IV as set.
419
419
  */
420
420
  VALUE rb_cipher_iv_hex_eq(VALUE self, VALUE iv)
421
421
  {
422
- cipher_iv_eq(self, iv, true);
423
- return iv;
422
+ cipher_iv_eq(self, iv, true);
423
+ return iv;
424
424
  }
425
425
 
426
426
 
427
427
  /* Gets the IV. */
428
428
  static string cipher_iv(VALUE self, bool hex)
429
429
  {
430
- JBase *cipher = NULL;
431
- Data_Get_Struct(self, JBase, cipher);
432
- return cipher->getIV(hex);
430
+ JBase *cipher = NULL;
431
+ Data_Get_Struct(self, JBase, cipher);
432
+ return cipher->getIV(hex);
433
433
  }
434
434
 
435
435
  /**
436
436
  * call-seq:
437
- * iv => String
437
+ * iv => String
438
438
  *
439
439
  * Returns the Cipher's IV in binary.
440
440
  */
441
441
  VALUE rb_cipher_iv(VALUE self)
442
442
  {
443
- string retval = cipher_iv(self, false);
444
- return rb_tainted_str_new(retval.data(), retval.length());
443
+ string retval = cipher_iv(self, false);
444
+ return rb_tainted_str_new(retval.data(), retval.length());
445
445
  }
446
446
 
447
447
  /**
448
448
  * call-seq:
449
- * iv => String
449
+ * iv => String
450
450
  *
451
451
  * Returns the Cipher's IV in hex.
452
452
  */
453
453
  VALUE rb_cipher_iv_hex(VALUE self)
454
454
  {
455
- string retval = cipher_iv(self, true);
456
- return rb_tainted_str_new(retval.data(), retval.length());
455
+ string retval = cipher_iv(self, true);
456
+ return rb_tainted_str_new(retval.data(), retval.length());
457
457
  }
458
458
 
459
459
 
460
460
  /**
461
461
  * call-seq:
462
- * block_mode=(mode) => Symbol
462
+ * block_mode=(mode) => Symbol
463
463
  *
464
464
  * Set the block mode on block ciphers. Returns the mode as set and may raise
465
465
  * a CryptoPPError if the mode is invalid or you are using a stream cipher.
466
466
  */
467
467
  VALUE rb_cipher_block_mode_eq(VALUE self, VALUE m)
468
468
  {
469
- JBase *cipher = NULL;
470
- ModeEnum mode = mode_sym_to_const(m);
469
+ JBase *cipher = NULL;
470
+ ModeEnum mode = mode_sym_to_const(m);
471
471
 
472
- if (!VALID_MODE(mode)) {
473
- rb_raise(rb_eCryptoPP_Error, "invalid cipher mode");
474
- }
475
- Data_Get_Struct(self, JBase, cipher);
476
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
477
- rb_raise(rb_eCryptoPP_Error, "can't set mode on stream ciphers");
478
- }
479
- else {
480
- ((JCipher*) cipher)->setMode(mode);
481
- return m;
482
- }
472
+ if (!VALID_MODE(mode)) {
473
+ rb_raise(rb_eCryptoPP_Error, "invalid cipher mode");
474
+ }
475
+ Data_Get_Struct(self, JBase, cipher);
476
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
477
+ rb_raise(rb_eCryptoPP_Error, "can't set mode on stream ciphers");
478
+ }
479
+ else {
480
+ ((JCipher*) cipher)->setMode(mode);
481
+ return m;
482
+ }
483
483
  }
484
484
 
485
485
 
486
486
  /**
487
487
  * call-seq:
488
- * block_mode => Fixnum
488
+ * block_mode => Fixnum
489
489
  *
490
490
  * Get the block mode. Returns <tt>nil</tt> if you try to use this on a stream
491
491
  * cipher.
492
492
  */
493
493
  VALUE rb_cipher_block_mode(VALUE self)
494
494
  {
495
- JBase *cipher = NULL;
496
- Data_Get_Struct(self, JBase, cipher);
497
- ModeEnum mode = ((JCipher*) cipher)->getMode();
498
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
499
- return Qnil;
500
- }
501
- # define BLOCK_MODE_X(c, s) \
502
- else if (mode == c ## _MODE) { \
503
- return ID2SYM(rb_intern(# s)); \
504
- }
505
- # include "defs/block_modes.def"
495
+ JBase *cipher = NULL;
496
+ Data_Get_Struct(self, JBase, cipher);
497
+ ModeEnum mode = ((JCipher*) cipher)->getMode();
498
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
499
+ return Qnil;
500
+ }
501
+ # define BLOCK_MODE_X(c, s) \
502
+ else if (mode == c ## _MODE) { \
503
+ return ID2SYM(rb_intern(# s)); \
504
+ }
505
+ # include "defs/block_modes.def"
506
506
  }
507
507
 
508
508
 
509
509
  /**
510
510
  * call-seq:
511
- * padding=(padding) => Symbol
511
+ * padding=(padding) => Symbol
512
512
  *
513
513
  * Set the padding on block ciphers.
514
514
  *
@@ -521,54 +521,54 @@ VALUE rb_cipher_block_mode(VALUE self)
521
521
  */
522
522
  VALUE rb_cipher_padding_eq(VALUE self, VALUE p)
523
523
  {
524
- JBase *cipher = NULL;
525
- PaddingEnum padding = padding_sym_to_const(p);
524
+ JBase *cipher = NULL;
525
+ PaddingEnum padding = padding_sym_to_const(p);
526
526
 
527
- if (!VALID_PADDING(padding)) {
528
- rb_raise(rb_eCryptoPP_Error, "invalid cipher padding");
529
- }
530
- Data_Get_Struct(self, JBase, cipher);
531
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
532
- rb_raise(rb_eCryptoPP_Error, "can't set padding on stream ciphers");
533
- }
534
- else {
535
- ((JCipher*) cipher)->setPadding(padding);
536
- if (((JCipher*) cipher)->getPadding() != padding) {
537
- rb_raise(rb_eCryptoPP_Error, "Padding '%s' cannot be used with mode '%s'", JCipher::getPaddingName(padding).c_str(), ((JCipher*) cipher)->getModeName().c_str());
538
- }
539
- else {
540
- return p;
541
- }
542
- }
527
+ if (!VALID_PADDING(padding)) {
528
+ rb_raise(rb_eCryptoPP_Error, "invalid cipher padding");
529
+ }
530
+ Data_Get_Struct(self, JBase, cipher);
531
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
532
+ rb_raise(rb_eCryptoPP_Error, "can't set padding on stream ciphers");
533
+ }
534
+ else {
535
+ ((JCipher*) cipher)->setPadding(padding);
536
+ if (((JCipher*) cipher)->getPadding() != padding) {
537
+ rb_raise(rb_eCryptoPP_Error, "Padding '%s' cannot be used with mode '%s'", JCipher::getPaddingName(padding).c_str(), ((JCipher*) cipher)->getModeName().c_str());
538
+ }
539
+ else {
540
+ return p;
541
+ }
542
+ }
543
543
  }
544
544
 
545
545
 
546
546
  /**
547
547
  * call-seq:
548
- * padding => Fixnum
548
+ * padding => Fixnum
549
549
  *
550
550
  * Get the cipher padding being used. Returns <tt>nil</tt> if you try to use
551
551
  * this on a stream cipher.
552
552
  */
553
553
  VALUE rb_cipher_padding(VALUE self)
554
554
  {
555
- JBase *cipher = NULL;
556
- Data_Get_Struct(self, JBase, cipher);
557
- PaddingEnum padding = ((JCipher*) cipher)->getPadding();
558
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
559
- return Qnil;
560
- }
561
- # define PADDING_X(c, s) \
562
- else if (padding == c ## _PADDING) { \
563
- return ID2SYM(rb_intern(# s)); \
564
- }
565
- # include "defs/paddings.def"
555
+ JBase *cipher = NULL;
556
+ Data_Get_Struct(self, JBase, cipher);
557
+ PaddingEnum padding = ((JCipher*) cipher)->getPadding();
558
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
559
+ return Qnil;
560
+ }
561
+ # define PADDING_X(c, s) \
562
+ else if (padding == c ## _PADDING) { \
563
+ return ID2SYM(rb_intern(# s)); \
564
+ }
565
+ # include "defs/paddings.def"
566
566
  }
567
567
 
568
568
 
569
569
  /**
570
570
  * call-seq:
571
- * rng=(rng) => Symbol
571
+ * rng=(rng) => Symbol
572
572
  *
573
573
  * Set the random number generator to use for IVs. A CryptoPPError will be
574
574
  * raised if an RNG is not available on the system.
@@ -579,178 +579,178 @@ VALUE rb_cipher_padding(VALUE self)
579
579
  */
580
580
  VALUE rb_cipher_rng_eq(VALUE self, VALUE r)
581
581
  {
582
- JBase *cipher = NULL;
583
- RNGEnum rng = rng_sym_to_const(r);
582
+ JBase *cipher = NULL;
583
+ RNGEnum rng = rng_sym_to_const(r);
584
584
 
585
- if (!VALID_RNG(rng)) {
586
- rb_raise(rb_eCryptoPP_Error, "invalid cipher RNG");
587
- }
588
- Data_Get_Struct(self, JBase, cipher);
589
- ((JCipher*) cipher)->setRNG(rng);
590
- if (((JCipher*) cipher)->getRNG() != rng) {
591
- rb_raise(rb_eCryptoPP_Error, "RNG '%s' is unavailable", JBase::getRNGName(rng).c_str());
592
- }
593
- else {
594
- return r;
595
- }
585
+ if (!VALID_RNG(rng)) {
586
+ rb_raise(rb_eCryptoPP_Error, "invalid cipher RNG");
587
+ }
588
+ Data_Get_Struct(self, JBase, cipher);
589
+ ((JCipher*) cipher)->setRNG(rng);
590
+ if (((JCipher*) cipher)->getRNG() != rng) {
591
+ rb_raise(rb_eCryptoPP_Error, "RNG '%s' is unavailable", JBase::getRNGName(rng).c_str());
592
+ }
593
+ else {
594
+ return r;
595
+ }
596
596
  }
597
597
 
598
598
 
599
599
  /**
600
600
  * call-seq:
601
- * rng => Fixnum
601
+ * rng => Fixnum
602
602
  *
603
603
  * Get the RNG being used.
604
604
  */
605
605
  VALUE rb_cipher_rng(VALUE self)
606
606
  {
607
- JBase *cipher = NULL;
608
- Data_Get_Struct(self, JBase, cipher);
609
- RNGEnum rng = ((JCipher*) cipher)->getRNG();
610
- if (false) {
611
- // no-op so we can use our x-macro
612
- }
613
- # define RNG_X(c, s) \
614
- else if (rng == c ## _RNG) { \
615
- return ID2SYM(rb_intern(# s)); \
616
- }
617
- # include "defs/rngs.def"
607
+ JBase *cipher = NULL;
608
+ Data_Get_Struct(self, JBase, cipher);
609
+ RNGEnum rng = ((JCipher*) cipher)->getRNG();
610
+ if (false) {
611
+ // no-op so we can use our x-macro
612
+ }
613
+ # define RNG_X(c, s) \
614
+ else if (rng == c ## _RNG) { \
615
+ return ID2SYM(rb_intern(# s)); \
616
+ }
617
+ # include "defs/rngs.def"
618
618
  }
619
619
 
620
620
 
621
621
  /* Set the plaintext. */
622
622
  static string cipher_plaintext_eq(VALUE self, VALUE plaintext, bool hex)
623
623
  {
624
- JBase *cipher = NULL;
625
- Check_Type(plaintext, T_STRING);
626
- Data_Get_Struct(self, JBase, cipher);
627
- cipher->setPlaintext(string(StringValuePtr(plaintext), RSTRING(plaintext)->len), hex);
628
- return cipher->getPlaintext(hex);
624
+ JBase *cipher = NULL;
625
+ Check_Type(plaintext, T_STRING);
626
+ Data_Get_Struct(self, JBase, cipher);
627
+ cipher->setPlaintext(string(StringValuePtr(plaintext), RSTRING_LEN(plaintext)), hex);
628
+ return cipher->getPlaintext(hex);
629
629
  }
630
630
 
631
631
  /**
632
632
  * call-seq:
633
- * plaintext=(string) => String
633
+ * plaintext=(string) => String
634
634
  *
635
635
  * Sets the plaintext on the Cipher in binary and returns the same.
636
636
  */
637
637
  VALUE rb_cipher_plaintext_eq(VALUE self, VALUE plaintext)
638
638
  {
639
- cipher_plaintext_eq(self, plaintext, false);
640
- return plaintext;
639
+ cipher_plaintext_eq(self, plaintext, false);
640
+ return plaintext;
641
641
  }
642
642
 
643
643
  /**
644
644
  * call-seq:
645
- * plaintext_hex=(string) => String
645
+ * plaintext_hex=(string) => String
646
646
  *
647
647
  * Sets the plaintext on the Cipher in hex and returns the same.
648
648
  */
649
649
  VALUE rb_cipher_plaintext_hex_eq(VALUE self, VALUE plaintext)
650
650
  {
651
- cipher_plaintext_eq(self, plaintext, true);
652
- return plaintext;
651
+ cipher_plaintext_eq(self, plaintext, true);
652
+ return plaintext;
653
653
  }
654
654
 
655
655
 
656
656
  /* Get the plaintext. */
657
657
  static string cipher_plaintext(VALUE self, bool hex)
658
658
  {
659
- JBase *cipher = NULL;
660
- Data_Get_Struct(self, JBase, cipher);
661
- return cipher->getPlaintext(hex);
659
+ JBase *cipher = NULL;
660
+ Data_Get_Struct(self, JBase, cipher);
661
+ return cipher->getPlaintext(hex);
662
662
  }
663
663
 
664
664
  /**
665
665
  * call-seq:
666
- * plaintext => String
666
+ * plaintext => String
667
667
  *
668
668
  * Gets the plaintext from the Cipher in binary.
669
669
  */
670
670
  VALUE rb_cipher_plaintext(VALUE self)
671
671
  {
672
- string retval = cipher_plaintext(self, false);
673
- return rb_tainted_str_new(retval.data(), retval.length());
672
+ string retval = cipher_plaintext(self, false);
673
+ return rb_tainted_str_new(retval.data(), retval.length());
674
674
  }
675
675
 
676
676
  /**
677
677
  * call-seq:
678
- * plaintext_hex => String
678
+ * plaintext_hex => String
679
679
  *
680
680
  * Gets the plaintext from the Cipher in hex.
681
681
  */
682
682
  VALUE rb_cipher_plaintext_hex(VALUE self)
683
683
  {
684
- string retval = cipher_plaintext(self, true);
685
- return rb_tainted_str_new(retval.data(), retval.length());
684
+ string retval = cipher_plaintext(self, true);
685
+ return rb_tainted_str_new(retval.data(), retval.length());
686
686
  }
687
687
 
688
688
 
689
689
  /* Set the ciphertext. */
690
690
  static string cipher_ciphertext_eq(VALUE self, VALUE ciphertext, bool hex)
691
691
  {
692
- JBase *cipher = NULL;
693
- Check_Type(ciphertext, T_STRING);
694
- Data_Get_Struct(self, JBase, cipher);
695
- cipher->setCiphertext(string(StringValuePtr(ciphertext), RSTRING(ciphertext)->len), hex);
696
- return cipher->getCiphertext(hex);
692
+ JBase *cipher = NULL;
693
+ Check_Type(ciphertext, T_STRING);
694
+ Data_Get_Struct(self, JBase, cipher);
695
+ cipher->setCiphertext(string(StringValuePtr(ciphertext), RSTRING_LEN(ciphertext)), hex);
696
+ return cipher->getCiphertext(hex);
697
697
  }
698
698
 
699
699
  /**
700
700
  * call-seq:
701
- * ciphertext=(string) => String
701
+ * ciphertext=(string) => String
702
702
  *
703
703
  * Sets the ciphertext on the Cipher in binary and returns the same.
704
704
  */
705
705
  VALUE rb_cipher_ciphertext_eq(VALUE self, VALUE ciphertext)
706
706
  {
707
- cipher_ciphertext_eq(self, ciphertext, false);
708
- return ciphertext;
707
+ cipher_ciphertext_eq(self, ciphertext, false);
708
+ return ciphertext;
709
709
  }
710
710
 
711
711
  /**
712
712
  * call-seq:
713
- * ciphertext_hex=(string) => String
713
+ * ciphertext_hex=(string) => String
714
714
  *
715
715
  * Sets the ciphertext on the Cipher in hex and returns the same.
716
716
  */
717
717
  VALUE rb_cipher_ciphertext_hex_eq(VALUE self, VALUE ciphertext)
718
718
  {
719
- cipher_ciphertext_eq(self, ciphertext, true);
720
- return ciphertext;
719
+ cipher_ciphertext_eq(self, ciphertext, true);
720
+ return ciphertext;
721
721
  }
722
722
 
723
723
 
724
724
  /* Get the ciphertext. */
725
725
  static string cipher_ciphertext(VALUE self, bool hex)
726
726
  {
727
- JBase *cipher = NULL;
728
- Data_Get_Struct(self, JBase, cipher);
729
- return cipher->getCiphertext(hex);
727
+ JBase *cipher = NULL;
728
+ Data_Get_Struct(self, JBase, cipher);
729
+ return cipher->getCiphertext(hex);
730
730
  }
731
731
 
732
732
  /**
733
733
  * call-seq:
734
- * ciphertext => String
734
+ * ciphertext => String
735
735
  *
736
736
  * Gets the ciphertext from the Cipher in binary.
737
737
  */
738
738
  VALUE rb_cipher_ciphertext(VALUE self)
739
739
  {
740
- string retval = cipher_ciphertext(self, false);
741
- return rb_tainted_str_new(retval.data(), retval.length());
740
+ string retval = cipher_ciphertext(self, false);
741
+ return rb_tainted_str_new(retval.data(), retval.length());
742
742
  }
743
743
 
744
744
  /**
745
745
  * call-seq:
746
- * ciphertext_hex => String
746
+ * ciphertext_hex => String
747
747
  *
748
748
  * Gets the ciphertext from the Cipher in hex.
749
749
  */
750
750
  VALUE rb_cipher_ciphertext_hex(VALUE self)
751
751
  {
752
- string retval = cipher_ciphertext(self, true);
753
- return rb_tainted_str_new(retval.data(), retval.length());
752
+ string retval = cipher_ciphertext(self, true);
753
+ return rb_tainted_str_new(retval.data(), retval.length());
754
754
  }
755
755
 
756
756
 
@@ -759,16 +759,16 @@ VALUE rb_cipher_ciphertext_hex(VALUE self)
759
759
  * of 12 bytes, while Blowfish can use keys of 1 to 72 bytes. */
760
760
  static string cipher_key_eq(VALUE self, VALUE key, bool hex)
761
761
  {
762
- JBase *cipher = NULL;
763
- Check_Type(key, T_STRING);
764
- Data_Get_Struct(self, JBase, cipher);
765
- cipher->setKey(string(StringValuePtr(key), RSTRING(key)->len), hex);
766
- return cipher->getKey(hex);
762
+ JBase *cipher = NULL;
763
+ Check_Type(key, T_STRING);
764
+ Data_Get_Struct(self, JBase, cipher);
765
+ cipher->setKey(string(StringValuePtr(key), RSTRING_LEN(key)), hex);
766
+ return cipher->getKey(hex);
767
767
  }
768
768
 
769
769
  /**
770
770
  * call-seq:
771
- * key=(string) => String
771
+ * key=(string) => String
772
772
  *
773
773
  * Sets the key on the Cipher in binary and returns the same. Note that the
774
774
  * key try to set may be truncated or padded depending on its length. Some
@@ -785,13 +785,13 @@ static string cipher_key_eq(VALUE self, VALUE key, bool hex)
785
785
  */
786
786
  VALUE rb_cipher_key_eq(VALUE self, VALUE key)
787
787
  {
788
- cipher_key_eq(self, key, false);
789
- return key;
788
+ cipher_key_eq(self, key, false);
789
+ return key;
790
790
  }
791
791
 
792
792
  /**
793
793
  * call-seq:
794
- * key_hex=(string) => String
794
+ * key_hex=(string) => String
795
795
  *
796
796
  * Sets the key on the Cipher in hex and returns the same. Note that the
797
797
  * key try to set may be truncated or padded depending on its length. Some
@@ -808,47 +808,47 @@ VALUE rb_cipher_key_eq(VALUE self, VALUE key)
808
808
  */
809
809
  VALUE rb_cipher_key_hex_eq(VALUE self, VALUE key)
810
810
  {
811
- cipher_key_eq(self, key, true);
812
- return key;
811
+ cipher_key_eq(self, key, true);
812
+ return key;
813
813
  }
814
814
 
815
815
 
816
816
  /* Get the key. */
817
817
  static string cipher_key(VALUE self, bool hex)
818
818
  {
819
- JBase *cipher = NULL;
820
- Data_Get_Struct(self, JBase, cipher);
821
- return cipher->getKey(hex);
819
+ JBase *cipher = NULL;
820
+ Data_Get_Struct(self, JBase, cipher);
821
+ return cipher->getKey(hex);
822
822
  }
823
823
 
824
824
  /**
825
825
  * call-seq:
826
- * key => String
826
+ * key => String
827
827
  *
828
828
  * Returns the key set on the Cipher in binary.
829
829
  */
830
830
  VALUE rb_cipher_key(VALUE self)
831
831
  {
832
- string retval = cipher_key(self, false);
833
- return rb_tainted_str_new(retval.data(), retval.length());
832
+ string retval = cipher_key(self, false);
833
+ return rb_tainted_str_new(retval.data(), retval.length());
834
834
  }
835
835
 
836
836
  /**
837
837
  * call-seq:
838
- * key => String
838
+ * key => String
839
839
  *
840
840
  * Returns the key set on the Cipher in hex.
841
841
  */
842
842
  VALUE rb_cipher_key_hex(VALUE self)
843
843
  {
844
- string retval = cipher_key(self, true);
845
- return rb_tainted_str_new(retval.data(), retval.length());
844
+ string retval = cipher_key(self, true);
845
+ return rb_tainted_str_new(retval.data(), retval.length());
846
846
  }
847
847
 
848
848
 
849
849
  /**
850
850
  * call-seq:
851
- * key_length=(length) => Fixnum
851
+ * key_length=(length) => Fixnum
852
852
  *
853
853
  * Sets the key length. Some ciphers require rather specific key lengths,
854
854
  * and if the key length you attempt to set is invalid, an exception will
@@ -857,31 +857,31 @@ VALUE rb_cipher_key_hex(VALUE self)
857
857
  */
858
858
  VALUE rb_cipher_key_length_eq(VALUE self, VALUE l)
859
859
  {
860
- JBase *cipher = NULL;
861
- unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
862
- Data_Get_Struct(self, JBase, cipher);
863
- cipher->setKeylength(length);
864
- if (cipher->getKeylength() != length) {
865
- rb_raise(rb_eCryptoPP_Error, "tried to set a key length of %d but %d was used", length, cipher->getKeylength());
866
- }
867
- else {
868
- return l;
869
- }
860
+ JBase *cipher = NULL;
861
+ unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
862
+ Data_Get_Struct(self, JBase, cipher);
863
+ cipher->setKeylength(length);
864
+ if (cipher->getKeylength() != length) {
865
+ rb_raise(rb_eCryptoPP_Error, "tried to set a key length of %d but %d was used", length, cipher->getKeylength());
866
+ }
867
+ else {
868
+ return l;
869
+ }
870
870
  }
871
871
 
872
872
 
873
873
  /**
874
874
  * call-seq:
875
- * key_length => Fixnum
875
+ * key_length => Fixnum
876
876
  *
877
877
  * Gets the key length. The key length being returned in terms of bytes
878
878
  * in binary, not hex characters.
879
879
  */
880
880
  VALUE rb_cipher_key_length(VALUE self)
881
881
  {
882
- JBase *cipher = NULL;
883
- Data_Get_Struct(self, JBase, cipher);
884
- return rb_fix_new(cipher->getKeylength());
882
+ JBase *cipher = NULL;
883
+ Data_Get_Struct(self, JBase, cipher);
884
+ return rb_fix_new(cipher->getKeylength());
885
885
  }
886
886
 
887
887
 
@@ -890,9 +890,9 @@ VALUE rb_cipher_key_length(VALUE self)
890
890
  */
891
891
  VALUE rb_cipher_default_key_length(VALUE self)
892
892
  {
893
- JBase *cipher = NULL;
894
- Data_Get_Struct(self, JBase, cipher);
895
- return rb_fix_new(cipher->getDefaultKeylength());
893
+ JBase *cipher = NULL;
894
+ Data_Get_Struct(self, JBase, cipher);
895
+ return rb_fix_new(cipher->getDefaultKeylength());
896
896
  }
897
897
 
898
898
  /**
@@ -900,9 +900,9 @@ VALUE rb_cipher_default_key_length(VALUE self)
900
900
  */
901
901
  VALUE rb_cipher_min_key_length(VALUE self)
902
902
  {
903
- JBase *cipher = NULL;
904
- Data_Get_Struct(self, JBase, cipher);
905
- return rb_fix_new(cipher->getMinKeylength());
903
+ JBase *cipher = NULL;
904
+ Data_Get_Struct(self, JBase, cipher);
905
+ return rb_fix_new(cipher->getMinKeylength());
906
906
  }
907
907
 
908
908
  /**
@@ -910,9 +910,9 @@ VALUE rb_cipher_min_key_length(VALUE self)
910
910
  */
911
911
  VALUE rb_cipher_max_key_length(VALUE self)
912
912
  {
913
- JBase *cipher = NULL;
914
- Data_Get_Struct(self, JBase, cipher);
915
- return rb_fix_new(cipher->getMaxKeylength());
913
+ JBase *cipher = NULL;
914
+ Data_Get_Struct(self, JBase, cipher);
915
+ return rb_fix_new(cipher->getMaxKeylength());
916
916
  }
917
917
 
918
918
  /**
@@ -920,9 +920,9 @@ VALUE rb_cipher_max_key_length(VALUE self)
920
920
  */
921
921
  VALUE rb_cipher_mult_key_length(VALUE self)
922
922
  {
923
- JBase *cipher = NULL;
924
- Data_Get_Struct(self, JBase, cipher);
925
- return rb_fix_new(cipher->getMultKeylength());
923
+ JBase *cipher = NULL;
924
+ Data_Get_Struct(self, JBase, cipher);
925
+ return rb_fix_new(cipher->getMultKeylength());
926
926
  }
927
927
 
928
928
  /**
@@ -930,17 +930,17 @@ VALUE rb_cipher_mult_key_length(VALUE self)
930
930
  */
931
931
  VALUE rb_cipher_valid_key_length(VALUE self, VALUE l)
932
932
  {
933
- JBase *cipher = NULL;
934
- unsigned int length = NUM2UINT(l);
935
- Data_Get_Struct(self, JBase, cipher);
936
- return rb_fix_new(cipher->getValidKeylength(length));
933
+ JBase *cipher = NULL;
934
+ unsigned int length = NUM2UINT(l);
935
+ Data_Get_Struct(self, JBase, cipher);
936
+ return rb_fix_new(cipher->getValidKeylength(length));
937
937
  }
938
938
 
939
939
 
940
940
  #if ENABLED_RC2_CIPHER
941
941
  /**
942
942
  * call-seq:
943
- * effect_key_length=(length) => Fixnum
943
+ * effect_key_length=(length) => Fixnum
944
944
  *
945
945
  * Set the effective keylength on the RC2 algorithm. This function can
946
946
  * only be used with RC2. Returns the actual effective keylength set. The
@@ -948,21 +948,21 @@ VALUE rb_cipher_valid_key_length(VALUE self, VALUE l)
948
948
  */
949
949
  VALUE rb_cipher_effective_key_length_eq(VALUE self, VALUE l)
950
950
  {
951
- JBase *cipher = NULL;
952
- unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
953
- Data_Get_Struct(self, JBase, cipher);
954
- if (cipher->getCipherType() != RC2_CIPHER) {
955
- rb_raise(rb_eCryptoPP_Error, "effective key lengths can only be used with the RC2 cipher");
956
- }
957
- else {
958
- ((JRC2*) cipher)->setEffectiveKeylength(length);
959
- if (((JRC2*) cipher)->getEffectiveKeylength() != length) {
960
- rb_raise(rb_eCryptoPP_Error, "tried to set an effective key length of %d but %d was used", length, ((JRC2*) cipher)->getEffectiveKeylength());
961
- }
962
- else {
963
- return l;
964
- }
965
- }
951
+ JBase *cipher = NULL;
952
+ unsigned int length = NUM2UINT(rb_funcall(l, rb_intern("to_i"), 0));
953
+ Data_Get_Struct(self, JBase, cipher);
954
+ if (cipher->getCipherType() != RC2_CIPHER) {
955
+ rb_raise(rb_eCryptoPP_Error, "effective key lengths can only be used with the RC2 cipher");
956
+ }
957
+ else {
958
+ ((JRC2*) cipher)->setEffectiveKeylength(length);
959
+ if (((JRC2*) cipher)->getEffectiveKeylength() != length) {
960
+ rb_raise(rb_eCryptoPP_Error, "tried to set an effective key length of %d but %d was used", length, ((JRC2*) cipher)->getEffectiveKeylength());
961
+ }
962
+ else {
963
+ return l;
964
+ }
965
+ }
966
966
  }
967
967
 
968
968
 
@@ -972,30 +972,30 @@ VALUE rb_cipher_effective_key_length_eq(VALUE self, VALUE l)
972
972
  */
973
973
  VALUE rb_cipher_effective_key_length(VALUE self)
974
974
  {
975
- JBase *cipher = NULL;
976
- Data_Get_Struct(self, JBase, cipher);
977
- return rb_fix_new(((JRC2*) cipher)->getEffectiveKeylength());
975
+ JBase *cipher = NULL;
976
+ Data_Get_Struct(self, JBase, cipher);
977
+ return rb_fix_new(((JRC2*) cipher)->getEffectiveKeylength());
978
978
  }
979
979
  #endif
980
980
 
981
981
 
982
982
  /**
983
983
  * call-seq:
984
- * block_size => Fixnum
984
+ * block_size => Fixnum
985
985
  *
986
986
  * Gets the block size.
987
987
  */
988
988
  VALUE rb_cipher_block_size(VALUE self)
989
989
  {
990
- JBase *cipher = NULL;
991
- Data_Get_Struct(self, JBase, cipher);
992
- return rb_fix_new(cipher->getBlockSize());
990
+ JBase *cipher = NULL;
991
+ Data_Get_Struct(self, JBase, cipher);
992
+ return rb_fix_new(cipher->getBlockSize());
993
993
  }
994
994
 
995
995
 
996
996
  /**
997
997
  * call-seq:
998
- * rounds=(rounds) => Fixnum
998
+ * rounds=(rounds) => Fixnum
999
999
  *
1000
1000
  * Sets the number of rounds to perform on block ciphers. Some block ciphers
1001
1001
  * have different requirements for their rounds than others. An exception
@@ -1003,41 +1003,41 @@ VALUE rb_cipher_block_size(VALUE self)
1003
1003
  */
1004
1004
  VALUE rb_cipher_rounds_eq(VALUE self, VALUE r)
1005
1005
  {
1006
- JBase *cipher = NULL;
1007
- unsigned int rounds = NUM2UINT(rb_funcall(r, rb_intern("to_i"), 0));
1008
- Data_Get_Struct(self, JBase, cipher);
1009
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1010
- rb_raise(rb_eCryptoPP_Error, "can't set rounds on stream ciphers");
1011
- }
1012
- else {
1013
- ((JCipher*) cipher)->setRounds(rounds);
1014
- if (((JCipher*) cipher)->getRounds() != rounds) {
1015
- rb_raise(rb_eCryptoPP_Error, "tried set the number of rounds to %d but %d was used instead", rounds, ((JCipher*) cipher)->getRounds());
1016
- }
1017
- else {
1018
- return r;
1019
- }
1020
- }
1006
+ JBase *cipher = NULL;
1007
+ unsigned int rounds = NUM2UINT(rb_funcall(r, rb_intern("to_i"), 0));
1008
+ Data_Get_Struct(self, JBase, cipher);
1009
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1010
+ rb_raise(rb_eCryptoPP_Error, "can't set rounds on stream ciphers");
1011
+ }
1012
+ else {
1013
+ ((JCipher*) cipher)->setRounds(rounds);
1014
+ if (((JCipher*) cipher)->getRounds() != rounds) {
1015
+ rb_raise(rb_eCryptoPP_Error, "tried set the number of rounds to %d but %d was used instead", rounds, ((JCipher*) cipher)->getRounds());
1016
+ }
1017
+ else {
1018
+ return r;
1019
+ }
1020
+ }
1021
1021
  }
1022
1022
 
1023
1023
 
1024
1024
  /**
1025
1025
  * call-seq:
1026
- * rounts => Fixnum
1026
+ * rounts => Fixnum
1027
1027
  *
1028
1028
  * Gets the number of rounds to perform on block ciphers. Returns nil if you
1029
1029
  * try to use this on a stream cipher.
1030
1030
  */
1031
1031
  VALUE rb_cipher_rounds(VALUE self)
1032
1032
  {
1033
- JBase *cipher = NULL;
1034
- Data_Get_Struct(self, JBase, cipher);
1035
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1036
- return Qnil;
1037
- }
1038
- else {
1039
- return rb_fix_new(((JCipher*) cipher)->getRounds());
1040
- }
1033
+ JBase *cipher = NULL;
1034
+ Data_Get_Struct(self, JBase, cipher);
1035
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1036
+ return Qnil;
1037
+ }
1038
+ else {
1039
+ return rb_fix_new(((JCipher*) cipher)->getRounds());
1040
+ }
1041
1041
  }
1042
1042
 
1043
1043
 
@@ -1046,20 +1046,20 @@ VALUE rb_cipher_rounds(VALUE self)
1046
1046
  * will always be available through the ciphertext methods regardless. */
1047
1047
  static VALUE cipher_encrypt(VALUE self, bool hex)
1048
1048
  {
1049
- JBase *cipher = NULL;
1050
- Data_Get_Struct(self, JBase, cipher);
1051
- try {
1052
- cipher->encrypt();
1053
- return rb_tainted_str_new(cipher->getCiphertext(hex).data(), cipher->getCiphertext(hex).length());
1054
- }
1055
- catch (Exception e) {
1056
- rb_raise(rb_eCryptoPP_Error, string("Crypto++ exception: " + e.GetWhat()).c_str());
1057
- }
1049
+ JBase *cipher = NULL;
1050
+ Data_Get_Struct(self, JBase, cipher);
1051
+ try {
1052
+ cipher->encrypt();
1053
+ return rb_tainted_str_new(cipher->getCiphertext(hex).data(), cipher->getCiphertext(hex).length());
1054
+ }
1055
+ catch (Exception e) {
1056
+ rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s", e.GetWhat().c_str());
1057
+ }
1058
1058
  }
1059
1059
 
1060
1060
  /**
1061
1061
  * call-seq:
1062
- * encrypt => String
1062
+ * encrypt => String
1063
1063
  *
1064
1064
  * Encrypt the plaintext using the options set on the Cipher. This method will
1065
1065
  * return the ciphertext in binary. The raw ciphertext will always be available
@@ -1067,12 +1067,12 @@ static VALUE cipher_encrypt(VALUE self, bool hex)
1067
1067
  */
1068
1068
  VALUE rb_cipher_encrypt(VALUE self)
1069
1069
  {
1070
- return cipher_encrypt(self, false);
1070
+ return cipher_encrypt(self, false);
1071
1071
  }
1072
1072
 
1073
1073
  /**
1074
1074
  * call-seq:
1075
- * encrypt_hex => String
1075
+ * encrypt_hex => String
1076
1076
  *
1077
1077
  * Encrypt the plaintext using the options set on the Cipher. This method will
1078
1078
  * return the ciphertext in hex. The raw ciphertext will always be available
@@ -1080,7 +1080,7 @@ VALUE rb_cipher_encrypt(VALUE self)
1080
1080
  */
1081
1081
  VALUE rb_cipher_encrypt_hex(VALUE self)
1082
1082
  {
1083
- return cipher_encrypt(self, true);
1083
+ return cipher_encrypt(self, true);
1084
1084
  }
1085
1085
 
1086
1086
 
@@ -1090,21 +1090,21 @@ VALUE rb_cipher_encrypt_hex(VALUE self)
1090
1090
  * available through the plaintext methods regardless. */
1091
1091
  static VALUE cipher_decrypt(VALUE self, bool hex)
1092
1092
  {
1093
- JBase *cipher = NULL;
1094
- Data_Get_Struct(self, JBase, cipher);
1095
- try {
1096
- cipher->decrypt();
1097
- string retval = cipher->getPlaintext(hex);
1098
- return rb_tainted_str_new(retval.data(), retval.length());
1099
- }
1100
- catch (Exception e) {
1101
- rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s", e.GetWhat().c_str());
1102
- }
1093
+ JBase *cipher = NULL;
1094
+ Data_Get_Struct(self, JBase, cipher);
1095
+ try {
1096
+ cipher->decrypt();
1097
+ string retval = cipher->getPlaintext(hex);
1098
+ return rb_tainted_str_new(retval.data(), retval.length());
1099
+ }
1100
+ catch (Exception e) {
1101
+ rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s", e.GetWhat().c_str());
1102
+ }
1103
1103
  }
1104
1104
 
1105
1105
  /**
1106
1106
  * call-seq:
1107
- * decrypt => String
1107
+ * decrypt => String
1108
1108
  *
1109
1109
  * Decrypt the ciphertext using the options set on the Cipher. This method
1110
1110
  * will return the plaintext in binary. The raw plaintext will always be
@@ -1112,12 +1112,12 @@ static VALUE cipher_decrypt(VALUE self, bool hex)
1112
1112
  */
1113
1113
  VALUE rb_cipher_decrypt(VALUE self)
1114
1114
  {
1115
- return cipher_decrypt(self, false);
1115
+ return cipher_decrypt(self, false);
1116
1116
  }
1117
1117
 
1118
1118
  /**
1119
1119
  * call-seq:
1120
- * decrypt_hex => String
1120
+ * decrypt_hex => String
1121
1121
  *
1122
1122
  * Decrypt the ciphertext using the options set on the Cipher. This method
1123
1123
  * will return the plaintext in hex. The raw plaintext will always be
@@ -1125,13 +1125,13 @@ VALUE rb_cipher_decrypt(VALUE self)
1125
1125
  */
1126
1126
  VALUE rb_cipher_decrypt_hex(VALUE self)
1127
1127
  {
1128
- return cipher_decrypt(self, true);
1128
+ return cipher_decrypt(self, true);
1129
1129
  }
1130
1130
 
1131
1131
 
1132
1132
  /**
1133
1133
  * call-seq:
1134
- * encrypt_io(in, out) => true
1134
+ * encrypt_io(in, out) => true
1135
1135
  *
1136
1136
  * Encrypts a Ruby IO object and spits the result into another one. You can use
1137
1137
  * any sort of Ruby object as long as it implements <tt>eof?</tt>,
@@ -1139,28 +1139,28 @@ VALUE rb_cipher_decrypt_hex(VALUE self)
1139
1139
  *
1140
1140
  * Examples:
1141
1141
  *
1142
- * cipher.encrypt_io(File.open("http://example.com/"), File.open("test.out", 'w'))
1142
+ * cipher.encrypt_io(File.open("http://example.com/"), File.open("test.out", 'w'))
1143
1143
  *
1144
- * output = StringIO.new
1145
- * cipher.encrypt_io(File.open('test.enc'), output)
1144
+ * output = StringIO.new
1145
+ * cipher.encrypt_io(File.open('test.enc'), output)
1146
1146
  */
1147
1147
  VALUE rb_cipher_encrypt_io(VALUE self, VALUE in, VALUE out)
1148
1148
  {
1149
- JBase *cipher = NULL;
1150
- Data_Get_Struct(self, JBase, cipher);
1151
- try {
1152
- cipher->encryptRubyIO(&in, &out);
1153
- return Qtrue;
1154
- }
1155
- catch (Exception e) {
1156
- rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s in %s()", e.GetWhat().c_str());
1157
- }
1149
+ JBase *cipher = NULL;
1150
+ Data_Get_Struct(self, JBase, cipher);
1151
+ try {
1152
+ cipher->encryptRubyIO(&in, &out);
1153
+ return Qtrue;
1154
+ }
1155
+ catch (Exception e) {
1156
+ rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s", e.GetWhat().c_str());
1157
+ }
1158
1158
  }
1159
1159
 
1160
1160
 
1161
1161
  /**
1162
1162
  * call-seq:
1163
- * decrypt_io(in, out) => true
1163
+ * decrypt_io(in, out) => true
1164
1164
  *
1165
1165
  * Decrypts a Ruby IO object and spits the result into another one. You can use
1166
1166
  * any sort of Ruby object as long as it implements <tt>eof?</tt>,
@@ -1168,235 +1168,235 @@ VALUE rb_cipher_encrypt_io(VALUE self, VALUE in, VALUE out)
1168
1168
  *
1169
1169
  * Examples:
1170
1170
  *
1171
- * cipher.decrypt_io(File.open("http://example.com/"), File.open("test.out", 'w'))
1171
+ * cipher.decrypt_io(File.open("http://example.com/"), File.open("test.out", 'w'))
1172
1172
  *
1173
- * output = StringIO.new
1174
- * cipher.decrypt_io(File.open('test.enc'), output)
1173
+ * output = StringIO.new
1174
+ * cipher.decrypt_io(File.open('test.enc'), output)
1175
1175
  */
1176
1176
  VALUE rb_cipher_decrypt_io(VALUE self, VALUE in, VALUE out)
1177
1177
  {
1178
- JBase *cipher = NULL;
1179
- Data_Get_Struct(self, JBase, cipher);
1180
- try {
1181
- cipher->decryptRubyIO(&in, &out);
1182
- return Qtrue;
1183
- }
1184
- catch (Exception e) {
1185
- rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s in %s()", e.GetWhat().c_str());
1186
- }
1178
+ JBase *cipher = NULL;
1179
+ Data_Get_Struct(self, JBase, cipher);
1180
+ try {
1181
+ cipher->decryptRubyIO(&in, &out);
1182
+ return Qtrue;
1183
+ }
1184
+ catch (Exception e) {
1185
+ rb_raise(rb_eCryptoPP_Error, "Crypto++ exception: %s", e.GetWhat().c_str());
1186
+ }
1187
1187
  }
1188
1188
 
1189
1189
 
1190
1190
  /**
1191
1191
  * call-seq:
1192
- * cipher_name(algorithm) => String
1192
+ * cipher_name(algorithm) => String
1193
1193
  *
1194
1194
  * Returns the name of a Cipher.
1195
1195
  */
1196
1196
  VALUE rb_module_cipher_name(VALUE self, VALUE c)
1197
1197
  {
1198
- switch (cipher_sym_to_const(c)) {
1199
- default:
1200
- rb_raise(rb_eCryptoPP_Error, "could not find a valid cipher type");
1201
- break;
1198
+ switch (cipher_sym_to_const(c)) {
1199
+ default:
1200
+ rb_raise(rb_eCryptoPP_Error, "could not find a valid cipher type");
1201
+ break;
1202
1202
 
1203
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1204
- case r ## _CIPHER: \
1205
- return rb_tainted_str_new2(c::getStaticCipherName().c_str());
1206
- # include "defs/ciphers.def"
1207
- }
1203
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1204
+ case r ## _CIPHER: \
1205
+ return rb_tainted_str_new2(c::getStaticCipherName().c_str());
1206
+ # include "defs/ciphers.def"
1207
+ }
1208
1208
  }
1209
1209
 
1210
1210
 
1211
1211
  /**
1212
1212
  * call-seq:
1213
- * algorithm_name() => String
1213
+ * algorithm_name() => String
1214
1214
  *
1215
1215
  * Returns the name of the cipher algorithm being used.
1216
1216
  */
1217
1217
  VALUE rb_cipher_algorithm_name(VALUE self)
1218
1218
  {
1219
- JBase *cipher = NULL;
1220
- Data_Get_Struct(self, JBase, cipher);
1221
- return rb_tainted_str_new2(cipher->getCipherName().c_str());
1219
+ JBase *cipher = NULL;
1220
+ Data_Get_Struct(self, JBase, cipher);
1221
+ return rb_tainted_str_new2(cipher->getCipherName().c_str());
1222
1222
  }
1223
1223
 
1224
1224
 
1225
1225
  /**
1226
1226
  * call-seq:
1227
- * block_mode_name(block_mode) => String
1227
+ * block_mode_name(block_mode) => String
1228
1228
  *
1229
1229
  * Singleton method to return the name of a block cipher mode.
1230
1230
  */
1231
1231
  VALUE rb_module_block_mode_name(VALUE self, VALUE m)
1232
1232
  {
1233
- return rb_tainted_str_new2(JCipher::getModeName(mode_sym_to_const(m)).c_str());
1233
+ return rb_tainted_str_new2(JCipher::getModeName(mode_sym_to_const(m)).c_str());
1234
1234
  }
1235
1235
 
1236
1236
 
1237
1237
  /**
1238
1238
  * call-seq:
1239
- * block_mode_name() => String
1239
+ * block_mode_name() => String
1240
1240
  *
1241
1241
  * Returns the name of the mode being used.
1242
1242
  */
1243
1243
  VALUE rb_cipher_block_mode_name(VALUE self)
1244
1244
  {
1245
- JBase *cipher = NULL;
1246
- Data_Get_Struct(self, JBase, cipher);
1247
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1248
- return Qnil;
1249
- }
1250
- else {
1251
- return rb_tainted_str_new2(JCipher::getModeName(((JCipher*) cipher)->getMode()).c_str());
1252
- }
1245
+ JBase *cipher = NULL;
1246
+ Data_Get_Struct(self, JBase, cipher);
1247
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1248
+ return Qnil;
1249
+ }
1250
+ else {
1251
+ return rb_tainted_str_new2(JCipher::getModeName(((JCipher*) cipher)->getMode()).c_str());
1252
+ }
1253
1253
  }
1254
1254
 
1255
1255
 
1256
1256
  /**
1257
1257
  * call-seq:
1258
- * padding_name(padding) => String
1258
+ * padding_name(padding) => String
1259
1259
  *
1260
1260
  * Singleton method to return the name of the a block cipher padding mode.
1261
1261
  */
1262
1262
  VALUE rb_module_padding_name(VALUE self, VALUE p)
1263
1263
  {
1264
- return rb_tainted_str_new2(JCipher::getPaddingName(padding_sym_to_const(p)).c_str());
1264
+ return rb_tainted_str_new2(JCipher::getPaddingName(padding_sym_to_const(p)).c_str());
1265
1265
  }
1266
1266
 
1267
1267
 
1268
1268
  /**
1269
1269
  * call-seq:
1270
- * padding_name() => String
1270
+ * padding_name() => String
1271
1271
  *
1272
1272
  * Returns the name of the padding being used.
1273
1273
  */
1274
1274
  VALUE rb_cipher_padding_name(VALUE self)
1275
1275
  {
1276
- JBase *cipher = NULL;
1277
- Data_Get_Struct(self, JBase, cipher);
1278
- if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1279
- return Qnil;
1280
- }
1281
- else {
1282
- return rb_tainted_str_new2(JCipher::getPaddingName(((JCipher*) cipher)->getPadding()).c_str());
1283
- }
1276
+ JBase *cipher = NULL;
1277
+ Data_Get_Struct(self, JBase, cipher);
1278
+ if (IS_STREAM_CIPHER(cipher->getCipherType())) {
1279
+ return Qnil;
1280
+ }
1281
+ else {
1282
+ return rb_tainted_str_new2(JCipher::getPaddingName(((JCipher*) cipher)->getPadding()).c_str());
1283
+ }
1284
1284
  }
1285
1285
 
1286
1286
 
1287
1287
  /**
1288
1288
  * call-seq:
1289
- * rng_name(rng) => String
1289
+ * rng_name(rng) => String
1290
1290
  *
1291
1291
  * Singleton method to return the name of the random number generator being
1292
1292
  * used.
1293
1293
  */
1294
1294
  VALUE rb_module_rng_name(VALUE self, VALUE r)
1295
1295
  {
1296
- return rb_tainted_str_new2(JCipher::getRNGName(rng_sym_to_const(r)).c_str());
1296
+ return rb_tainted_str_new2(JCipher::getRNGName(rng_sym_to_const(r)).c_str());
1297
1297
  }
1298
1298
 
1299
1299
 
1300
1300
  /**
1301
1301
  * call-seq:
1302
- * rng_name() => String
1302
+ * rng_name() => String
1303
1303
  *
1304
1304
  * Returns the name of the random number generator being used.
1305
1305
  */
1306
1306
  VALUE rb_cipher_rng_name(VALUE self)
1307
1307
  {
1308
- JBase *cipher = NULL;
1309
- Data_Get_Struct(self, JBase, cipher);
1310
- return rb_tainted_str_new2(JCipher::getRNGName(cipher->getRNG()).c_str());
1308
+ JBase *cipher = NULL;
1309
+ Data_Get_Struct(self, JBase, cipher);
1310
+ return rb_tainted_str_new2(JCipher::getRNGName(cipher->getRNG()).c_str());
1311
1311
  }
1312
1312
 
1313
1313
 
1314
1314
  /**
1315
1315
  * call-seq:
1316
- * cipher_type() => Symbol
1316
+ * cipher_type() => Symbol
1317
1317
  *
1318
1318
  * Returns the type of cipher being used as a Symbol.
1319
1319
  */
1320
1320
  VALUE rb_cipher_cipher_type(VALUE self)
1321
1321
  {
1322
- JBase *cipher = NULL;
1323
- Data_Get_Struct(self, JBase, cipher);
1322
+ JBase *cipher = NULL;
1323
+ Data_Get_Struct(self, JBase, cipher);
1324
1324
 
1325
- switch (cipher->getCipherType()) {
1326
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1327
- case r ## _CIPHER: \
1328
- return ID2SYM(rb_intern(# s));
1329
- # include "defs/ciphers.def"
1325
+ switch (cipher->getCipherType()) {
1326
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1327
+ case r ## _CIPHER: \
1328
+ return ID2SYM(rb_intern(# s));
1329
+ # include "defs/ciphers.def"
1330
1330
 
1331
- default:
1332
- return Qnil;
1333
- }
1331
+ default:
1332
+ return Qnil;
1333
+ }
1334
1334
  }
1335
1335
 
1336
1336
 
1337
1337
  /**
1338
1338
  * call-seq:
1339
- * cipher_enabled?(algorithm) => boolean
1339
+ * cipher_enabled?(algorithm) => boolean
1340
1340
  *
1341
1341
  * Singleton method to check for the availability of a cipher algorithm.
1342
1342
  */
1343
1343
  VALUE rb_module_cipher_enabled(VALUE self, VALUE c)
1344
1344
  {
1345
- switch (cipher_sym_to_const(c)) {
1346
- default:
1347
- return Qfalse;
1345
+ switch (cipher_sym_to_const(c)) {
1346
+ default:
1347
+ return Qfalse;
1348
1348
 
1349
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1350
- case r ## _CIPHER:
1351
- # include "defs/ciphers.def"
1352
- return Qtrue;
1353
- }
1349
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1350
+ case r ## _CIPHER:
1351
+ # include "defs/ciphers.def"
1352
+ return Qtrue;
1353
+ }
1354
1354
  }
1355
1355
 
1356
1356
 
1357
1357
  /**
1358
1358
  * call-seq:
1359
- * rng_available?(rng) => boolean
1359
+ * rng_available?(rng) => boolean
1360
1360
  *
1361
1361
  * Singleton method to check for the availability of a random number generator.
1362
1362
  */
1363
1363
  VALUE rb_module_rng_available(VALUE self, VALUE r)
1364
1364
  {
1365
- ID id = SYM2ID(r);
1366
- if (id == rb_intern("rand")) {
1367
- return Qtrue;
1368
- }
1369
- # ifdef NONBLOCKING_RNG_AVAILABLE
1370
- else if (id == rb_intern("non_blocking")) {
1371
- return Qtrue;
1372
- }
1373
- # endif
1365
+ ID id = SYM2ID(r);
1366
+ if (id == rb_intern("rand")) {
1367
+ return Qtrue;
1368
+ }
1369
+ # ifdef NONBLOCKING_RNG_AVAILABLE
1370
+ else if (id == rb_intern("non_blocking")) {
1371
+ return Qtrue;
1372
+ }
1373
+ # endif
1374
1374
 
1375
- # ifdef BLOCKING_RNG_AVAILABLE
1376
- else if (id == rb_intern("blocking")) {
1377
- return Qtrue;
1378
- }
1379
- # endif
1375
+ # ifdef BLOCKING_RNG_AVAILABLE
1376
+ else if (id == rb_intern("blocking")) {
1377
+ return Qtrue;
1378
+ }
1379
+ # endif
1380
1380
 
1381
- else {
1382
- return Qfalse;
1383
- }
1381
+ else {
1382
+ return Qfalse;
1383
+ }
1384
1384
  }
1385
1385
 
1386
1386
 
1387
1387
  /**
1388
1388
  * call-seq:
1389
- * cipher_list() => Array
1389
+ * cipher_list() => Array
1390
1390
  *
1391
1391
  * Returns an Array of available ciphers.
1392
1392
  */
1393
1393
  VALUE rb_module_cipher_list(VALUE self)
1394
1394
  {
1395
- VALUE ary = rb_ary_new();
1395
+ VALUE ary = rb_ary_new();
1396
1396
 
1397
- # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1398
- rb_ary_push(ary, ID2SYM(rb_intern(# s)));
1399
- # include "defs/ciphers.def"
1397
+ # define CIPHER_ALGORITHM_X(klass, r, c, s) \
1398
+ rb_ary_push(ary, ID2SYM(rb_intern(# s)));
1399
+ # include "defs/ciphers.def"
1400
1400
 
1401
- return ary;
1401
+ return ary;
1402
1402
  }