dighasher 0.2.1 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: adffae8a5c2c3e33e242056a905dfe960c419dd5
4
- data.tar.gz: 6f0d9fa16e59c34f481a0ad27ee01e0898f4e63c
3
+ metadata.gz: 65327f504552d85df018251b7ec8ada5b8e374f5
4
+ data.tar.gz: 9186dd71c44464adb503733b951cc3a9c31b3850
5
5
  SHA512:
6
- metadata.gz: 661fb71253917b39e55bba0852b8b81df53d13678643875637c05aee42a187993ad85d953264aae0cab99805cff534a2e8046e47fd407ed46b6d2a3a2e484410
7
- data.tar.gz: 732fa4989bd313e9c75d76f95b9cf99c7984d6c06e590bcec5d2fa13665ead80c3e3e96ca010ffd89bd989e3a405723a74fdfae16253df38cd62680ad2d8b9b9
6
+ metadata.gz: dca3b2dcae36c349cf4e8c027d9146f6e2881afc0e1e482ec3f18dbdfd459eeefd44c4126fdf3af2270b89fe39b105c3f4eed0cf4caa8f87180b529e72a52dbb
7
+ data.tar.gz: 9825734ac4d44b274134b886515898fac85b507e01e98f8a2e300a7bfe2d5353f832dfcf0fed68763d3f7d028f20ce05296fd02f2d489de69b2fee87c7ea8bf0
data/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/dighasher`. To experiment with that code, run `bin/console` for an interactive prompt.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ This gem provide generate hash method.
6
+ Hash algorithm, MD5, SHA1, SHA256, SHA512, SHA2.
6
7
 
7
8
  ## Installation
8
9
 
@@ -22,7 +23,16 @@ Or install it yourself as:
22
23
 
23
24
  ## Usage
24
25
 
25
- TODO: Write usage instructions here
26
+ This sample generate hash by MD5.
27
+
28
+ ```ruby
29
+ require 'dighasher'
30
+
31
+ generator = Dighasher::Generator.new(Dighasher::DigestGenerator::MD5, "hash target string.")
32
+
33
+ # generate hash.
34
+ hash = generator.generate_hash
35
+ ```
26
36
 
27
37
  ## Development
28
38
 
@@ -32,7 +42,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
42
 
33
43
  ## Contributing
34
44
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/dighasher. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
45
+ Bug reports and pull requests are welcome on GitHub at https://github.com/h-shigemoto/dighasher. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
46
 
37
47
 
38
48
  ## License
@@ -2,54 +2,58 @@ require 'digest/md5'
2
2
  require 'digest/sha1'
3
3
  require 'digest/sha2'
4
4
 
5
- # Digest Instance Generator
6
- module DigestGenerator
7
-
8
- # MD5 Hash Constant
9
- MD5 = 1
10
- # SHA1 Hash Constant
11
- SHA1 = 2
12
- # SHA256 Hash Constant
13
- SHA256 = 3
14
- # SHA512 Hash Constant
15
- SHA512 = 4
16
- # SHA2 Hash Constant
17
- SHA2 = 5
18
-
19
- # get available hash.
20
- def self.available
21
- "Digest::MD5, Digest::SHA1, Digest::SHA256, Digest::SHA512, Digest::SHA2(256, 384, 512)"
22
- end
5
+ # Dighasher module.
6
+ module Dighasher
23
7
 
24
- # generate digest instance.
25
- # @param [integer] mode Hash mode. use DigestGenerator constant.
26
- # @param [String] str target string
27
- # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
28
- # @return [Digest] digest lib instance
29
- def self.generate_digest(mode, str=nil, bitlen=256)
30
-
31
- digest = nil
32
-
33
- # generate digest instance
34
- case mode
35
- when MD5 then
36
- digest = Digest::MD5.new
37
- when SHA1 then
38
- digest = Digest::SHA1.new
39
- when SHA256 then
40
- digest = Digest::SHA256.new
41
- when SHA512 then
42
- digest = Digest::SHA512.new
43
- when SHA2 then
44
- digest = Digest::SHA2.new(bitlen)
45
- else
46
- digest = nil
8
+ # Digest Instance Generator
9
+ class DigestGenerator
10
+
11
+ # MD5 Hash Constant
12
+ MD5 = 1
13
+ # SHA1 Hash Constant
14
+ SHA1 = 2
15
+ # SHA256 Hash Constant
16
+ SHA256 = 3
17
+ # SHA512 Hash Constant
18
+ SHA512 = 4
19
+ # SHA2 Hash Constant
20
+ SHA2 = 5
21
+
22
+ # get available hash.
23
+ def self.available
24
+ "Digest::MD5, Digest::SHA1, Digest::SHA256, Digest::SHA512, Digest::SHA2(256, 384, 512)"
47
25
  end
48
26
 
49
- # set str
50
- if (digest && str)
51
- digest.update(str)
27
+ # generate digest instance.
28
+ # @param [integer] mode Hash mode. use DigestGenerator constant.
29
+ # @param [String] str target string
30
+ # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
31
+ # @return [Digest] digest lib instance
32
+ def self.generate_digest(mode, str=nil, bitlen=256)
33
+
34
+ digest = nil
35
+
36
+ # generate digest instance
37
+ case mode
38
+ when MD5 then
39
+ digest = Digest::MD5.new
40
+ when SHA1 then
41
+ digest = Digest::SHA1.new
42
+ when SHA256 then
43
+ digest = Digest::SHA256.new
44
+ when SHA512 then
45
+ digest = Digest::SHA512.new
46
+ when SHA2 then
47
+ digest = Digest::SHA2.new(bitlen)
48
+ else
49
+ digest = nil
50
+ end
51
+
52
+ # set str
53
+ if (digest && str)
54
+ digest.update(str)
55
+ end
56
+ digest
52
57
  end
53
- digest
54
58
  end
55
59
  end
@@ -1,3 +1,3 @@
1
1
  module Dighasher
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/dighasher.rb CHANGED
@@ -14,7 +14,7 @@ module Dighasher
14
14
  def initialize(mode, str=nil, bitlen=256)
15
15
 
16
16
  # generate digest instance
17
- @digest = DigestGenerator::generate_digest(mode, str, bitlen)
17
+ @digest = Dighasher::DigestGenerator::generate_digest(mode, str, bitlen)
18
18
  @mode = mode
19
19
  @bitlen = bitlen
20
20
  @base_str = str
@@ -26,7 +26,7 @@ module Dighasher
26
26
  def change_mode(mode, bitlen=256)
27
27
 
28
28
  # generate new digest instance
29
- @digest = DigestGenerator::generate_digest(mode, @base_str, bitlen)
29
+ @digest = Dighasher::DigestGenerator::generate_digest(mode, @base_str, bitlen)
30
30
  @mode = mode
31
31
  @bitlen = bitlen
32
32
  end
@@ -63,7 +63,7 @@ module Dighasher
63
63
  # if exist temporary add string, dup @digest and add str.
64
64
  eq_digest = get_temporary_digest(temp_add_str)
65
65
  # generate compare digest instance.
66
- comp_digest = DigestGenerator.generate_digest(@mode, str, @bitlen)
66
+ comp_digest = Dighasher::DigestGenerator.generate_digest(@mode, str, @bitlen)
67
67
 
68
68
  # compare hex digest value.
69
69
  return eq_digest == comp_digest.hexdigest
@@ -147,6 +147,6 @@ module Dighasher
147
147
 
148
148
  # get available hash.
149
149
  def self.available
150
- DigestGenerator.available
150
+ Dighasher::DigestGenerator.available
151
151
  end
152
152
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dighasher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - h.shigemoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-24 00:00:00.000000000 Z
11
+ date: 2016-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler