ossl_rsa 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: ac8949541ed64d36f11d126f7981d3fbad99dd14
4
- data.tar.gz: 4694f0f07b2e42f76819bfba86a60167e3ec937b
3
+ metadata.gz: 4722726425bfb5c98d8bf2864b7387201dfd3eb4
4
+ data.tar.gz: 665d4724c96ede018fccce48dc3d18cef598b405
5
5
  SHA512:
6
- metadata.gz: c39aa7e72c211ac4c612fe53e36824f4abc443b2240b5a71a51263f2be41ce10cd449f1d5a40331f14275cb90310b19600e36172b57f98b84ac86c48fb3ee2b9
7
- data.tar.gz: 36fdefe2c5826bbd802cf78e8f45c19d52e632906b7ec327eae3cc90015aba74dbfb480a27e6a7fef5e89173ede5f9adda0c44eadde0eba9857f486ae722f0bd
6
+ metadata.gz: 0d9cc67d80da2e7833fc659035fdd3b7908930982f70d6342efb8937dd1f883a1a008ff4f395c14e1aba747b8e8107b1000133b4f59c98f9d55b3ecf85a83fed
7
+ data.tar.gz: 89374e7e94ad577f1104f1a4d2a597d86c3190ed3a97fc45fa6e6e730967ebe9e808c4f9c0840cbd12cde81f080c59de1e6c9ce968e23cbfc649087722f7a32c
@@ -1,6 +1,7 @@
1
1
  require "ossl_rsa/version"
2
2
  require "ossl_rsa/rsa"
3
3
  require "ossl_rsa/file_op"
4
+ require "ossl_rsa/generator"
4
5
 
5
6
  # openssl rsa module.
6
7
  module OsslRsa
@@ -0,0 +1,66 @@
1
+ require "openssl"
2
+
3
+ # openssl rsa module.
4
+ module OsslRsa
5
+
6
+ # generator class
7
+ class Generator
8
+
9
+ # generate OpenSSL::PKey::RSA instance.
10
+ # generate rsa instance by options.
11
+ # options[:size] : key size
12
+ # options[:obj] : pem or der
13
+ # options[:pass] : password
14
+ # @param [Hash] options generate options.
15
+ # @return [OpenSSL::PKey::RSA] rsa instance.
16
+ def self.generate(options)
17
+
18
+ rsa = nil
19
+ # if size and private exist, raise error.
20
+ if (!options[:size].nil? && !options[:obj].nil?)
21
+ raise OpenSSL::PKey::RSAError.new("size and obj is nil.")
22
+ end
23
+
24
+ # if exist size, generate use size, cipher.
25
+ unless options[:size].nil?
26
+ rsa = generate_rsa_by_size(options[:size])
27
+ end
28
+
29
+ # if exist obj, generate use obj, pass.
30
+ unless options[:obj].nil?
31
+ rsa = generate_rsa_by_key(options[:obj], options[:pass])
32
+ end
33
+
34
+ # raise Error
35
+ if rsa.nil?
36
+ raise OpenSSL::PKey::RSAError.new("fail create rsa instance.")
37
+ end
38
+
39
+ rsa
40
+ end
41
+
42
+ private
43
+
44
+ # generate rsa.
45
+ # @param [integer] size key size.
46
+ # @return [OpenSSL::PKey::RSA] rsa instance.
47
+ def self.generate_rsa_by_size(size)
48
+
49
+ # add seed.
50
+ OpenSSL::Random.seed(SecureRandom.hex(8))
51
+ # generate rsa instance.
52
+ rsa = OpenSSL::PKey::RSA.new(size)
53
+ rsa
54
+ end
55
+
56
+ # generate rsa.
57
+ # @param [String] pem / der.
58
+ # @param [String] pass password
59
+ # @return [OpenSSL::PKey::RSA] rsa instance.
60
+ def self.generate_rsa_by_key(obj, pass=nil)
61
+
62
+ rsa = OpenSSL::PKey::RSA.new(obj, pass)
63
+ rsa
64
+ end
65
+ end
66
+ end
@@ -1,3 +1,4 @@
1
+ require "ossl_rsa/generator"
1
2
  require "openssl"
2
3
  require "base64"
3
4
  require "securerandom"
@@ -16,25 +17,8 @@ module OsslRsa
16
17
  # @param [Hash] options generate options.
17
18
  def initialize(options={})
18
19
 
19
- # if size and private exist, raise error.
20
- if (!options[:size].nil? && !options[:obj].nil?)
21
- raise OpenSSL::PKey::RSAError "size and obj is nil."
22
- end
23
-
24
- # if exist size, generate use size, cipher.
25
- unless options[:size].nil?
26
- @rsa = generate_rsa_by_size(options[:size])
27
- end
28
-
29
- # if exist obj, generate use obj, pass.
30
- unless options[:obj].nil?
31
- @rsa = generate_rsa_by_key(options[:obj], options[:pass])
32
- end
33
-
34
- # raise Error
35
- if @rsa.nil?
36
- raise OpenSSL::PKey::RSAError "fail create rsa instance."
37
- end
20
+ # generate rsa instance.
21
+ @rsa = OsslRsa::Generator.generate(options)
38
22
  end
39
23
 
40
24
  # encrypt RSA. use public_key.
@@ -126,8 +110,8 @@ module OsslRsa
126
110
  save_path_pair = OsslRsa::FileOp.save(dir_path, save_key_pair, mode, add_now)
127
111
  save_path_pair
128
112
  end
113
+
129
114
  # save file key.
130
- # filename is [private.xxx(pem or der)], [public.xxx(pem or der)]
131
115
  # @param [Hash] file_path_pair save file path pair. xxx[:private] = private file path, xxx[:public] = public file path.
132
116
  # @param [integer] mode pem or der.
133
117
  # @param [OpenSSL::Cipher] cipher cipher instance.
@@ -136,7 +120,7 @@ module OsslRsa
136
120
  def to_specify_file(file_path_pair, mode, cipher=nil, pass=nil)
137
121
 
138
122
  save_key_pair = key_pair(mode, cipher, pass)
139
-
123
+
140
124
  # save file.
141
125
  save_path_pair = OsslRsa::FileOp.save_file(save_key_pair, file_path_pair, mode)
142
126
  save_path_pair
@@ -168,29 +152,17 @@ module OsslRsa
168
152
  { private: private_key, public: public_key }
169
153
  end
170
154
 
171
- private
155
+ # get private and public key text.
156
+ # @return [Hash] key pair hash. xx[:private] = private_key, xx[:public] = public_key
157
+ def text_pair
172
158
 
173
- # generate rsa.
174
- # @param [integer] size key size.
175
- # @return [OpenSSL::PKey::RSA] rsa instance.
176
- def generate_rsa_by_size(size)
159
+ private_key = @rsa.to_text if @rsa.private?
160
+ public_key = @rsa.public_key.to_text if @rsa.public?
177
161
 
178
- # add seed.
179
- OpenSSL::Random.seed(SecureRandom.hex(8))
180
- # generate rsa instance.
181
- rsa = OpenSSL::PKey::RSA.new(size)
182
- rsa
162
+ { private: private_key, public: public_key }
183
163
  end
184
164
 
185
- # generate rsa.
186
- # @param [String] pem / der.
187
- # @param [String] pass password
188
- # @return [OpenSSL::PKey::RSA] rsa instance.
189
- def generate_rsa_by_key(obj, pass=nil)
190
-
191
- rsa = OpenSSL::PKey::RSA.new(obj, pass)
192
- rsa
193
- end
165
+ private
194
166
 
195
167
  # get private key.
196
168
  # @param [integer] mode pem or der.
@@ -1,3 +1,3 @@
1
1
  module OsslRsa
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ossl_rsa
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-06 00:00:00.000000000 Z
11
+ date: 2016-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,6 +71,7 @@ files:
71
71
  - bin/setup
72
72
  - lib/ossl_rsa.rb
73
73
  - lib/ossl_rsa/file_op.rb
74
+ - lib/ossl_rsa/generator.rb
74
75
  - lib/ossl_rsa/rsa.rb
75
76
  - lib/ossl_rsa/version.rb
76
77
  - ossl_rsa.gemspec