dighasher 0.3.0 → 0.3.1

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: 65327f504552d85df018251b7ec8ada5b8e374f5
4
- data.tar.gz: 9186dd71c44464adb503733b951cc3a9c31b3850
3
+ metadata.gz: 7b0a2f06dc97623bce64451de0847366b85d3e62
4
+ data.tar.gz: 0893254f7a3ec4e2a71c63b0806936c48ca77e65
5
5
  SHA512:
6
- metadata.gz: dca3b2dcae36c349cf4e8c027d9146f6e2881afc0e1e482ec3f18dbdfd459eeefd44c4126fdf3af2270b89fe39b105c3f4eed0cf4caa8f87180b529e72a52dbb
7
- data.tar.gz: 9825734ac4d44b274134b886515898fac85b507e01e98f8a2e300a7bfe2d5353f832dfcf0fed68763d3f7d028f20ce05296fd02f2d489de69b2fee87c7ea8bf0
6
+ metadata.gz: 0ebf499d0a39b29814d78c37875af551aee54a39e9afe591a8cb0a608b013b55c3c5671ef90b144575620ed09c4c37152a9df0df9aeaae1055cab63676df1ccd
7
+ data.tar.gz: a32745da5752222a3097e6f84f0931fc36313a454f09a3f44e974f29dcc274e40fcbd2df276a346f83e22b5773389b2b793424e38a84b2d1c3cca710491d4c33
@@ -0,0 +1,146 @@
1
+ require "dighasher/digest_generator"
2
+
3
+ # Hash Generate Module
4
+ module Dighasher
5
+
6
+ # Hash Generate Class
7
+ class Generator
8
+
9
+ # constructor
10
+ # @param [integer] mode Hash mode. DigestGenerator::Xxxx constant.
11
+ # @param [String] str target string
12
+ # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
13
+ def initialize(mode, str=nil, bitlen=256)
14
+
15
+ # generate digest instance
16
+ @digest = Dighasher::DigestGenerator::generate_digest(mode, str, bitlen)
17
+ @mode = mode
18
+ @bitlen = bitlen
19
+ @base_str = str
20
+ end
21
+
22
+ # change hash mode.
23
+ # @param [integer] mode Hash mode. DigestGenerator::Xxxx constant.
24
+ # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
25
+ def change_mode(mode, bitlen=256)
26
+
27
+ # generate new digest instance
28
+ @digest = Dighasher::DigestGenerator::generate_digest(mode, @base_str, bitlen)
29
+ @mode = mode
30
+ @bitlen = bitlen
31
+ end
32
+
33
+ # update hash target string.
34
+ # @param [String] str update string
35
+ def update(str)
36
+
37
+ # unless str, no update.
38
+ return unless str
39
+
40
+ # update str.
41
+ @digest.update(str)
42
+
43
+ # if @base_str equals nil, @base_str set empty.
44
+ @base_str = '' unless @base_str
45
+ @base_str << str
46
+ end
47
+
48
+ # reset digest instance.
49
+ def reset
50
+
51
+ # reset @digest
52
+ @digest.reset
53
+ @base_str = nil
54
+ end
55
+
56
+ # compare str and hash str.
57
+ # @param [String] str compare target string
58
+ # @param [String] temp_add_str temporary additional string.
59
+ # @return [boolean] true:equal hash / false:not equal hash
60
+ def equals(str, temp_add_str=nil)
61
+
62
+ # if exist temporary add string, dup @digest and add str.
63
+ eq_digest = get_temporary_digest(temp_add_str)
64
+ # generate compare digest instance.
65
+ comp_digest = Dighasher::DigestGenerator.generate_digest(@mode, str, @bitlen)
66
+
67
+ # compare hex digest value.
68
+ return eq_digest == comp_digest.hexdigest
69
+ end
70
+
71
+ # generate hash.
72
+ # @param [boolean] use_hex_string if true, use hexdigest. else, use digest.
73
+ # @param [String] temp_add_str temporary additional string.
74
+ # @return [Byte / String] hash
75
+ def generate_hash(use_hex_string=true, temp_add_str=nil)
76
+
77
+ # if exist temp_add_str, dup @digest and add str.
78
+ hash_digest = get_temporary_digest(temp_add_str)
79
+ hash = use_hex_string ? hash_digest.hexdigest : hash_digest.digest
80
+ hash
81
+ end
82
+
83
+ # generate hash.
84
+ # reset after generate hash.
85
+ # @param [boolean] use_hex_string if true, use hexdigest. else, use digest.
86
+ # @return [Byte / String] hash.
87
+ def generate_hash!(use_hex_string=true)
88
+
89
+ # generate hash and @digest reset.
90
+ hash = use_hex_string ? @digest.hexdigest! : @digest.digest!
91
+ @base_str = nil
92
+ hash
93
+ end
94
+
95
+ # generate file hash.
96
+ # reset before generate hash.
97
+ # @param [String] file_path target file path
98
+ # return [String] hash
99
+ def file_hash(file_path)
100
+
101
+ @digest.reset
102
+ @base_str = nil
103
+ @digest.file(file_path).to_s
104
+ end
105
+
106
+ # get digest instance.
107
+ # @return [Digest] digest lib instance.
108
+ def digest
109
+ @digest
110
+ end
111
+
112
+ # get digest mode.
113
+ # @return [integer] digest mode. DigestGenerator constant.
114
+ def mode
115
+ @mode
116
+ end
117
+
118
+ # get byte length
119
+ # @return [integer] bitlen. Use DigestGenerator::SHA2 mode only.
120
+ def bitlen
121
+ @bitlen
122
+ end
123
+
124
+ # get hash base string.
125
+ # @return [String] hash base string.
126
+ def base_str
127
+ @base_str
128
+ end
129
+
130
+ private
131
+
132
+ # get temporary digest(dup @digest) and add string.
133
+ # @param [String] temp_add_str temporary additional string.
134
+ # @return [String] temporary digest instance.
135
+ def get_temporary_digest(temp_add_str)
136
+
137
+ # if not exist temp_add_str, return @digest
138
+ return @digest unless temp_add_str
139
+
140
+ # dup @digest and add str.
141
+ temp_digest = @digest.dup
142
+ temp_digest.update(temp_add_str)
143
+ temp_digest
144
+ end
145
+ end
146
+ end
@@ -1,3 +1,3 @@
1
1
  module Dighasher
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/dighasher.rb CHANGED
@@ -1,150 +1,10 @@
1
1
  require "dighasher/version"
2
+ require "dighasher/generator"
2
3
  require "dighasher/digest_generator"
3
4
 
4
5
  # Hash Generate Module
5
6
  module Dighasher
6
7
 
7
- # Hash Generate Class
8
- class Generator
9
-
10
- # constructor
11
- # @param [integer] mode Hash mode. DigestGenerator::Xxxx constant.
12
- # @param [String] str target string
13
- # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
14
- def initialize(mode, str=nil, bitlen=256)
15
-
16
- # generate digest instance
17
- @digest = Dighasher::DigestGenerator::generate_digest(mode, str, bitlen)
18
- @mode = mode
19
- @bitlen = bitlen
20
- @base_str = str
21
- end
22
-
23
- # change hash mode.
24
- # @param [integer] mode Hash mode. DigestGenerator::Xxxx constant.
25
- # @param [integer] bitlen SHA2 bitlength. 256 or 384 or 512.
26
- def change_mode(mode, bitlen=256)
27
-
28
- # generate new digest instance
29
- @digest = Dighasher::DigestGenerator::generate_digest(mode, @base_str, bitlen)
30
- @mode = mode
31
- @bitlen = bitlen
32
- end
33
-
34
- # update hash target string.
35
- # @param [String] str update string
36
- def update(str)
37
-
38
- # unless str, no update.
39
- return unless str
40
-
41
- # update str.
42
- @digest.update(str)
43
-
44
- # if @base_str equals nil, @base_str set empty.
45
- @base_str = '' unless @base_str
46
- @base_str << str
47
- end
48
-
49
- # reset digest instance.
50
- def reset
51
-
52
- # reset @digest
53
- @digest.reset
54
- @base_str = nil
55
- end
56
-
57
- # compare str and hash str.
58
- # @param [String] str compare target string
59
- # @param [String] temp_add_str temporary additional string.
60
- # @return [boolean] true:equal hash / false:not equal hash
61
- def equals(str, temp_add_str=nil)
62
-
63
- # if exist temporary add string, dup @digest and add str.
64
- eq_digest = get_temporary_digest(temp_add_str)
65
- # generate compare digest instance.
66
- comp_digest = Dighasher::DigestGenerator.generate_digest(@mode, str, @bitlen)
67
-
68
- # compare hex digest value.
69
- return eq_digest == comp_digest.hexdigest
70
- end
71
-
72
- # generate hash.
73
- # @param [boolean] use_hex_string if true, use hexdigest. else, use digest.
74
- # @param [String] temp_add_str temporary additional string.
75
- # @return [Byte / String] hash
76
- def generate_hash(use_hex_string=true, temp_add_str=nil)
77
-
78
- # if exist temp_add_str, dup @digest and add str.
79
- hash_digest = get_temporary_digest(temp_add_str)
80
- hash = use_hex_string ? hash_digest.hexdigest : hash_digest.digest
81
- hash
82
- end
83
-
84
- # generate hash.
85
- # reset after generate hash.
86
- # @param [boolean] use_hex_string if true, use hexdigest. else, use digest.
87
- # @return [Byte / String] hash.
88
- def generate_hash!(use_hex_string=true)
89
-
90
- # generate hash and @digest reset.
91
- hash = use_hex_string ? @digest.hexdigest! : @digest.digest!
92
- @base_str = nil
93
- hash
94
- end
95
-
96
- # generate file hash.
97
- # reset before generate hash.
98
- # @param [String] file_path target file path
99
- # return [String] hash
100
- def file_hash(file_path)
101
-
102
- @digest.reset
103
- @base_str = nil
104
- @digest.file(file_path).to_s
105
- end
106
-
107
- # get digest instance.
108
- # @return [Digest] digest lib instance.
109
- def digest
110
- @digest
111
- end
112
-
113
- # get digest mode.
114
- # @return [integer] digest mode. DigestGenerator constant.
115
- def mode
116
- @mode
117
- end
118
-
119
- # get byte length
120
- # @return [integer] bitlen. Use DigestGenerator::SHA2 mode only.
121
- def bitlen
122
- @bitlen
123
- end
124
-
125
- # get hash base string.
126
- # @return [String] hash base string.
127
- def base_str
128
- @base_str
129
- end
130
-
131
- private
132
-
133
- # get temporary digest(dup @digest) and add string.
134
- # @param [String] temp_add_str temporary additional string.
135
- # @return [String] temporary digest instance.
136
- def get_temporary_digest(temp_add_str)
137
-
138
- # if not exist temp_add_str, return @digest
139
- return @digest unless temp_add_str
140
-
141
- # dup @digest and add str.
142
- temp_digest = @digest.dup
143
- temp_digest.update(temp_add_str)
144
- temp_digest
145
- end
146
- end
147
-
148
8
  # get available hash.
149
9
  def self.available
150
10
  Dighasher::DigestGenerator.available
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.3.0
4
+ version: 0.3.1
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-07-01 00:00:00.000000000 Z
11
+ date: 2016-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,6 +73,7 @@ files:
73
73
  - dighasher.gemspec
74
74
  - lib/dighasher.rb
75
75
  - lib/dighasher/digest_generator.rb
76
+ - lib/dighasher/generator.rb
76
77
  - lib/dighasher/version.rb
77
78
  homepage: https://github.com/h-shigemoto/dighasher
78
79
  licenses: