ccrypto 0.1.2 → 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 +4 -4
- data/.release_history.yml +4 -0
- data/.rubocop.yml +2 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +43 -31
- data/Rakefile +1 -2
- data/ccrypto.gemspec +3 -1
- data/lib/ccrypto/capability.rb +15 -0
- data/lib/ccrypto/configs/algo_config.rb +5 -5
- data/lib/ccrypto/configs/cipher_config.rb +59 -97
- data/lib/ccrypto/configs/digest_config.rb +89 -78
- data/lib/ccrypto/configs/hmac_config.rb +8 -3
- data/lib/ccrypto/configs/kdf_config.rb +73 -11
- data/lib/ccrypto/configs/key_config.rb +8 -1
- data/lib/ccrypto/configs/keypair_config.rb +94 -13
- data/lib/ccrypto/configs/secret_sharing_config.rb +7 -0
- data/lib/ccrypto/configs/x509_cert_profile.rb +10 -7
- data/lib/ccrypto/configs/x509_csr_profile.rb +1 -1
- data/lib/ccrypto/digest_matcher.rb +122 -0
- data/lib/ccrypto/in_memory_record.rb +255 -0
- data/lib/ccrypto/key_bundle.rb +20 -1
- data/lib/ccrypto/keystore.rb +25 -0
- data/lib/ccrypto/private_key.rb +8 -0
- data/lib/ccrypto/public_key.rb +13 -0
- data/lib/ccrypto/secret_key.rb +9 -4
- data/lib/ccrypto/supported_cipher_list.rb +6 -113
- data/lib/ccrypto/version.rb +1 -1
- data/lib/ccrypto/x509_cert.rb +5 -0
- data/lib/ccrypto/x509_csr.rb +2 -0
- data/lib/ccrypto.rb +44 -0
- metadata +12 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be6eb61015364e145f1607c28f3001a73c84c08fb0e31a1acdc50fd5fc343a3
|
4
|
+
data.tar.gz: cf2b5b56fca36ce1edc1dedc49979170d362676a9ced1db2cffeb16f8cd6e49a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8bd46f24aa6bd03e7d303681d4013e416f16faf181d63dd4ea61cf0b14f897be029f0badbea9169fc156dfea07df65863661135009fc5b25c312af0b9d73777
|
7
|
+
data.tar.gz: 56d3a26f498225721ead8d36a6fee0e875e660840a7eda072087941d2ed583548c16a1d8acfe71563f5bd9bba834e484cc52db5400230c369f23a8c632e8367b
|
data/.release_history.yml
CHANGED
data/.rubocop.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ccrypto (0.
|
4
|
+
ccrypto (0.2.0)
|
5
5
|
activesupport
|
6
6
|
teLogger
|
7
7
|
toolrack
|
@@ -9,55 +9,64 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
activesupport (7.
|
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)
|
17
|
-
|
22
|
+
base64 (0.2.0)
|
23
|
+
bigdecimal (3.1.5)
|
24
|
+
bigdecimal (3.1.5-java)
|
25
|
+
colorize (1.1.0)
|
18
26
|
concurrent-ruby (1.2.2)
|
19
|
-
|
20
|
-
git_cli
|
21
|
-
git_cli_prompt
|
22
|
-
gvcs
|
23
|
-
teLogger
|
24
|
-
toolrack
|
25
|
-
tty-prompt
|
27
|
+
connection_pool (2.4.1)
|
26
28
|
diff-lcs (1.5.0)
|
27
|
-
|
28
|
-
|
29
|
+
drb (2.2.0)
|
30
|
+
ruby2_keywords
|
31
|
+
git_cli (0.13.9)
|
29
32
|
ptools (~> 1.4.0)
|
30
|
-
teLogger
|
31
|
-
toolrack
|
32
|
-
|
33
|
-
teLogger
|
34
|
-
toolrack
|
35
|
-
tty-prompt
|
36
|
-
gvcs (0.1.1)
|
37
|
-
i18n (1.12.0)
|
33
|
+
teLogger (> 0.2)
|
34
|
+
toolrack (> 0.23)
|
35
|
+
i18n (1.14.1)
|
38
36
|
concurrent-ruby (~> 1.0)
|
39
|
-
minitest (5.
|
37
|
+
minitest (5.20.0)
|
38
|
+
mutex_m (0.2.0)
|
40
39
|
pastel (0.8.0)
|
41
40
|
tty-color (~> 0.5)
|
42
41
|
ptools (1.4.3)
|
43
|
-
rake (13.0
|
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)
|
44
51
|
rspec (3.12.0)
|
45
52
|
rspec-core (~> 3.12.0)
|
46
53
|
rspec-expectations (~> 3.12.0)
|
47
54
|
rspec-mocks (~> 3.12.0)
|
48
|
-
rspec-core (3.12.
|
55
|
+
rspec-core (3.12.2)
|
49
56
|
rspec-support (~> 3.12.0)
|
50
|
-
rspec-expectations (3.12.
|
57
|
+
rspec-expectations (3.12.3)
|
51
58
|
diff-lcs (>= 1.2.0, < 2.0)
|
52
59
|
rspec-support (~> 3.12.0)
|
53
|
-
rspec-mocks (3.12.
|
60
|
+
rspec-mocks (3.12.6)
|
54
61
|
diff-lcs (>= 1.2.0, < 2.0)
|
55
62
|
rspec-support (~> 3.12.0)
|
56
|
-
rspec-support (3.12.
|
63
|
+
rspec-support (3.12.1)
|
64
|
+
ruby2_keywords (0.0.5)
|
57
65
|
teLogger (0.2.2)
|
58
|
-
toolrack (0.
|
59
|
-
base58
|
66
|
+
toolrack (0.24.1)
|
60
67
|
tty-color (0.6.0)
|
68
|
+
tty-command (0.10.1)
|
69
|
+
pastel (~> 0.8)
|
61
70
|
tty-cursor (0.7.1)
|
62
71
|
tty-prompt (0.23.1)
|
63
72
|
pastel (~> 0.8)
|
@@ -66,20 +75,23 @@ GEM
|
|
66
75
|
tty-cursor (~> 0.7)
|
67
76
|
tty-screen (~> 0.8)
|
68
77
|
wisper (~> 2.0)
|
69
|
-
tty-screen (0.8.
|
78
|
+
tty-screen (0.8.2)
|
70
79
|
tzinfo (2.0.6)
|
71
80
|
concurrent-ruby (~> 1.0)
|
72
81
|
wisper (2.0.1)
|
73
82
|
|
74
83
|
PLATFORMS
|
75
84
|
ruby
|
85
|
+
universal-java-1.8
|
86
|
+
universal-java-11
|
87
|
+
universal-java-17
|
76
88
|
x86_64-linux
|
77
89
|
|
78
90
|
DEPENDENCIES
|
79
91
|
ccrypto!
|
80
|
-
devops_assist
|
81
92
|
rake (~> 13.0)
|
93
|
+
release-gem
|
82
94
|
rspec (~> 3.0)
|
83
95
|
|
84
96
|
BUNDLED WITH
|
85
|
-
2.
|
97
|
+
2.5.1
|
data/Rakefile
CHANGED
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
|
-
|
16
|
-
|
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
|
-
|
14
|
-
attr_accessor :
|
15
|
-
attr_accessor :iv, :ivLength
|
16
|
-
attr_accessor :cipherOps
|
9
|
+
# given later by the provider
|
10
|
+
attr_accessor :ccrypto_key, :iv
|
17
11
|
|
18
|
-
#
|
19
|
-
|
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,91 +19,73 @@ module Ccrypto
|
|
24
19
|
attr_reader :min_input_length, :mandatory_block_size
|
25
20
|
|
26
21
|
# provider specific
|
27
|
-
attr_accessor :
|
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
|
-
@
|
34
|
+
@mandatory_block_size = -1
|
35
|
+
@fixed_iv_length = -1
|
40
36
|
|
41
37
|
if not_empty?(opts) and opts.is_a?(Hash)
|
42
38
|
@mode = opts[:mode]
|
43
|
-
|
39
|
+
|
44
40
|
@authMode = opts[:authMode] || false
|
45
|
-
#if is_mode?(:gcm)
|
46
|
-
if @authMode
|
47
|
-
self.extend CipherAuthMode
|
48
|
-
@logger.debug "Extending auth mode"
|
49
|
-
|
50
|
-
@auth_data = opts[:auth_data]
|
51
|
-
@auth_tag = opts[:auth_tag]
|
52
|
-
|
53
|
-
end
|
54
41
|
|
55
42
|
@iv = opts[:iv]
|
56
43
|
@ivLength = opts[:ivLength] if is_empty?(@iv)
|
57
44
|
|
58
|
-
@
|
59
|
-
@keysize = opts[:keysize] if is_empty?(@key)
|
45
|
+
@iv_required = (@ivLength.nil? ? false : @ivLength.to_i > 0)
|
60
46
|
|
61
|
-
@
|
47
|
+
@ccrypto_key = opts[:ccrypto_key]
|
48
|
+
@keysize = opts[:keysize] if is_empty?(@ccrypto_key)
|
62
49
|
|
63
|
-
@
|
50
|
+
@padding = opts[:padding]
|
64
51
|
|
65
52
|
@min_input_length = opts[:min_input_length] || -1
|
66
53
|
|
67
54
|
@mandatory_block_size = opts[:mandatory_block_size] || -1
|
68
55
|
|
69
|
-
|
70
|
-
|
71
|
-
#if block
|
72
|
-
# @mode = block.call(:mode)
|
56
|
+
#@fixed_auth_tag_length = opts[:fixed_auth_tag_length] || -1
|
73
57
|
|
74
|
-
|
75
|
-
|
76
|
-
# self.extend CipherAuthMode
|
77
|
-
# @logger.debug "Extending auth mode"
|
78
|
-
|
79
|
-
# @auth_data = block.call(:auth_data)
|
80
|
-
# @auth_tag = block.call(:auth_tag)
|
81
|
-
# end
|
82
|
-
|
83
|
-
# @iv = block.call(:iv)
|
84
|
-
# @ivLength = block.call(:ivLength) || 16 if @iv.nil?
|
85
|
-
|
86
|
-
# @key = block.call(:key)
|
87
|
-
# @keysize = block.call(:keysize) if @key.nil?
|
88
|
-
|
89
|
-
# @padding = block.call(:padding)
|
90
|
-
|
91
|
-
# @cipherOps = block.call(:cipherOps)
|
92
|
-
|
93
|
-
# @plaintext_length = 0
|
94
|
-
# @ciphertext_length = 0
|
95
|
-
|
96
|
-
# @min_input_length = opts[:min_input_length] || -1
|
97
|
-
|
98
|
-
#end
|
58
|
+
@provider_config = opts[:provider_config]
|
59
|
+
end
|
99
60
|
|
100
61
|
end
|
62
|
+
|
63
|
+
def iv_required?
|
64
|
+
@iv_required
|
65
|
+
end
|
101
66
|
|
102
67
|
def has_iv?
|
103
68
|
not_empty?(@iv)
|
104
69
|
end
|
105
70
|
|
106
71
|
def has_key?
|
107
|
-
not_empty?(@
|
72
|
+
not_empty?(@ccrypto_key)
|
73
|
+
end
|
74
|
+
|
75
|
+
def has_min_input_length?
|
76
|
+
not_empty?(@min_input_length) and @min_input_length.to_i > -1
|
77
|
+
end
|
78
|
+
|
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
|
108
85
|
end
|
109
86
|
|
110
87
|
def is_auth_mode_cipher?
|
111
|
-
@authMode
|
88
|
+
@authMode == true
|
112
89
|
end
|
113
90
|
|
114
91
|
def is_algo?(algo)
|
@@ -123,64 +100,49 @@ module Ccrypto
|
|
123
100
|
if @mode.nil? or is_empty?(@mode)
|
124
101
|
false
|
125
102
|
else
|
126
|
-
(@mode.to_s.downcase =~ /#{mode.to_s}/) != nil
|
103
|
+
(@mode.to_s.downcase =~ /#{mode.to_s.downcase}/) != nil
|
127
104
|
end
|
128
105
|
end
|
129
106
|
|
107
|
+
def needs_plaintext_length?
|
108
|
+
is_mode?(:ccm)
|
109
|
+
end
|
110
|
+
|
111
|
+
def needs_ciphertext_length?
|
112
|
+
is_mode?(:ccm)
|
113
|
+
end
|
114
|
+
|
130
115
|
def encrypt_cipher_mode
|
131
116
|
@cipherOps = :encrypt
|
132
117
|
end
|
118
|
+
alias_method :set_encrypt_mode, :encrypt_cipher_mode
|
133
119
|
def is_encrypt_cipher_mode?
|
134
|
-
|
135
|
-
when :encrypt, :enc
|
136
|
-
true
|
137
|
-
else
|
138
|
-
false
|
139
|
-
end
|
120
|
+
@cipherOps == :encrypt
|
140
121
|
end
|
141
122
|
|
142
123
|
def decrypt_cipher_mode
|
143
124
|
@cipherOps = :decrypt
|
144
125
|
end
|
126
|
+
alias_method :set_decrypt_mode, :decrypt_cipher_mode
|
145
127
|
def is_decrypt_cipher_mode?
|
146
|
-
|
147
|
-
when :decrypt, :dec
|
148
|
-
true
|
149
|
-
else
|
150
|
-
false
|
151
|
-
end
|
128
|
+
@cipherOps == :decrypt
|
152
129
|
end
|
153
130
|
|
154
131
|
def to_s
|
155
132
|
res = [@algo, @keysize, @mode, @padding].reject { |v| is_empty?(v) }.join("-")
|
156
|
-
"#{res} (#{@authMode})"
|
157
|
-
#"#{@algo}-#{@keysize}-#{@mode}-#{@padding}"
|
133
|
+
"#{res} (Auth mode? : #{@authMode})"
|
158
134
|
end
|
159
135
|
|
136
|
+
# enable sort
|
137
|
+
def <=>(val)
|
138
|
+
@algo <=> val.algo
|
139
|
+
end
|
140
|
+
|
141
|
+
private
|
160
142
|
def logger
|
161
|
-
|
162
|
-
@logger = Tlogger.new
|
163
|
-
@logger.tag = :cipher_conf
|
164
|
-
end
|
165
|
-
@logger
|
143
|
+
Ccrypto.logger(:cipher_conf)
|
166
144
|
end
|
167
|
-
end
|
168
145
|
|
169
|
-
|
170
|
-
# # str can be String or Hash
|
171
|
-
# # If String it will be directly used by underlying
|
172
|
-
# # engine with minimum parsing which means might not have other
|
173
|
-
# # info
|
174
|
-
# def initialize(str)
|
175
|
-
# raise CipherConfigException, "Hash is expected" if not str.is_a?(Hash)
|
176
|
-
# super(str[:algo], str)
|
177
|
-
# end
|
178
|
-
|
179
|
-
#end
|
180
|
-
|
181
|
-
#class CipherEngineConfig < CipherConfig
|
182
|
-
# # engine that is discovered by cipher engine
|
183
|
-
# # Means can directly use the object
|
184
|
-
#end
|
146
|
+
end
|
185
147
|
|
186
148
|
end
|
@@ -5,94 +5,105 @@ module Ccrypto
|
|
5
5
|
include AlgoConfig
|
6
6
|
include TR::CondUtils
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
@
|
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
|
21
|
-
|
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 :
|
7
|
+
attr_accessor :ccrypto_key
|
8
8
|
|
9
|
-
|
10
|
-
|
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
|