ossl_cryptor 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 +4 -4
- data/lib/ossl_cryptor.rb +7 -7
- data/lib/ossl_cryptor/generator.rb +31 -0
- data/lib/ossl_cryptor/version.rb +1 -1
- metadata +3 -3
- data/lib/ossl_cryptor/cipher_generator.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99007dad261ecf9bb5153b2e58a27854989103ff
|
4
|
+
data.tar.gz: 19b769b95d873870fa80e59cd54a38fda823d310
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47722e291480c719f4d525338d877ad6249938f6c8df23f2a99002a5e054280e6adcf486b9d537c3d0b1e1b7f950f5c14f3b5e9f7c64d0ac721d3eb9efa6b288
|
7
|
+
data.tar.gz: dd8795cfc447b68a76eeaf525aa6363642eef3ab81a39c9f8772239d82015eb228469cbcb6b20e03ed4600e9199c2bf46837d6fdb0325938ff131ddc56bf743b
|
data/lib/ossl_cryptor.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "ossl_cryptor/version"
|
2
|
-
require "ossl_cryptor/
|
2
|
+
require "ossl_cryptor/generator"
|
3
3
|
require "base64"
|
4
4
|
require "openssl"
|
5
5
|
|
@@ -28,18 +28,18 @@ module OsslCryptor
|
|
28
28
|
end
|
29
29
|
|
30
30
|
# generate cipher instance.
|
31
|
-
@cipher =
|
31
|
+
@cipher = OsslCryptor::Generator.generate_cipher(mode)
|
32
32
|
# set initialize parameter and generate key, iv
|
33
33
|
@mode = mode
|
34
|
-
@pass = pass.nil? ?
|
34
|
+
@pass = pass.nil? ? OsslCryptor::Generator::DEFAULT_PASS : pass
|
35
35
|
@salt = salt
|
36
|
-
@key_iv_hash = key_iv_hash.nil? ?
|
36
|
+
@key_iv_hash = key_iv_hash.nil? ? OsslCryptor::Generator::DEFAULT_KEY_IV_HASH : key_iv_hash
|
37
37
|
@key_iv = key_iv.nil? ? generate_key_iv(@mode, @pass, @salt, @key_iv_hash) : key_iv
|
38
38
|
end
|
39
39
|
|
40
40
|
# reset cipher instance.
|
41
41
|
def reset
|
42
|
-
@cipher =
|
42
|
+
@cipher = OsslCryptor::Generator.generate_cipher(@mode)
|
43
43
|
@key_iv = generate_key_iv(@mode, @pass, @salt, @key_iv_hash) if @key_iv.nil?
|
44
44
|
end
|
45
45
|
|
@@ -104,9 +104,9 @@ module OsslCryptor
|
|
104
104
|
|
105
105
|
# generate cipher key and iv.
|
106
106
|
# @param [String] mode crypt mode.
|
107
|
-
# @param [String] pass password, if pass = nil, use
|
107
|
+
# @param [String] pass password, if pass = nil, use OsslCryptor::Generator::DEFAULT_PASS
|
108
108
|
# @param [String] salt salt data. if salt = nil, use random salt.
|
109
|
-
# @param [String] hash use hash algorithm when key and iv generate. if key_iv_hash = nil, use
|
109
|
+
# @param [String] hash use hash algorithm when key and iv generate. if key_iv_hash = nil, use OsslCryptor::Generator::DEFAULT_KEY_IV_HASH
|
110
110
|
# @return [Hash] key and iv hash.
|
111
111
|
def generate_key_iv(mode, pass=nil, salt=nil, hash=nil)
|
112
112
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "openssl"
|
2
|
+
|
3
|
+
# openssl crypt module.
|
4
|
+
module OsslCryptor
|
5
|
+
|
6
|
+
# Cipher instance generator.
|
7
|
+
class Generator
|
8
|
+
|
9
|
+
# default pass.
|
10
|
+
DEFAULT_PASS = "ossl_cryptor"
|
11
|
+
|
12
|
+
# default hash algorithm.
|
13
|
+
DEFAULT_KEY_IV_HASH = "sha256"
|
14
|
+
|
15
|
+
# generate cipher instance.
|
16
|
+
# @param [String] mode crypt mode.
|
17
|
+
# @return [Cipher] cipher instance.
|
18
|
+
def self.generate_cipher(mode)
|
19
|
+
cipher = OpenSSL::Cipher.new(mode)
|
20
|
+
cipher
|
21
|
+
end
|
22
|
+
|
23
|
+
# generate random key and iv.
|
24
|
+
# @param [String] mode crypt mode.
|
25
|
+
# @return [Hash] key and iv hash. xx[:key] = key, xx[:iv] = iv
|
26
|
+
def self.generate_random_key_iv(mode)
|
27
|
+
cipher = OpenSSL::Cipher.new(mode)
|
28
|
+
key_iv = { key: cipher.random_key, iv: cipher.random_iv }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/ossl_cryptor/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ossl_cryptor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
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-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -70,7 +70,7 @@ files:
|
|
70
70
|
- bin/console
|
71
71
|
- bin/setup
|
72
72
|
- lib/ossl_cryptor.rb
|
73
|
-
- lib/ossl_cryptor/
|
73
|
+
- lib/ossl_cryptor/generator.rb
|
74
74
|
- lib/ossl_cryptor/version.rb
|
75
75
|
- ossl_cryptor.gemspec
|
76
76
|
homepage: https://github.com/h-shigemoto/ossl_cryptor
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "openssl"
|
2
|
-
|
3
|
-
# Cipher instance generator.
|
4
|
-
module CipherGenerator
|
5
|
-
|
6
|
-
# default pass.
|
7
|
-
DEFAULT_PASS = "ossl_cryptor"
|
8
|
-
|
9
|
-
# default hash algorithm.
|
10
|
-
DEFAULT_KEY_IV_HASH = "sha256"
|
11
|
-
|
12
|
-
# generate cipher instance.
|
13
|
-
# @param [String] mode crypt mode.
|
14
|
-
# @return [Cipher] cipher instance.
|
15
|
-
def self.generate_cipher(mode)
|
16
|
-
cipher = OpenSSL::Cipher.new(mode)
|
17
|
-
cipher
|
18
|
-
end
|
19
|
-
|
20
|
-
# generate random key and iv.
|
21
|
-
# @param [String] mode crypt mode.
|
22
|
-
# @return [Hash] key and iv hash. xx[:key] = key, xx[:iv] = iv
|
23
|
-
def self.generate_random_key_iv(mode)
|
24
|
-
cipher = OpenSSL::Cipher.new(mode)
|
25
|
-
key_iv = { key: cipher.random_key, iv: cipher.random_iv }
|
26
|
-
end
|
27
|
-
end
|