ccrypto 0.1.3 → 0.2.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
  SHA256:
3
- metadata.gz: d78804b935e3d34f37fb6a0923bf58fd0c7eb8d23686b7da39233c7faee7fcc6
4
- data.tar.gz: a9b72eb6dd16aceb1d0ae3dbd7171df9ae0b5113a3e45df5340f9e880331686e
3
+ metadata.gz: 9be6eb61015364e145f1607c28f3001a73c84c08fb0e31a1acdc50fd5fc343a3
4
+ data.tar.gz: cf2b5b56fca36ce1edc1dedc49979170d362676a9ced1db2cffeb16f8cd6e49a
5
5
  SHA512:
6
- metadata.gz: 17e938a40eb693df83d24341c1400d59640d65e49e53535f838dd918abf5016f541b80897fcb04d3ed4b45a14bcf035cfc7405ce8dbd3c1783c4ef1472874393
7
- data.tar.gz: f4efc3711e6886ff8ad32e846cf2db74478197e4643a1a5065e938f7f40acbe4515d46cd9d5d9473ad49ae2ef55a5b2a4a1bc2920f1532546ea9ec4c6305747a
6
+ metadata.gz: b8bd46f24aa6bd03e7d303681d4013e416f16faf181d63dd4ea61cf0b14f897be029f0badbea9169fc156dfea07df65863661135009fc5b25c312af0b9d73777
7
+ data.tar.gz: 56d3a26f498225721ead8d36a6fee0e875e660840a7eda072087941d2ed583548c16a1d8acfe71563f5bd9bba834e484cc52db5400230c369f23a8c632e8367b
data/.release_history.yml CHANGED
@@ -6,3 +6,5 @@ ccrypto:
6
6
  :timestamp: 1678162760.4304333
7
7
  - :version: 0.1.2
8
8
  :timestamp: 1680181385.6366327
9
+ - :version: 0.1.3
10
+ :timestamp: 1680413190.0441186
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ AllCops:
2
+ DisabledByDefault: true
data/Gemfile CHANGED
@@ -8,3 +8,5 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "rspec", "~> 3.0"
11
+
12
+ #gem "binenc", git: "binenc", branch: 'master'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ccrypto (0.1.3)
4
+ ccrypto (0.2.0)
5
5
  activesupport
6
6
  teLogger
7
7
  toolrack
@@ -9,53 +9,64 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (7.0.4.3)
12
+ activesupport (7.1.2)
13
+ base64
14
+ bigdecimal
13
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
16
+ connection_pool (>= 2.2.5)
17
+ drb
14
18
  i18n (>= 1.6, < 2)
15
19
  minitest (>= 5.1)
20
+ mutex_m
16
21
  tzinfo (~> 2.0)
22
+ base64 (0.2.0)
23
+ bigdecimal (3.1.5)
24
+ bigdecimal (3.1.5-java)
25
+ colorize (1.1.0)
17
26
  concurrent-ruby (1.2.2)
18
- devops_assist (0.3.11)
19
- git_cli
20
- git_cli_prompt (~> 0.3.3)
21
- gvcs
22
- teLogger
23
- toolrack
24
- tty-prompt
27
+ connection_pool (2.4.1)
25
28
  diff-lcs (1.5.0)
26
- git_cli (0.11.2)
27
- gvcs
29
+ drb (2.2.0)
30
+ ruby2_keywords
31
+ git_cli (0.13.9)
28
32
  ptools (~> 1.4.0)
29
- teLogger
30
- toolrack
31
- git_cli_prompt (0.3.4)
32
- teLogger
33
- toolrack
34
- tty-prompt
35
- gvcs (0.1.1)
36
- i18n (1.12.0)
33
+ teLogger (> 0.2)
34
+ toolrack (> 0.23)
35
+ i18n (1.14.1)
37
36
  concurrent-ruby (~> 1.0)
38
- minitest (5.18.0)
37
+ minitest (5.20.0)
38
+ mutex_m (0.2.0)
39
39
  pastel (0.8.0)
40
40
  tty-color (~> 0.5)
41
41
  ptools (1.4.3)
42
- rake (13.0.6)
42
+ rake (13.1.0)
43
+ release-gem (0.3.3)
44
+ colorize (~> 1.1)
45
+ git_cli (~> 0.13)
46
+ pastel (~> 0.8)
47
+ teLogger (~> 0.2)
48
+ toolrack (~> 0.23)
49
+ tty-command (~> 0.10)
50
+ tty-prompt (~> 0.23)
43
51
  rspec (3.12.0)
44
52
  rspec-core (~> 3.12.0)
45
53
  rspec-expectations (~> 3.12.0)
46
54
  rspec-mocks (~> 3.12.0)
47
- rspec-core (3.12.1)
55
+ rspec-core (3.12.2)
48
56
  rspec-support (~> 3.12.0)
49
- rspec-expectations (3.12.2)
57
+ rspec-expectations (3.12.3)
50
58
  diff-lcs (>= 1.2.0, < 2.0)
51
59
  rspec-support (~> 3.12.0)
52
- rspec-mocks (3.12.5)
60
+ rspec-mocks (3.12.6)
53
61
  diff-lcs (>= 1.2.0, < 2.0)
54
62
  rspec-support (~> 3.12.0)
55
- rspec-support (3.12.0)
63
+ rspec-support (3.12.1)
64
+ ruby2_keywords (0.0.5)
56
65
  teLogger (0.2.2)
57
- toolrack (0.21.0)
66
+ toolrack (0.24.1)
58
67
  tty-color (0.6.0)
68
+ tty-command (0.10.1)
69
+ pastel (~> 0.8)
59
70
  tty-cursor (0.7.1)
60
71
  tty-prompt (0.23.1)
61
72
  pastel (~> 0.8)
@@ -64,20 +75,23 @@ GEM
64
75
  tty-cursor (~> 0.7)
65
76
  tty-screen (~> 0.8)
66
77
  wisper (~> 2.0)
67
- tty-screen (0.8.1)
78
+ tty-screen (0.8.2)
68
79
  tzinfo (2.0.6)
69
80
  concurrent-ruby (~> 1.0)
70
81
  wisper (2.0.1)
71
82
 
72
83
  PLATFORMS
73
84
  ruby
85
+ universal-java-1.8
86
+ universal-java-11
87
+ universal-java-17
74
88
  x86_64-linux
75
89
 
76
90
  DEPENDENCIES
77
91
  ccrypto!
78
- devops_assist
79
92
  rake (~> 13.0)
93
+ release-gem
80
94
  rspec (~> 3.0)
81
95
 
82
96
  BUNDLED WITH
83
- 2.2.28
97
+ 2.5.1
data/Rakefile CHANGED
@@ -3,8 +3,7 @@
3
3
  require "bundler/gem_tasks"
4
4
  require "rspec/core/rake_task"
5
5
 
6
- require 'devops_assist'
7
-
8
6
  RSpec::Core::RakeTask.new(:spec)
9
7
 
10
8
  task default: :spec
9
+ require 'release/gem'
data/ccrypto.gemspec CHANGED
@@ -35,11 +35,13 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  spec.add_dependency 'activesupport'
37
37
 
38
- spec.add_development_dependency 'devops_assist'
38
+ #spec.add_development_dependency 'devops_assist'
39
+ #spec.add_development_dependency 'pry'
39
40
 
40
41
  # Uncomment to register a new dependency of your gem
41
42
  # spec.add_dependency "example-gem", "~> 1.0"
42
43
 
43
44
  # For more information and examples about making a new gem, checkout our
44
45
  # guide at: https://bundler.io/guides/creating_gem.html
46
+ spec.add_development_dependency 'release-gem'
45
47
  end
@@ -0,0 +1,15 @@
1
+
2
+
3
+ module Ccrypto
4
+ module Capability
5
+
6
+ def self.supported_keypair_config(*args,&block)
7
+ Provider.instance.provider.supported_keypair_config(*args, &block)
8
+ end
9
+
10
+ def self.supported_secret_key_config(*args, &block)
11
+ Provider.instance.provider.supported_secret_key_config(*args, &block)
12
+ end
13
+
14
+ end
15
+ end
@@ -10,11 +10,11 @@ module Ccrypto
10
10
  klass.extend(ClassMethods)
11
11
  end
12
12
 
13
- attr_accessor :provider_config
14
- def provider_info(val)
15
- @provider_config = val
16
- self
17
- end
13
+ #attr_accessor :provider_config
14
+ #def provider_info(val)
15
+ # @provider_config = val
16
+ # self
17
+ #end
18
18
 
19
19
  end
20
20
  end
@@ -2,21 +2,16 @@
2
2
 
3
3
  module Ccrypto
4
4
 
5
- module CipherAuthMode
6
- attr_accessor :auth_data, :auth_tag
7
- end
8
-
9
5
  class CipherConfig
10
6
  include AlgoConfig
11
7
  include TR::CondUtils
12
8
 
13
- attr_accessor :algo, :key
14
- attr_accessor :keysize, :mode, :padding
15
- attr_accessor :iv, :ivLength
16
- attr_accessor :cipherOps
9
+ # given later by the provider
10
+ attr_accessor :ccrypto_key, :iv
17
11
 
18
- # required by certain mode such as CCM
19
- attr_accessor :plaintext_length, :ciphertext_length, :fixed_auth_tag_length
12
+ # set while this config is initialize and should not be changed
13
+ attr_reader :algo, :padding, :mode
14
+ attr_reader :keysize, :ivLength
20
15
 
21
16
  # Use cases :
22
17
  # openssl aes-128-xts only accepts input min 16 bytes
@@ -24,82 +19,49 @@ module Ccrypto
24
19
  attr_reader :min_input_length, :mandatory_block_size
25
20
 
26
21
  # provider specific
27
- attr_accessor :native_config
22
+ attr_accessor :provider_config
23
+
24
+ # construct a standard key config for key generation engine
25
+ attr_accessor :key_config
28
26
 
29
27
  def initialize(algo, opts = { }, &block)
30
28
  @algo = algo
31
29
 
32
- @logger = Tlogger.new
33
- @logger.tag = :cipher_conf
34
-
35
30
  @authMode = false
36
31
  @plaintext_length = 0
37
32
  @ciphertext_length = 0
38
33
  @min_input_length = -1
39
- @mandatory_Block_size = -1
34
+ @mandatory_block_size = -1
40
35
  @fixed_iv_length = -1
41
36
 
42
37
  if not_empty?(opts) and opts.is_a?(Hash)
43
38
  @mode = opts[:mode]
44
-
39
+
45
40
  @authMode = opts[:authMode] || false
46
- #if is_mode?(:gcm)
47
- if @authMode
48
- self.extend CipherAuthMode
49
- @logger.debug "Extending auth mode"
50
-
51
- @auth_data = opts[:auth_data]
52
- @auth_tag = opts[:auth_tag]
53
-
54
- end
55
41
 
56
42
  @iv = opts[:iv]
57
43
  @ivLength = opts[:ivLength] if is_empty?(@iv)
58
44
 
59
- @key = opts[:key]
60
- @keysize = opts[:keysize] if is_empty?(@key)
45
+ @iv_required = (@ivLength.nil? ? false : @ivLength.to_i > 0)
61
46
 
62
- @padding = opts[:padding]
47
+ @ccrypto_key = opts[:ccrypto_key]
48
+ @keysize = opts[:keysize] if is_empty?(@ccrypto_key)
63
49
 
64
- @cipherOps = opts[:cipherOps]
50
+ @padding = opts[:padding]
65
51
 
66
52
  @min_input_length = opts[:min_input_length] || -1
67
53
 
68
54
  @mandatory_block_size = opts[:mandatory_block_size] || -1
69
55
 
70
- @fixed_auth_tag_length = opts[:fixed_auth_tag_length] || -1
56
+ #@fixed_auth_tag_length = opts[:fixed_auth_tag_length] || -1
71
57
 
58
+ @provider_config = opts[:provider_config]
72
59
  end
73
60
 
74
- #if block
75
- # @mode = block.call(:mode)
76
-
77
- # #if is_mode?(:gcm)
78
- # if @authMode
79
- # self.extend CipherAuthMode
80
- # @logger.debug "Extending auth mode"
81
-
82
- # @auth_data = block.call(:auth_data)
83
- # @auth_tag = block.call(:auth_tag)
84
- # end
85
-
86
- # @iv = block.call(:iv)
87
- # @ivLength = block.call(:ivLength) || 16 if @iv.nil?
88
-
89
- # @key = block.call(:key)
90
- # @keysize = block.call(:keysize) if @key.nil?
91
-
92
- # @padding = block.call(:padding)
93
-
94
- # @cipherOps = block.call(:cipherOps)
95
-
96
- # @plaintext_length = 0
97
- # @ciphertext_length = 0
98
-
99
- # @min_input_length = opts[:min_input_length] || -1
100
-
101
- #end
102
-
61
+ end
62
+
63
+ def iv_required?
64
+ @iv_required
103
65
  end
104
66
 
105
67
  def has_iv?
@@ -107,15 +69,19 @@ module Ccrypto
107
69
  end
108
70
 
109
71
  def has_key?
110
- not_empty?(@key)
72
+ not_empty?(@ccrypto_key)
111
73
  end
112
74
 
113
75
  def has_min_input_length?
114
76
  not_empty?(@min_input_length) and @min_input_length.to_i > -1
115
77
  end
116
78
 
117
- def has_fixed_auth_tag_length?
118
- not_empty?(@fixed_auth_tag_length) and @fixed_auth_tag_length.to_i > -1
79
+ #def has_fixed_auth_tag_length?
80
+ # not_empty?(@fixed_auth_tag_length) and @fixed_auth_tag_length.to_i > -1
81
+ #end
82
+
83
+ def has_mandatory_block_size?
84
+ not_empty?(@mandatory_block_size) and @mandatory_block_size.to_i > -1
119
85
  end
120
86
 
121
87
  def is_auth_mode_cipher?
@@ -149,57 +115,34 @@ module Ccrypto
149
115
  def encrypt_cipher_mode
150
116
  @cipherOps = :encrypt
151
117
  end
118
+ alias_method :set_encrypt_mode, :encrypt_cipher_mode
152
119
  def is_encrypt_cipher_mode?
153
- case @cipherOps
154
- when :encrypt, :enc
155
- true
156
- else
157
- false
158
- end
120
+ @cipherOps == :encrypt
159
121
  end
160
122
 
161
123
  def decrypt_cipher_mode
162
124
  @cipherOps = :decrypt
163
125
  end
126
+ alias_method :set_decrypt_mode, :decrypt_cipher_mode
164
127
  def is_decrypt_cipher_mode?
165
- case @cipherOps
166
- when :decrypt, :dec
167
- true
168
- else
169
- false
170
- end
128
+ @cipherOps == :decrypt
171
129
  end
172
130
 
173
131
  def to_s
174
132
  res = [@algo, @keysize, @mode, @padding].reject { |v| is_empty?(v) }.join("-")
175
- "#{res} (#{@authMode})"
176
- #"#{@algo}-#{@keysize}-#{@mode}-#{@padding}"
133
+ "#{res} (Auth mode? : #{@authMode})"
134
+ end
135
+
136
+ # enable sort
137
+ def <=>(val)
138
+ @algo <=> val.algo
177
139
  end
178
140
 
141
+ private
179
142
  def logger
180
- if @logger.nil?
181
- @logger = Tlogger.new
182
- @logger.tag = :cipher_conf
183
- end
184
- @logger
143
+ Ccrypto.logger(:cipher_conf)
185
144
  end
186
- end
187
145
 
188
- #class DirectCipherConfig < CipherConfig
189
- # # str can be String or Hash
190
- # # If String it will be directly used by underlying
191
- # # engine with minimum parsing which means might not have other
192
- # # info
193
- # def initialize(str)
194
- # raise CipherConfigException, "Hash is expected" if not str.is_a?(Hash)
195
- # super(str[:algo], str)
196
- # end
197
-
198
- #end
199
-
200
- #class CipherEngineConfig < CipherConfig
201
- # # engine that is discovered by cipher engine
202
- # # Means can directly use the object
203
- #end
146
+ end
204
147
 
205
148
  end
@@ -5,94 +5,105 @@ module Ccrypto
5
5
  include AlgoConfig
6
6
  include TR::CondUtils
7
7
 
8
- attr_accessor :algo, :outBitLength
9
- attr_accessor :hardInBitLength
10
- attr_accessor :nativeDigestEngine
8
+ attr_reader :algo, :outBitLength, :outByteLength
9
+ attr_reader :fixed_input_len_byte
10
+ # variable allow provider to put things related to the provider e.g. JCE provider etc
11
+ attr_accessor :provider_config
11
12
  def initialize(algo, outBitLen, opts = { })
12
13
  @algo = algo
13
14
  @outBitLength = outBitLen
15
+ @outByteLength = @outBitLength/8
16
+
14
17
  if not_empty?(opts)
15
18
  @provider_config = opts[:provider_config]
16
- @hardInBitLength = opts[:hard_in_bit_length]
19
+ @fixed_input_len_byte = opts[:fixed_input_len_byte] || -1
20
+ else
21
+ @provider_config = {}
22
+ @fixed_input_len_byte = -1
17
23
  end
18
24
  end
19
25
 
20
- def has_hard_in_bit_length?
21
- (not @hardInBitLength.nil?) or @hardInBitLength.to_i > 0
26
+ def has_fixed_input_len_byte?
27
+ @fixed_input_len_byte != -1
22
28
  end
29
+
30
+ #def to_s
31
+ # "Digest #{algo}"
32
+ #end
33
+
23
34
  end
24
35
 
25
- SHA1 = DigestConfig.new(:sha1, 160)
26
- SHA224 = DigestConfig.new(:sha224, 224)
27
- SHA256 = DigestConfig.new(:sha256, 256)
28
- SHA384 = DigestConfig.new(:sha384, 384)
29
- SHA512 = DigestConfig.new(:sha512, 512)
30
- SHA512_224 = DigestConfig.new(:sha512_224, 224)
31
- SHA512_256 = DigestConfig.new(:sha512_256, 256)
32
-
33
- SHA3_224 = DigestConfig.new(:sha3_224, 224)
34
- SHA3_256 = DigestConfig.new(:sha3_256, 256)
35
- SHA3_384 = DigestConfig.new(:sha3_384, 384)
36
- SHA3_512 = DigestConfig.new(:sha3_512, 512)
37
-
38
- BLAKE2b160 = DigestConfig.new(:blake2b160, 160)
39
- BLAKE2b256 = DigestConfig.new(:blake2b256, 256)
40
- BLAKE2b384 = DigestConfig.new(:blake2b384, 384)
41
- BLAKE2b512 = DigestConfig.new(:blake2b512, 512)
42
-
43
- BLAKE2s128 = DigestConfig.new(:blake2s128, 128)
44
- BLAKE2s160 = DigestConfig.new(:blake2s160, 160)
45
- BLAKE2s224 = DigestConfig.new(:blake2s224, 224)
46
- BLAKE2s256 = DigestConfig.new(:blake2s256, 256)
47
-
48
- DSTU7564_256 = DigestConfig.new(:dstu7564_256, 256)
49
- KUPYNA_256 = DSTU7564_256
50
- DSTU7564_384 = DigestConfig.new(:dstu7564_384, 384)
51
- KUPYNA_384 = DSTU7564_384
52
- DSTU7564_512 = DigestConfig.new(:dstu7564_512, 512)
53
- KUPYNA_512 = DSTU7564_512
54
-
55
- GOSH3411 = DigestConfig.new(:gosh3411, 256)
56
- GOSH3411_2012_256 = DigestConfig.new(:gosh3411_2012_256, 256)
57
- GOSH3411_2012_512 = DigestConfig.new(:gosh3411_2012_512, 512)
58
-
59
- HARAKA256 = DigestConfig.new(:haraka256, 256, { hard_in_bit_length: 256 })
60
- HARAKA512 = DigestConfig.new(:haraka512, 256, { hard_in_bit_length: 512 })
61
-
62
- KECCAK224 = DigestConfig.new(:keccak224, 224)
63
- KECCAK256 = DigestConfig.new(:keccak256, 256)
64
- KECCAK288 = DigestConfig.new(:keccak288, 288)
65
- KECCAK384 = DigestConfig.new(:keccak384, 384)
66
- KECCAK512 = DigestConfig.new(:keccak512, 512)
67
-
68
- RIPEMD128 = DigestConfig.new(:ripemd128, 128)
69
- RIPEMD160 = DigestConfig.new(:ripemd160, 160)
70
- RIPEMD256 = DigestConfig.new(:ripemd256, 256)
71
- RIPEMD320 = DigestConfig.new(:ripemd320, 320)
72
-
73
- SHAKE128_256 = DigestConfig.new(:shake128_256, 256)
74
- SHAKE256_512 = DigestConfig.new(:shake256_512, 512)
75
- SHAKE128 = DigestConfig.new(:shake128, 128)
76
- SHAKE256 = DigestConfig.new(:shake256, 256)
77
-
78
- SKEIN1024_1024 = DigestConfig.new(:skein1024_1024, 1024)
79
- SKEIN1024_384 = DigestConfig.new(:skein1024_384, 384)
80
- SKEIN1024_512 = DigestConfig.new(:skein1024_512, 512)
81
-
82
- SKEIN256_128 = DigestConfig.new(:skein256_128, 128)
83
- SKEIN256_160 = DigestConfig.new(:skein256_160, 160)
84
- SKEIN256_224 = DigestConfig.new(:skein256_224, 224)
85
- SKEIN256_256 = DigestConfig.new(:skein256_256, 256)
86
-
87
- SKEIN512_128 = DigestConfig.new(:skein512_128, 128)
88
- SKEIN512_160 = DigestConfig.new(:skein512_160, 160)
89
- SKEIN512_224 = DigestConfig.new(:skein512_224, 224)
90
- SKEIN512_256 = DigestConfig.new(:skein512_256, 256)
91
- SKEIN512_384 = DigestConfig.new(:skein512_384, 384)
92
- SKEIN512_512 = DigestConfig.new(:skein512_512, 512)
93
-
94
- SM3 = DigestConfig.new(:sm3, 256)
95
-
96
- WHIRLPOOL = DigestConfig.new(:whirlpool, 512)
36
+ #SHA1 = DigestConfig.new(:sha1, 160)
37
+ #SHA224 = DigestConfig.new(:sha224, 224)
38
+ #SHA256 = DigestConfig.new(:sha256, 256)
39
+ #SHA384 = DigestConfig.new(:sha384, 384)
40
+ #SHA512 = DigestConfig.new(:sha512, 512)
41
+ #SHA512_224 = DigestConfig.new(:sha512_224, 224)
42
+ #SHA512_256 = DigestConfig.new(:sha512_256, 256)
43
+
44
+ #SHA3_224 = DigestConfig.new(:sha3_224, 224)
45
+ #SHA3_256 = DigestConfig.new(:sha3_256, 256)
46
+ #SHA3_384 = DigestConfig.new(:sha3_384, 384)
47
+ #SHA3_512 = DigestConfig.new(:sha3_512, 512)
48
+
49
+ #BLAKE2b160 = DigestConfig.new(:blake2b160, 160)
50
+ #BLAKE2b256 = DigestConfig.new(:blake2b256, 256)
51
+ #BLAKE2b384 = DigestConfig.new(:blake2b384, 384)
52
+ #BLAKE2b512 = DigestConfig.new(:blake2b512, 512)
53
+
54
+ #BLAKE2s128 = DigestConfig.new(:blake2s128, 128)
55
+ #BLAKE2s160 = DigestConfig.new(:blake2s160, 160)
56
+ #BLAKE2s224 = DigestConfig.new(:blake2s224, 224)
57
+ #BLAKE2s256 = DigestConfig.new(:blake2s256, 256)
58
+
59
+ #DSTU7564_256 = DigestConfig.new(:dstu7564_256, 256)
60
+ #KUPYNA_256 = DSTU7564_256
61
+ #DSTU7564_384 = DigestConfig.new(:dstu7564_384, 384)
62
+ #KUPYNA_384 = DSTU7564_384
63
+ #DSTU7564_512 = DigestConfig.new(:dstu7564_512, 512)
64
+ #KUPYNA_512 = DSTU7564_512
65
+
66
+ #GOSH3411 = DigestConfig.new(:gosh3411, 256)
67
+ #GOSH3411_2012_256 = DigestConfig.new(:gosh3411_2012_256, 256)
68
+ #GOSH3411_2012_512 = DigestConfig.new(:gosh3411_2012_512, 512)
69
+
70
+ #HARAKA256 = DigestConfig.new(:haraka256, 256, { hard_in_bit_length: 256 })
71
+ #HARAKA512 = DigestConfig.new(:haraka512, 256, { hard_in_bit_length: 512 })
72
+
73
+ #KECCAK224 = DigestConfig.new(:keccak224, 224)
74
+ #KECCAK256 = DigestConfig.new(:keccak256, 256)
75
+ #KECCAK288 = DigestConfig.new(:keccak288, 288)
76
+ #KECCAK384 = DigestConfig.new(:keccak384, 384)
77
+ #KECCAK512 = DigestConfig.new(:keccak512, 512)
78
+
79
+ #RIPEMD128 = DigestConfig.new(:ripemd128, 128)
80
+ #RIPEMD160 = DigestConfig.new(:ripemd160, 160)
81
+ #RIPEMD256 = DigestConfig.new(:ripemd256, 256)
82
+ #RIPEMD320 = DigestConfig.new(:ripemd320, 320)
83
+
84
+ #SHAKE128_256 = DigestConfig.new(:shake128_256, 256)
85
+ #SHAKE256_512 = DigestConfig.new(:shake256_512, 512)
86
+ #SHAKE128 = DigestConfig.new(:shake128, 128)
87
+ #SHAKE256 = DigestConfig.new(:shake256, 256)
88
+
89
+ #SKEIN1024_1024 = DigestConfig.new(:skein1024_1024, 1024)
90
+ #SKEIN1024_384 = DigestConfig.new(:skein1024_384, 384)
91
+ #SKEIN1024_512 = DigestConfig.new(:skein1024_512, 512)
92
+ #
93
+ #SKEIN256_128 = DigestConfig.new(:skein256_128, 128)
94
+ #SKEIN256_160 = DigestConfig.new(:skein256_160, 160)
95
+ #SKEIN256_224 = DigestConfig.new(:skein256_224, 224)
96
+ #SKEIN256_256 = DigestConfig.new(:skein256_256, 256)
97
+
98
+ #SKEIN512_128 = DigestConfig.new(:skein512_128, 128)
99
+ #SKEIN512_160 = DigestConfig.new(:skein512_160, 160)
100
+ #SKEIN512_224 = DigestConfig.new(:skein512_224, 224)
101
+ #SKEIN512_256 = DigestConfig.new(:skein512_256, 256)
102
+ #SKEIN512_384 = DigestConfig.new(:skein512_384, 384)
103
+ #SKEIN512_512 = DigestConfig.new(:skein512_512, 512)
104
+
105
+ #SM3 = DigestConfig.new(:sm3, 256)
106
+
107
+ #WHIRLPOOL = DigestConfig.new(:whirlpool, 512)
97
108
 
98
109
  end
@@ -4,10 +4,15 @@ module Ccrypto
4
4
  class HMACConfig
5
5
  include AlgoConfig
6
6
 
7
- attr_accessor :key, :digest
7
+ attr_accessor :ccrypto_key
8
8
 
9
- def initialize
10
- @digest = :sha256
9
+ attr_reader :digest_config
10
+
11
+ attr_accessor :provider_config
12
+
13
+ def initialize(digestConfig)
14
+ @digest_config = digestConfig
11
15
  end
16
+
12
17
  end
13
18
  end