sshkey 1.3.2 → 1.3.3
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.
- data/lib/sshkey.rb +8 -3
- data/lib/sshkey/version.rb +1 -1
- data/test/sshkey_test.rb +9 -2
- metadata +24 -28
data/lib/sshkey.rb
CHANGED
@@ -7,8 +7,8 @@ class SSHKey
|
|
7
7
|
SSH_TYPES = {"rsa" => "ssh-rsa", "dsa" => "ssh-dss"}
|
8
8
|
SSH_CONVERSION = {"rsa" => ["e", "n"], "dsa" => ["p", "q", "g", "pub_key"]}
|
9
9
|
|
10
|
-
attr_reader :key_object, :
|
11
|
-
attr_accessor :passphrase
|
10
|
+
attr_reader :key_object, :type
|
11
|
+
attr_accessor :passphrase, :comment
|
12
12
|
|
13
13
|
class << self
|
14
14
|
# Generate a new keypair and return an SSHKey object
|
@@ -109,7 +109,7 @@ class SSHKey
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def decoded_key(key)
|
112
|
-
Base64.decode64(key.
|
112
|
+
Base64.decode64(key.gsub(/^(ssh-[dr]s[as]\s+)|(\s+.+\@.+)|\n/, ''))
|
113
113
|
end
|
114
114
|
|
115
115
|
def fingerprint_regex
|
@@ -188,6 +188,11 @@ class SSHKey
|
|
188
188
|
Digest::SHA1.hexdigest(ssh_public_key_conversion).gsub(/(.{2})(?=.)/, '\1:\2')
|
189
189
|
end
|
190
190
|
|
191
|
+
# Determine the length (bits) of the key as an integer
|
192
|
+
def bits
|
193
|
+
key_object.to_text.match(/Private-Key:\s\((\d*)\sbit\)/)[1].to_i
|
194
|
+
end
|
195
|
+
|
191
196
|
private
|
192
197
|
|
193
198
|
# SSH Public Key Conversion
|
data/lib/sshkey/version.rb
CHANGED
data/test/sshkey_test.rb
CHANGED
@@ -204,14 +204,14 @@ EOF
|
|
204
204
|
assert_equal KEY1_SHA1_FINGERPRINT, @key1.sha1_fingerprint
|
205
205
|
assert_equal KEY2_SHA1_FINGERPRINT, @key2.sha1_fingerprint
|
206
206
|
assert_equal KEY3_SHA1_FINGERPRINT, @key3.sha1_fingerprint
|
207
|
-
|
207
|
+
|
208
208
|
assert_equal KEY1_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PRIVATE_KEY1)
|
209
209
|
assert_equal KEY1_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PUBLIC_KEY1)
|
210
210
|
assert_equal KEY2_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PRIVATE_KEY2)
|
211
211
|
assert_equal KEY2_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PUBLIC_KEY2)
|
212
212
|
assert_equal KEY3_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PRIVATE_KEY3)
|
213
213
|
assert_equal KEY3_MD5_FINGERPRINT, SSHKey.md5_fingerprint(SSH_PUBLIC_KEY3)
|
214
|
-
|
214
|
+
|
215
215
|
assert_equal KEY1_SHA1_FINGERPRINT, SSHKey.sha1_fingerprint(SSH_PRIVATE_KEY1)
|
216
216
|
assert_equal KEY1_SHA1_FINGERPRINT, SSHKey.sha1_fingerprint(SSH_PUBLIC_KEY1)
|
217
217
|
assert_equal KEY2_SHA1_FINGERPRINT, SSHKey.sha1_fingerprint(SSH_PRIVATE_KEY2)
|
@@ -220,6 +220,13 @@ EOF
|
|
220
220
|
assert_equal KEY3_SHA1_FINGERPRINT, SSHKey.sha1_fingerprint(SSH_PUBLIC_KEY3)
|
221
221
|
end
|
222
222
|
|
223
|
+
def test_bits
|
224
|
+
assert_equal 2048, @key1.bits
|
225
|
+
assert_equal 2048, @key2.bits
|
226
|
+
assert_equal 1024, @key3.bits
|
227
|
+
assert_equal 512, SSHKey.generate(bits: 512).bits
|
228
|
+
end
|
229
|
+
|
223
230
|
def test_to_byte_array
|
224
231
|
ba1 = @key1.send(:to_byte_array, 35)
|
225
232
|
ba2 = @key1.send(:to_byte_array, 65537)
|
metadata
CHANGED
@@ -1,34 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sshkey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
version: 1.3.3
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Miller
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
17
18
|
requirements:
|
18
|
-
- -
|
19
|
+
- - ! '>='
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
21
|
-
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
25
|
none: false
|
23
|
-
requirement: !ruby/object:Gem::Requirement
|
24
26
|
requirements:
|
25
|
-
- -
|
27
|
+
- - ! '>='
|
26
28
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
MA==
|
29
|
-
none: false
|
30
|
-
prerelease: false
|
31
|
-
type: :development
|
29
|
+
version: '0'
|
32
30
|
description: Generate private/public SSH keypairs using pure Ruby
|
33
31
|
email:
|
34
32
|
- bensie@gmail.com
|
@@ -36,8 +34,8 @@ executables: []
|
|
36
34
|
extensions: []
|
37
35
|
extra_rdoc_files: []
|
38
36
|
files:
|
39
|
-
-
|
40
|
-
-
|
37
|
+
- .gitignore
|
38
|
+
- .travis.yml
|
41
39
|
- Gemfile
|
42
40
|
- LICENSE
|
43
41
|
- README.md
|
@@ -48,28 +46,26 @@ files:
|
|
48
46
|
- test/sshkey_test.rb
|
49
47
|
homepage: https://github.com/bensie/sshkey
|
50
48
|
licenses: []
|
51
|
-
post_install_message:
|
49
|
+
post_install_message:
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
55
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
56
55
|
requirements:
|
57
|
-
- -
|
56
|
+
- - ! '>='
|
58
57
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
60
|
-
MA==
|
61
|
-
none: false
|
58
|
+
version: '0'
|
62
59
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
63
61
|
requirements:
|
64
|
-
- -
|
62
|
+
- - ! '>='
|
65
63
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
67
|
-
MA==
|
68
|
-
none: false
|
64
|
+
version: '0'
|
69
65
|
requirements: []
|
70
66
|
rubyforge_project: sshkey
|
71
|
-
rubygems_version: 1.8.
|
72
|
-
signing_key:
|
67
|
+
rubygems_version: 1.8.23
|
68
|
+
signing_key:
|
73
69
|
specification_version: 3
|
74
70
|
summary: SSH private/public key generator in Ruby
|
75
71
|
test_files:
|