ssh-keys 0.1.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.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +20 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/lib/ssh-keys.rb +31 -0
- data/spec/fixtures/dsa +12 -0
- data/spec/fixtures/dsa.pub +1 -0
- data/spec/fixtures/rsa +27 -0
- data/spec/fixtures/rsa.pub +1 -0
- data/spec/fixtures/rsa1 +0 -0
- data/spec/fixtures/rsa1.pub +1 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/ssh-keys_spec.rb +78 -0
- metadata +80 -0
data/.document
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2009 Alan Harper
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
= ssh-keys
|
|
2
|
+
|
|
3
|
+
Process SSH Keys from Ruby
|
|
4
|
+
|
|
5
|
+
Pass the key string to Aussieggeek::SshKey#new, and it will return an object with its details, or raise Aussiegeek::SshKey::InvalidKey if its invalid.
|
|
6
|
+
|
|
7
|
+
== Note on Patches/Pull Requests
|
|
8
|
+
|
|
9
|
+
* Fork the project.
|
|
10
|
+
* Make your feature addition or bug fix.
|
|
11
|
+
* Add tests for it. This is important so I don't break it in a
|
|
12
|
+
future version unintentionally.
|
|
13
|
+
* Commit, do not mess with rakefile, version, or history.
|
|
14
|
+
(if you want to have your own version, that is fine but
|
|
15
|
+
bump version in a commit by itself I can ignore when I pull)
|
|
16
|
+
* Send me a pull request. Bonus points for topic branches.
|
|
17
|
+
|
|
18
|
+
== Copyright
|
|
19
|
+
|
|
20
|
+
Copyright (c) 2009 Alan Harper. See LICENSE for details.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake'
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'jeweler'
|
|
6
|
+
Jeweler::Tasks.new do |gem|
|
|
7
|
+
gem.name = "ssh-keys"
|
|
8
|
+
gem.summary = %Q{Manage SSH Keys from Ruby}
|
|
9
|
+
gem.description = %Q{Read SSH Keys, check they are valid, read fingerprints}
|
|
10
|
+
gem.email = "alan@aussiegeek.net"
|
|
11
|
+
gem.homepage = "http://github.com/aussiegeek/ssh-keys"
|
|
12
|
+
gem.authors = ["Alan Harper"]
|
|
13
|
+
gem.add_development_dependency "rspec"
|
|
14
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
15
|
+
end
|
|
16
|
+
Jeweler::GemcutterTasks.new
|
|
17
|
+
rescue LoadError
|
|
18
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
require 'spec/rake/spectask'
|
|
22
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
|
23
|
+
spec.libs << 'lib' << 'spec'
|
|
24
|
+
spec.spec_files = FileList['spec/**/*_spec.rb', 'spec/fixtures/*']
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
|
28
|
+
spec.libs << 'lib' << 'spec'
|
|
29
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
|
30
|
+
spec.rcov = true
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
task :spec => :check_dependencies
|
|
34
|
+
|
|
35
|
+
task :default => :spec
|
|
36
|
+
|
|
37
|
+
require 'rake/rdoctask'
|
|
38
|
+
Rake::RDocTask.new do |rdoc|
|
|
39
|
+
if File.exist?('VERSION')
|
|
40
|
+
version = File.read('VERSION')
|
|
41
|
+
else
|
|
42
|
+
version = ""
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
46
|
+
rdoc.title = "ssh-keys #{version}"
|
|
47
|
+
rdoc.rdoc_files.include('README*')
|
|
48
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
49
|
+
end
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.0
|
data/lib/ssh-keys.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'tempfile'
|
|
2
|
+
|
|
3
|
+
module Aussiegeek
|
|
4
|
+
class SshKey
|
|
5
|
+
class InvalidKey < StandardError; end
|
|
6
|
+
attr_reader :key_type, :key_length, :fingerprint, :comment
|
|
7
|
+
|
|
8
|
+
def initialize(ssh_key)
|
|
9
|
+
if ssh_key.match /\n/
|
|
10
|
+
raise InvalidKey
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
if ssh_key.length < 64
|
|
14
|
+
raise InvalidKey
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
tmpfile = Tempfile.new('ruby_ssh-key' + Time.now.to_i.to_s)
|
|
18
|
+
tmpfile << ssh_key
|
|
19
|
+
tmpfile.close
|
|
20
|
+
output = `ssh-keygen -l -f #{tmpfile.path}`
|
|
21
|
+
status = $?.to_i
|
|
22
|
+
if status > 0
|
|
23
|
+
raise InvalidKey
|
|
24
|
+
end
|
|
25
|
+
@key_length, @fingerprint, @path, @key_type = output.split(' ')
|
|
26
|
+
@key_length = @key_length.to_i
|
|
27
|
+
@key_type = @key_type.match(/[a-zA-Z0-9]+/)[0].downcase
|
|
28
|
+
tmpfile.unlink
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/spec/fixtures/dsa
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-----BEGIN DSA PRIVATE KEY-----
|
|
2
|
+
MIIBvAIBAAKBgQDWMR4XsgO1qoXpb3EDUlmdgE3CtIY334aWe8NmEUszT5Ys2627
|
|
3
|
+
liCoaCXurZMxyfEZLmzl9C0X1tSMseeZMKuSPbx5BwyUU6hFL6emc9gN9L3r1R4I
|
|
4
|
+
za8Br9xU39JhXnhqje0kM2w6D5l3MGSQy0mrIGEzBkeGynfy2jr8W3QDIQIVAPKf
|
|
5
|
+
QSekt5s4zEgMKbparnacKqQLAoGBAKEnjyuEVMNX9rm7Jg2fDAmHGfqY/26EDrUc
|
|
6
|
+
Vb4CFRLDKtiUe4x4a7ZSseQy2HCpUPlW8Jz81ToHNF1ay7Z1vNpX10OEMvU6daoA
|
|
7
|
+
CwSOs6n3t/KqB1+tnJ/GVe/+Zz00qYzPIje3G4mM9ChLzuVeAIKwm2bqAUOsdIla
|
|
8
|
+
8o5eDn2XAoGAdnOkhHAcLw6iDuiorrU4pE83TC4cFIUS7+31vXIqMi87dXP2nAIR
|
|
9
|
+
jkPfTTn9+gwP6KG5N7Bf1N6byvGpRB7wnVcN1Bl//45vR00ekwfzyM5LzCph+mrv
|
|
10
|
+
q6XTL6L80quZUf1+QLsHFTN90CI1f8b0QjqOmulnnnw1t23yKw9rAa0CFQCcE4mY
|
|
11
|
+
DHg2riZ2rNrWIHdRnQ+ltw==
|
|
12
|
+
-----END DSA PRIVATE KEY-----
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ssh-dss AAAAB3NzaC1kc3MAAACBANYxHheyA7WqhelvcQNSWZ2ATcK0hjffhpZ7w2YRSzNPlizbrbuWIKhoJe6tkzHJ8RkubOX0LRfW1Iyx55kwq5I9vHkHDJRTqEUvp6Zz2A30vevVHgjNrwGv3FTf0mFeeGqN7SQzbDoPmXcwZJDLSasgYTMGR4bKd/LaOvxbdAMhAAAAFQDyn0EnpLebOMxIDCm6Wq52nCqkCwAAAIEAoSePK4RUw1f2ubsmDZ8MCYcZ+pj/boQOtRxVvgIVEsMq2JR7jHhrtlKx5DLYcKlQ+VbwnPzVOgc0XVrLtnW82lfXQ4Qy9Tp1qgALBI6zqfe38qoHX62cn8ZV7/5nPTSpjM8iN7cbiYz0KEvO5V4AgrCbZuoBQ6x0iVryjl4OfZcAAACAdnOkhHAcLw6iDuiorrU4pE83TC4cFIUS7+31vXIqMi87dXP2nAIRjkPfTTn9+gwP6KG5N7Bf1N6byvGpRB7wnVcN1Bl//45vR00ekwfzyM5LzCph+mrvq6XTL6L80quZUf1+QLsHFTN90CI1f8b0QjqOmulnnnw1t23yKw9rAa0= alan@Nibbler.local
|
data/spec/fixtures/rsa
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
+
MIIEogIBAAKCAQEAu9l5Vlc0g8QefXEhOZ8F0ma3Ea0STP0gGkq8MPsjNhtksB58
|
|
3
|
+
YxyOfdQFF1jdSAb1F8OfzQOsnTxepN0LEBKhEbUPxD2FBcHUvKUcl0q75rSwdlbk
|
|
4
|
+
d+lx4FRARIf3siQwVatfHI6XWYSX3nM/hu2/LXq8oxRxYLdmHaq2khzBW9ZpF0i1
|
|
5
|
+
FcaC77rxSXbW6FjGyebtGnsKEn8uTFxXhlEQBFb+DKw31KzAOfPNXzMLuXA5kyMG
|
|
6
|
+
qIGq5vdp82js71enyvsHIYzuYddS84tRVXDgKR8nOXtCpzB9SmV+bjKj3H67cl3D
|
|
7
|
+
5lEjWLpw+IpwCjqSCC26yBHJgXBXUPBnbnt+EQIBIwKCAQAwTd1fWEC0Kx3IfC0d
|
|
8
|
+
cgjPtAMwblUpvW6nrNFObHbExTcl+TXtmaD7yM4b8keHjMKuVt/y47ALLMfhQCdq
|
|
9
|
+
iHKPhlSC6z92gkyliYsCVQu++0NRoVCxHsWC09YC/mRDwCmvoRh1Drk0Rqq1i1l6
|
|
10
|
+
d6YwRCHgyr4Rjj7UbbnrDrVgwalWo4VSHRnGzOH4TUgChqwWJHApqh2GU2vAOZtA
|
|
11
|
+
Z8srkjW1JSNDlSbd93yifO7YlSV9BEYSymNeJuuJ3lD8vakNKhULhsi66OAWTojR
|
|
12
|
+
EFZiHHvrn3GvoRitF25vPNxcyMP8f79dlswiTmNcePqtOxjJfvGsTovXF7dsTUkx
|
|
13
|
+
VHC3AoGBAPjmkeMYwG2qKmhDCfpvP6uYos2M4CrgAI7+iYSAEeR+r83xLUKVZ2mS
|
|
14
|
+
4AyzjMTpPrzGY31V8mXsBeONeq86W45APOwBbCtDCKHz0hhpaCpR2ByC2WzDrMi3
|
|
15
|
+
7wHe1zopTfx40fL1UvzOba//dhlTvuVh70Ns9QaJJak3txGX5e0XAoGBAME1HnYv
|
|
16
|
+
eHgkAf3PB28Z8O++tmtdWqVEj4p+uekLx/j4p3uwYE+qOjFH34alh4mF7Xk7584l
|
|
17
|
+
7ftwWitNxpD6jE87GnPzTX2dRRCo+ZaikEl2LZqUGVSqShu4cLKl4IKDQG948FqF
|
|
18
|
+
CQyvjbBYkzKGldp6NFm9B7+XYDoet3IWvvcXAoGAHHIfTSdmcu7gRm4PxNmDnpUZ
|
|
19
|
+
65sSTgr4v+KTX5mbpRXK8vb927lNpapiv599zVx8MtTYK5TLPtklPpPTgb2Gzm29
|
|
20
|
+
0dRG4F9us2xShnJyTfq5nNvBE76XZ2V6Zp0f6WPOZf8t7+GF07/SBXxIAuT/37Nr
|
|
21
|
+
zTEGD2Ahj66YlEvfw1MCgYEAhHwyJSfdlDXyvKs4TC8LnRUPX5B4q9c920+VbJpd
|
|
22
|
+
PQJG9brFsvhiau90tBm8Boe4yCkT+xKx0PyVmglyN4c7pAtFVtK4yyoDeSNpUVmH
|
|
23
|
+
gtSxjpFwdJIG7m/YP/y3NOxJcQJ47Z0NhQqqTQmJgbtfcT3awTEp4nZt3rX6Ili9
|
|
24
|
+
djsCgYEA5Z7TmSkeAKGn6fYQj0CXRvVYdE5JFNy5M7uOoajagMfNollI6I/jEXy0
|
|
25
|
+
wwV+BdWCu7mBv5K3c2HAUX/QPzC9/RF7RpQMlTx0gKGCYacPSpRkAUQ+wktaMULc
|
|
26
|
+
5YjE8VFRA3INzn4nnPzF34rJugV+Lh5ETMvUo79XUUZp4yaBJbA=
|
|
27
|
+
-----END RSA PRIVATE KEY-----
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu9l5Vlc0g8QefXEhOZ8F0ma3Ea0STP0gGkq8MPsjNhtksB58YxyOfdQFF1jdSAb1F8OfzQOsnTxepN0LEBKhEbUPxD2FBcHUvKUcl0q75rSwdlbkd+lx4FRARIf3siQwVatfHI6XWYSX3nM/hu2/LXq8oxRxYLdmHaq2khzBW9ZpF0i1FcaC77rxSXbW6FjGyebtGnsKEn8uTFxXhlEQBFb+DKw31KzAOfPNXzMLuXA5kyMGqIGq5vdp82js71enyvsHIYzuYddS84tRVXDgKR8nOXtCpzB9SmV+bjKj3H67cl3D5lEjWLpw+IpwCjqSCC26yBHJgXBXUPBnbnt+EQ== alan@Nibbler.local
|
data/spec/fixtures/rsa1
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2048 35 28949829256666495327055203808783564703290559194908718746265980847605543577063188549312458206643537409762851897701354095163160190205466598052061208489685449682279573413558344269285882370698563577428032229724455885452739156766425911993017437918774525170718984198334443333014655220064685623480808624143666105447032634001976981200163463137398812221145813893410549390569709006669712458058567512601416859202411346657224522766330533328884824873381922224709799360523719086235718822197002436590478198672485152026564300632186154063468070725722437239114558123196813477774459564825237317125941572363142944588989514980408611614099 alan@Nibbler.local
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
|
+
|
|
3
|
+
describe "SshKeys" do
|
|
4
|
+
context "check key validity" do
|
|
5
|
+
it "should fail when its just not a key" do
|
|
6
|
+
lambda {Aussiegeek::SshKey.new('not a key')}.should raise_error(Aussiegeek::SshKey::InvalidKey)
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "shouldn't allow a key with a newline in it" do
|
|
11
|
+
key="ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu9l5Vlc0g8QefXEhOZ8F0ma3
|
|
12
|
+
Ea0STP0gGkq8MPsjNhtksB58YxyOfdQFF1jdSAb1F8OfzQOsnTxepN0LEBKhEbUPxD2FBcHUvKUcl0q75rSwdlbkd+lx4FRARIf3siQwVatfHI6XWYSX3nM/hu2/LXq8oxRxYLdmHaq2khzBW9ZpF0i1FcaC77rxSXbW6FjGyebtGnsKEn8uTFxXhlEQBFb+DKw31KzAOfPNXzMLuXA5kyMGqIGq5vdp82js71enyvsHIYzuYddS84tRVXDgKR8nOXtCpzB9SmV+bjKj3H67cl3D5lEjWLpw+IpwCjqSCC26yBHJgXBXUPBnbnt+EQ== alan@Nibbler.local"
|
|
13
|
+
lambda {Aussiegeek::SshKey.new(key)}.should raise_error(Aussiegeek::SshKey::InvalidKey)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "shouldn't allow a key less than 64 characters" do
|
|
17
|
+
lambda {Aussiegeek::SshKey.new('short')}.should raise_error(Aussiegeek::SshKey::InvalidKey)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "shoudn't allow a key that has extra fluff" do
|
|
21
|
+
lambda {Aussiegeek::SshKey.new('extrafluffssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu9l5Vlc0g8QefXEhOZ8F0ma3Ea0STP0gGkq8MPsjNhtksB58YxyOfdQFF1jdSAb1F8OfzQOsnTxepN0LEBKhEbUPxD2FBcHUvKUcl0q75rSwdlbkd+lx4FRARIf3siQwVatfHI6XWYSX3nM/hu2/LXq8oxRxYLdmHaq2khzBW9ZpF0i1FcaC77rxSXbW6FjGyebtGnsKEn8uTFxXhlEQBFb+DKw31KzAOfPNXzMLuXA5kyMGqIGq5vdp82js71enyvsHIYzuYddS84tRVXDgKR8nOXtCpzB9SmV+bjKj3H67cl3D5lEjWLpw+IpwCjqSCC26yBHJgXBXUPBnbnt+EQ== alan@Nibbler.local')}.should raise_error(Aussiegeek::SshKey::InvalidKey)
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context "get key info (rsa)" do
|
|
26
|
+
before do
|
|
27
|
+
@ssh_key = Aussiegeek::SshKey.new('ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAu9l5Vlc0g8QefXEhOZ8F0ma3Ea0STP0gGkq8MPsjNhtksB58YxyOfdQFF1jdSAb1F8OfzQOsnTxepN0LEBKhEbUPxD2FBcHUvKUcl0q75rSwdlbkd+lx4FRARIf3siQwVatfHI6XWYSX3nM/hu2/LXq8oxRxYLdmHaq2khzBW9ZpF0i1FcaC77rxSXbW6FjGyebtGnsKEn8uTFxXhlEQBFb+DKw31KzAOfPNXzMLuXA5kyMGqIGq5vdp82js71enyvsHIYzuYddS84tRVXDgKR8nOXtCpzB9SmV+bjKj3H67cl3D5lEjWLpw+IpwCjqSCC26yBHJgXBXUPBnbnt+EQ== alan@Nibbler.local')
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should return key type" do
|
|
31
|
+
@ssh_key.key_type.should == 'rsa'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "should return key length" do
|
|
35
|
+
@ssh_key.key_length.should == 2048
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should return key fingerprint" do
|
|
39
|
+
@ssh_key.fingerprint.should == '6a:2f:6c:4e:ba:3f:3f:2c:e5:5b:29:5a:e3:69:be:93'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
context "get key info (rsa1)" do
|
|
44
|
+
before do
|
|
45
|
+
@ssh_key = Aussiegeek::SshKey.new('2048 35 28949829256666495327055203808783564703290559194908718746265980847605543577063188549312458206643537409762851897701354095163160190205466598052061208489685449682279573413558344269285882370698563577428032229724455885452739156766425911993017437918774525170718984198334443333014655220064685623480808624143666105447032634001976981200163463137398812221145813893410549390569709006669712458058567512601416859202411346657224522766330533328884824873381922224709799360523719086235718822197002436590478198672485152026564300632186154063468070725722437239114558123196813477774459564825237317125941572363142944588989514980408611614099 alan@Nibbler.local')
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "should return key type" do
|
|
49
|
+
@ssh_key.key_type.should == 'rsa1'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should return key length" do
|
|
53
|
+
@ssh_key.key_length.should == 2048
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "should return key fingerprint" do
|
|
57
|
+
@ssh_key.fingerprint.should == 'e1:3c:4b:90:08:3e:c3:e5:77:4f:77:c9:c2:0f:b1:90'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
context "get key info (dsa)" do
|
|
62
|
+
before do
|
|
63
|
+
@ssh_key = Aussiegeek::SshKey.new('ssh-dss AAAAB3NzaC1kc3MAAACBANYxHheyA7WqhelvcQNSWZ2ATcK0hjffhpZ7w2YRSzNPlizbrbuWIKhoJe6tkzHJ8RkubOX0LRfW1Iyx55kwq5I9vHkHDJRTqEUvp6Zz2A30vevVHgjNrwGv3FTf0mFeeGqN7SQzbDoPmXcwZJDLSasgYTMGR4bKd/LaOvxbdAMhAAAAFQDyn0EnpLebOMxIDCm6Wq52nCqkCwAAAIEAoSePK4RUw1f2ubsmDZ8MCYcZ+pj/boQOtRxVvgIVEsMq2JR7jHhrtlKx5DLYcKlQ+VbwnPzVOgc0XVrLtnW82lfXQ4Qy9Tp1qgALBI6zqfe38qoHX62cn8ZV7/5nPTSpjM8iN7cbiYz0KEvO5V4AgrCbZuoBQ6x0iVryjl4OfZcAAACAdnOkhHAcLw6iDuiorrU4pE83TC4cFIUS7+31vXIqMi87dXP2nAIRjkPfTTn9+gwP6KG5N7Bf1N6byvGpRB7wnVcN1Bl//45vR00ekwfzyM5LzCph+mrvq6XTL6L80quZUf1+QLsHFTN90CI1f8b0QjqOmulnnnw1t23yKw9rAa0= alan@Nibbler.local')
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "should return key type" do
|
|
67
|
+
@ssh_key.key_type.should == 'dsa'
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "should return key length" do
|
|
71
|
+
@ssh_key.key_length.should == 1024
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should return key fingerprint" do
|
|
75
|
+
@ssh_key.fingerprint.should == 'ab:7c:75:e6:85:f2:3b:4f:1f:c8:90:86:01:73:47:05'
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ssh-keys
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Alan Harper
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2009-10-18 00:00:00 +10:00
|
|
13
|
+
default_executable:
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: rspec
|
|
17
|
+
type: :development
|
|
18
|
+
version_requirement:
|
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
20
|
+
requirements:
|
|
21
|
+
- - ">="
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: "0"
|
|
24
|
+
version:
|
|
25
|
+
description: Read SSH Keys, check they are valid, read fingerprints
|
|
26
|
+
email: alan@aussiegeek.net
|
|
27
|
+
executables: []
|
|
28
|
+
|
|
29
|
+
extensions: []
|
|
30
|
+
|
|
31
|
+
extra_rdoc_files:
|
|
32
|
+
- LICENSE
|
|
33
|
+
- README.rdoc
|
|
34
|
+
files:
|
|
35
|
+
- .document
|
|
36
|
+
- .gitignore
|
|
37
|
+
- LICENSE
|
|
38
|
+
- README.rdoc
|
|
39
|
+
- Rakefile
|
|
40
|
+
- VERSION
|
|
41
|
+
- lib/ssh-keys.rb
|
|
42
|
+
- spec/fixtures/dsa
|
|
43
|
+
- spec/fixtures/dsa.pub
|
|
44
|
+
- spec/fixtures/rsa
|
|
45
|
+
- spec/fixtures/rsa.pub
|
|
46
|
+
- spec/fixtures/rsa1
|
|
47
|
+
- spec/fixtures/rsa1.pub
|
|
48
|
+
- spec/spec_helper.rb
|
|
49
|
+
- spec/ssh-keys_spec.rb
|
|
50
|
+
has_rdoc: true
|
|
51
|
+
homepage: http://github.com/aussiegeek/ssh-keys
|
|
52
|
+
licenses: []
|
|
53
|
+
|
|
54
|
+
post_install_message:
|
|
55
|
+
rdoc_options:
|
|
56
|
+
- --charset=UTF-8
|
|
57
|
+
require_paths:
|
|
58
|
+
- lib
|
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
|
+
requirements:
|
|
61
|
+
- - ">="
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: "0"
|
|
64
|
+
version:
|
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - ">="
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: "0"
|
|
70
|
+
version:
|
|
71
|
+
requirements: []
|
|
72
|
+
|
|
73
|
+
rubyforge_project:
|
|
74
|
+
rubygems_version: 1.3.5
|
|
75
|
+
signing_key:
|
|
76
|
+
specification_version: 3
|
|
77
|
+
summary: Manage SSH Keys from Ruby
|
|
78
|
+
test_files:
|
|
79
|
+
- spec/spec_helper.rb
|
|
80
|
+
- spec/ssh-keys_spec.rb
|