c7decrypt 0.3.2 → 0.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.
- checksums.yaml +5 -5
- data/.travis.yml +5 -6
- data/README.md +9 -10
- data/c7decrypt.gemspec +12 -9
- data/lib/c7decrypt.rb +2 -2
- data/lib/c7decrypt/type5/constants.rb +22 -0
- data/lib/c7decrypt/{type5.rb → type5/type5.rb} +1 -11
- data/lib/c7decrypt/type7/constants.rb +21 -0
- data/lib/c7decrypt/type7/exceptions.rb +17 -0
- data/lib/c7decrypt/{type7.rb → type7/type7.rb} +34 -59
- data/lib/c7decrypt/version.rb +1 -1
- metadata +35 -39
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 5414ba28396bec8b61c6975d9e56447c70bee632ca56e5fa36e58f2d5b49d4ad
|
4
|
+
data.tar.gz: 934c7a66f176ef694920dd59b35579cadfb68374b62667fadfc79d37b0493717
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c56382b8acfecbd445cabca325d43181bd7f9ea71b7e20457a69816887a1e480469742ca19e2cfb61ea7b3a2d2b9789729a2c2836c6dde062e3a4c811adecced
|
7
|
+
data.tar.gz: 8ac4b6f4224376fb2f696acb0ea0661fb147f320012bc87faaa8e603716429bea457bd2462820924590959cc7b936740912a209cc23c59c2ffb146fbdcfb178c
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
# C7Decrypt
|
4
4
|
|
5
5
|
[](http://travis-ci.org/claudijd/c7decrypt)
|
6
|
-
[](https://gemnasium.com/claudijd/c7decrypt)
|
7
6
|
[](https://codeclimate.com/github/claudijd/c7decrypt)
|
7
|
+
[](https://coveralls.io/github/claudijd/c7decrypt?branch=master)
|
8
8
|
|
9
9
|
A Ruby-based implementation of a Cisco Type-7 Password Encryptor/Decryptor
|
10
10
|
|
@@ -24,6 +24,13 @@ To install, type
|
|
24
24
|
gem install c7decrypt
|
25
25
|
```
|
26
26
|
|
27
|
+
To install w/ "HighSecurity", type
|
28
|
+
|
29
|
+
```bash
|
30
|
+
gem cert --add <(curl -Ls https://raw.github.com/claudijd/c7decrypt/master/certs/claudijd.pem)
|
31
|
+
gem install c7decrypt -P HighSecurity
|
32
|
+
```
|
33
|
+
|
27
34
|
## Example Command-Line Usage
|
28
35
|
|
29
36
|
Run `c7decrypt -h` to get this
|
@@ -66,15 +73,7 @@ Encrypt Cisco Type-5 Password
|
|
66
73
|
|
67
74
|
## Rubies Supported
|
68
75
|
|
69
|
-
This project is integrated with [travis-ci](http://about.travis-ci.org/) and is regularly tested to work with the
|
70
|
-
|
71
|
-
* [2.1.3](https://github.com/ruby/ruby/tree/ruby_2_1)
|
72
|
-
* [2.1.0](https://github.com/ruby/ruby/tree/ruby_2_1)
|
73
|
-
* [2.0.0](https://github.com/ruby/ruby/tree/ruby_2_0_0)
|
74
|
-
* [1.9.3](https://github.com/ruby/ruby/tree/ruby_1_9_3)
|
75
|
-
* [ruby-head](https://github.com/ruby/ruby)
|
76
|
-
* [jruby-head](http://jruby.org/)
|
77
|
-
* [jruby-19mode](http://jruby.org/)
|
76
|
+
This project is integrated with [travis-ci](http://about.travis-ci.org/) and is regularly tested to work with the rubies defined [here](https://github.com/claudijd/c7decrypt/blob/master/.travis.yml).
|
78
77
|
|
79
78
|
To checkout the current build status for these rubies, click [here](https://travis-ci.org/#!/claudijd/c7decrypt).
|
80
79
|
|
data/c7decrypt.gemspec
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
$: << "lib"
|
2
2
|
require 'c7decrypt/version'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
5
6
|
s.name = 'c7decrypt'
|
6
7
|
s.version = C7Decrypt::VERSION
|
7
8
|
s.authors = ["Jonathan Claudius"]
|
8
|
-
s.date = Date.today.to_s
|
9
|
+
s.date = Date.today.to_s
|
9
10
|
s.email = 'claudijd@yahoo.com'
|
10
11
|
s.platform = Gem::Platform::RUBY
|
11
|
-
s.files = Dir.glob("lib/**/*") +
|
12
|
+
s.files = Dir.glob("lib/**/*") +
|
12
13
|
Dir.glob("bin/**/*") +
|
13
|
-
[".gitignore",
|
14
|
+
[".gitignore",
|
14
15
|
".rspec",
|
15
16
|
".travis.yml",
|
16
17
|
"CONTRIBUTING.md",
|
@@ -19,16 +20,18 @@ Gem::Specification.new do |s|
|
|
19
20
|
"README.md",
|
20
21
|
"Rakefile",
|
21
22
|
"c7decrypt.gemspec"]
|
23
|
+
s.license = "ruby"
|
22
24
|
s.require_paths = ["lib"]
|
23
25
|
s.executables = s.files.grep(%r{^bin/[^\/]+$}) { |f| File.basename(f) }
|
24
26
|
s.summary = 'Ruby based Cisco Password Encryptor/Decryptor'
|
25
|
-
s.description = 'A library for encrypting/decrypting Cisco passwords'
|
27
|
+
s.description = 'A library for encrypting/decrypting Cisco passwords'
|
26
28
|
s.homepage = 'http://rubygems.org/gems/c7decrypt'
|
27
29
|
s.cert_chain = ['certs/claudijd.pem']
|
28
|
-
s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
30
|
+
# s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
|
29
31
|
|
30
|
-
s.add_development_dependency('fuzzbert')
|
31
|
-
s.add_development_dependency('rspec', '~> 3.0
|
32
|
-
s.add_development_dependency('rspec-its')
|
33
|
-
s.add_development_dependency('rake')
|
32
|
+
s.add_development_dependency('fuzzbert', '~> 1.0')
|
33
|
+
s.add_development_dependency('rspec', '~> 3.0')
|
34
|
+
s.add_development_dependency('rspec-its', '~> 1.2')
|
35
|
+
s.add_development_dependency('rake', '~> 10.3')
|
36
|
+
s.add_development_dependency('coveralls')
|
34
37
|
end
|
data/lib/c7decrypt.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
require 'c7decrypt/version'
|
2
|
-
require 'c7decrypt/type7'
|
3
|
-
require 'c7decrypt/type5'
|
2
|
+
require 'c7decrypt/type7/type7'
|
3
|
+
require 'c7decrypt/type5/type5'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module C7Decrypt
|
2
|
+
module Type5
|
3
|
+
# Source Reference:
|
4
|
+
#
|
5
|
+
# The Ruby logic within this module was adapted
|
6
|
+
# directly from https://github.com/mogest/unix-crypt
|
7
|
+
#
|
8
|
+
# Copyright (c) 2013, Roger Nesbitt
|
9
|
+
# All rights reserved.
|
10
|
+
#
|
11
|
+
module Constants
|
12
|
+
BYTE_INDEXES = [
|
13
|
+
[0, 6, 12],
|
14
|
+
[1, 7, 13],
|
15
|
+
[2, 8, 14],
|
16
|
+
[3, 9, 15],
|
17
|
+
[4, 10, 5],
|
18
|
+
[nil, nil, 11]
|
19
|
+
]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'digest'
|
2
2
|
require 'securerandom'
|
3
|
+
require 'c7decrypt/type5/constants'
|
3
4
|
|
4
5
|
module C7Decrypt
|
5
6
|
module Type5
|
@@ -13,17 +14,6 @@ module C7Decrypt
|
|
13
14
|
# All rights reserved.
|
14
15
|
#
|
15
16
|
|
16
|
-
module Constants
|
17
|
-
BYTE_INDEXES = [
|
18
|
-
[0, 6, 12],
|
19
|
-
[1, 7, 13],
|
20
|
-
[2, 8, 14],
|
21
|
-
[3, 9, 15],
|
22
|
-
[4, 10, 5],
|
23
|
-
[nil, nil, 11]
|
24
|
-
]
|
25
|
-
end
|
26
|
-
|
27
17
|
# The Encryption Method for Cisco Type-5 Encrypted Strings
|
28
18
|
# @param [String] password
|
29
19
|
# @param [String] salt
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module C7Decrypt
|
2
|
+
module Type7
|
3
|
+
module Constants
|
4
|
+
# Vigenere translation table (these are our key values for decryption)
|
5
|
+
VT_TABLE = [
|
6
|
+
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e,
|
7
|
+
0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44,
|
8
|
+
0x48, 0x53, 0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36, 0x39,
|
9
|
+
0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76, 0x39, 0x38, 0x37, 0x33,
|
10
|
+
0x32, 0x35, 0x34, 0x6b, 0x3b, 0x66, 0x67, 0x38, 0x37
|
11
|
+
]
|
12
|
+
|
13
|
+
# Regexes for extracting hashes from configs
|
14
|
+
TYPE_7_REGEXES = [
|
15
|
+
/enable password 7 ([A-Z0-9]+)/,
|
16
|
+
/username [A-Z0-9]+ password 7 ([A-Z0-9]+)/,
|
17
|
+
/password 7 ([A-Z0-9]+)/
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module C7Decrypt
|
2
|
+
module Type7
|
3
|
+
module Exceptions
|
4
|
+
class InvalidFirstCharacter < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
class InvalidCharacter < StandardError
|
8
|
+
end
|
9
|
+
|
10
|
+
class OddNumberOfCharacters < StandardError
|
11
|
+
end
|
12
|
+
|
13
|
+
class InvalidEncryptionSeed < StandardError
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,41 +1,14 @@
|
|
1
|
+
require 'c7decrypt/type7/exceptions'
|
2
|
+
require 'c7decrypt/type7/constants'
|
3
|
+
|
1
4
|
module C7Decrypt
|
2
5
|
module Type7
|
3
|
-
|
4
|
-
module Constants
|
5
|
-
# Vigenere translation table (these are our key values for decryption)
|
6
|
-
VT_TABLE = [
|
7
|
-
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41, 0x2c, 0x2e,
|
8
|
-
0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44,
|
9
|
-
0x48, 0x53, 0x55, 0x42, 0x73, 0x67, 0x76, 0x63, 0x61, 0x36, 0x39,
|
10
|
-
0x38, 0x33, 0x34, 0x6e, 0x63, 0x78, 0x76, 0x39, 0x38, 0x37, 0x33,
|
11
|
-
0x32, 0x35, 0x34, 0x6b, 0x3b, 0x66, 0x67, 0x38, 0x37
|
12
|
-
]
|
13
|
-
|
14
|
-
# Regexes for extracting hashes from configs
|
15
|
-
TYPE_7_REGEXES = [
|
16
|
-
/enable password 7 ([A-Z0-9]+)/,
|
17
|
-
/username [A-Z0-9]+ password 7 ([A-Z0-9]+)/,
|
18
|
-
/password 7 ([A-Z0-9]+)/
|
19
|
-
]
|
20
|
-
end
|
21
|
-
|
22
|
-
class InvalidFirstCharacter < StandardError
|
23
|
-
end
|
24
|
-
|
25
|
-
class InvalidCharacter < StandardError
|
26
|
-
end
|
27
|
-
|
28
|
-
class OddNumberOfCharacters < StandardError
|
29
|
-
end
|
30
|
-
|
31
|
-
class InvalidEncryptionSeed < StandardError
|
32
|
-
end
|
33
6
|
|
34
7
|
# The Decryption Method for Cisco Type-7 Encrypted Strings
|
35
8
|
# @param [String] the Cisco Type-7 Encrypted String
|
36
|
-
# @raise [InvalidFirstCharacter,
|
37
|
-
# InvalidCharacter,
|
38
|
-
# OddNumberOfCharacters]
|
9
|
+
# @raise [Exceptions::InvalidFirstCharacter,
|
10
|
+
# Exceptions::InvalidCharacter,
|
11
|
+
# Exceptions::OddNumberOfCharacters]
|
39
12
|
# @return [String] the Decrypted String
|
40
13
|
def self.decrypt(e_text)
|
41
14
|
check_type_7_errors(e_text)
|
@@ -57,14 +30,14 @@ module C7Decrypt
|
|
57
30
|
# The Encryption Method for Cisco Type-7 Encrypted Strings
|
58
31
|
# @param [String] the plaintext password
|
59
32
|
# @param [String] the seed for the encryption used
|
60
|
-
# @raise [InvalidEncryptionSeed,
|
61
|
-
# InvalidFirstCharacter,
|
62
|
-
# InvalidCharacter,
|
63
|
-
# OddNumberOfCharacters]
|
33
|
+
# @raise [Exceptions::InvalidEncryptionSeed,
|
34
|
+
# Exceptions::InvalidFirstCharacter,
|
35
|
+
# Exceptions::InvalidCharacter,
|
36
|
+
# Exceptions::OddNumberOfCharacters]
|
64
37
|
# @return [String] the encrypted password
|
65
38
|
def self.encrypt(d_text, seed = 2)
|
66
39
|
check_seed(seed)
|
67
|
-
|
40
|
+
|
68
41
|
e_text = sprintf("%02d", seed)
|
69
42
|
|
70
43
|
d_text.each_char.each_with_index do |d_char,i|
|
@@ -96,9 +69,9 @@ module C7Decrypt
|
|
96
69
|
|
97
70
|
# A helper method to decrypt an arracy of Cisco Type-7 Encrypted Strings
|
98
71
|
# @param [Array>String] an array of Cisco Type-7 Encrypted Strings
|
99
|
-
# @raise [InvalidFirstCharacter,
|
100
|
-
# InvalidCharacter,
|
101
|
-
# OddNumberOfCharacters]
|
72
|
+
# @raise [Exceptions::InvalidFirstCharacter,
|
73
|
+
# Exceptions::InvalidCharacter,
|
74
|
+
# Exceptions::OddNumberOfCharacters]
|
102
75
|
# @return [Array>String] an array of Decrypted Strings
|
103
76
|
def self.decrypt_array(pw_array)
|
104
77
|
pw_array.collect {|pw| decrypt(pw)}
|
@@ -106,22 +79,22 @@ module C7Decrypt
|
|
106
79
|
|
107
80
|
# A helper method to encrypt an arracy of passwords
|
108
81
|
# @param [Array>String] an array of plain-text passwords
|
109
|
-
# @raise [InvalidEncryptionSeed,
|
110
|
-
# InvalidFirstCharacter,
|
111
|
-
# InvalidCharacter,
|
112
|
-
# OddNumberOfCharacters]
|
82
|
+
# @raise [Exceptions::InvalidEncryptionSeed,
|
83
|
+
# Exceptions::InvalidFirstCharacter,
|
84
|
+
# Exceptions::InvalidCharacter,
|
85
|
+
# Exceptions::OddNumberOfCharacters]
|
113
86
|
# @return [Array>String] an array of encrypted passwords
|
114
87
|
def self.encrypt_array(pt_array, seed = 2)
|
115
88
|
pt_array.collect {|pw| encrypt(pw, seed)}
|
116
89
|
end
|
117
90
|
|
118
|
-
# This method scans a raw config file for type 7 passwords and
|
91
|
+
# This method scans a raw config file for type 7 passwords and
|
119
92
|
# decrypts them
|
120
93
|
# @param [String] a string of the config file path that contains
|
121
94
|
# Cisco Type-7 Encrypted Strings
|
122
|
-
# @raise [InvalidFirstCharacter,
|
123
|
-
# InvalidCharacter,
|
124
|
-
# OddNumberOfCharacters]
|
95
|
+
# @raise [Exceptions::InvalidFirstCharacter,
|
96
|
+
# Exceptions::InvalidCharacter,
|
97
|
+
# Exceptions::OddNumberOfCharacters]
|
125
98
|
# @return [Array>String] an array of Decrypted Strings
|
126
99
|
def self.decrypt_config(file)
|
127
100
|
f = File.open(file, 'r').to_a
|
@@ -136,32 +109,34 @@ module C7Decrypt
|
|
136
109
|
Constants::TYPE_7_REGEXES.collect {|regex| string.scan(regex)}.flatten.uniq
|
137
110
|
end
|
138
111
|
|
139
|
-
# This method determines if an encrypted hash is corrupted/invalid
|
112
|
+
# This method determines if an encrypted hash is corrupted/invalid
|
140
113
|
# and throw a specific exeception
|
141
114
|
# @param [String] the Cisco Type-7 Encrypted String
|
142
|
-
# @raise [InvalidFirstCharacter,
|
115
|
+
# @raise [Exceptions::InvalidFirstCharacter,
|
116
|
+
# Exceptions::InvalidCharacter,
|
117
|
+
# Exceptions::OddNumberOfCharacters]
|
143
118
|
# @return [Nil]
|
144
119
|
def self.check_type_7_errors(e_text)
|
145
|
-
|
120
|
+
|
146
121
|
valid_first_chars = (0..15).to_a.collect {|c| sprintf("%02d", c)}
|
147
122
|
first_char = e_text[0,2]
|
148
123
|
|
149
124
|
# Check for an invalid first character in the has
|
150
125
|
unless valid_first_chars.include? first_char
|
151
|
-
raise InvalidFirstCharacter,
|
126
|
+
raise Exceptions::InvalidFirstCharacter,
|
152
127
|
"'#{e_text}' hash contains an invalid first chracter (only '00' - '15' allowed)"
|
153
128
|
end
|
154
129
|
|
155
130
|
# Check for an invalid character in the hash
|
156
131
|
unless e_text.match(/^[A-Z0-9]+$/)
|
157
|
-
raise InvalidCharacter,
|
132
|
+
raise Exceptions::InvalidCharacter,
|
158
133
|
"'#{e_text}' hash contains an invalid character (only upper-alpha numeric allowed)"
|
159
134
|
end
|
160
135
|
|
161
136
|
# Check for an odd number of characters in the hash
|
162
137
|
unless e_text.size % 2 == 0
|
163
|
-
raise OddNumberOfCharacters,
|
164
|
-
"'#{e_text}' hash contains odd length of chars (only even number of chars allowed)"
|
138
|
+
raise Exceptions::OddNumberOfCharacters,
|
139
|
+
"'#{e_text}' hash contains odd length of chars (only even number of chars allowed)"
|
165
140
|
end
|
166
141
|
|
167
142
|
return nil
|
@@ -171,13 +146,13 @@ module C7Decrypt
|
|
171
146
|
# This method determines if an encryption seed is valid or not
|
172
147
|
# and throw a specific exeception
|
173
148
|
# @param [FixNum] the seed used in the encryption process
|
174
|
-
# @raise [InvalidEncryptionSeed]
|
149
|
+
# @raise [Exceptions::InvalidEncryptionSeed]
|
175
150
|
# @return [Nil]
|
176
151
|
def self.check_seed(seed)
|
177
152
|
if seed < 0 ||
|
178
153
|
seed > 15
|
179
|
-
|
180
|
-
raise InvalidEncryptionSeed,
|
154
|
+
|
155
|
+
raise Exceptions::InvalidEncryptionSeed,
|
181
156
|
"'#{seed.to_s}' seed is not a valid seed (only 0 - 15 allowed)"
|
182
157
|
end
|
183
158
|
|
data/lib/c7decrypt/version.rb
CHANGED
metadata
CHANGED
@@ -1,81 +1,74 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c7decrypt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Claudius
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
|
-
-
|
12
|
-
|
13
|
-
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MREwDwYDVQQDDAhjbGF1
|
14
|
-
ZGlqZDEVMBMGCgmSJomT8ixkARkWBXlhaG9vMRMwEQYKCZImiZPyLGQBGRYDY29t
|
15
|
-
MB4XDTE0MTIxOTE4MzkxOVoXDTE1MTIxOTE4MzkxOVowPzERMA8GA1UEAwwIY2xh
|
16
|
-
dWRpamQxFTATBgoJkiaJk/IsZAEZFgV5YWhvbzETMBEGCgmSJomT8ixkARkWA2Nv
|
17
|
-
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPJYhex3xS5rsgKZnXNK
|
18
|
-
Bo3/++yub5QJ6e7cNrEpypqL/kh4aKX99779Uiw2vJAQ6E9LH+t53Cip+t6nDWkg
|
19
|
-
47FzbH4M7k1ZLKSSKxpWC2qk5mWMAVvyVGvWojM9QGPCIk86pfUGfO2nsOq3whXD
|
20
|
-
q0FhBF40ZZnYTuIUbiXTkdQnsOor1WMcagLXS8PFVtOrZ/tCghvSy2dIQFiyTBnb
|
21
|
-
3cz/hEf/Xq6Cx4IBGPWyqGnvD+3RGvmTK1V4ze4MCLBfyc4gWu6mJVAEN0lleJck
|
22
|
-
BuiLNW8hs72474B6VKtJaaDA8B/9kTQnoZ7Fa5YJo/GbaYUqItcy6jHSCT0rWJXA
|
23
|
-
LP8CAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFFZi
|
24
|
-
drho+yUOaenpeDftNILNdfGJMB0GA1UdEQQWMBSBEmNsYXVkaWpkQHlhaG9vLmNv
|
25
|
-
bTAdBgNVHRIEFjAUgRJjbGF1ZGlqZEB5YWhvby5jb20wDQYJKoZIhvcNAQEFBQAD
|
26
|
-
ggEBAGPQew4aW3rpPNzen7yJCng88CXjrBHcCZ6NgwV4sFKqGzKMwuP+RiDeSdx7
|
27
|
-
wdjM9wRtYcgKusVifjUhzmSWNd2O1s/osZY9UWXFKRwhMuk7jtepzx3G+6ptGoFF
|
28
|
-
9deFhOXTJ1y6/JEDQDt7ndqcqoEkE4iPVEUlMxuNx5XxnXtaOMMiQDm21l72K+ZQ
|
29
|
-
jQuNssCu6elWT8ctrme4nmVn2CK74aTVxCsNgtfDMd/1gwHGfnkdWY5Fq+U81uWt
|
30
|
-
2Gsrg58uhzB8auXnyQj1csrXR4q84eYMXQFdhGUr/grHSy2kBkyWkzS0iYqwsTzv
|
31
|
-
ho7/RMjGipku8I9m88xT0YfDq5E=
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2014-12-19 00:00:00.000000000 Z
|
11
|
+
- certs/claudijd.pem
|
12
|
+
date: 2019-01-16 00:00:00.000000000 Z
|
34
13
|
dependencies:
|
35
14
|
- !ruby/object:Gem::Dependency
|
36
15
|
name: fuzzbert
|
37
16
|
requirement: !ruby/object:Gem::Requirement
|
38
17
|
requirements:
|
39
|
-
- - "
|
18
|
+
- - "~>"
|
40
19
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
20
|
+
version: '1.0'
|
42
21
|
type: :development
|
43
22
|
prerelease: false
|
44
23
|
version_requirements: !ruby/object:Gem::Requirement
|
45
24
|
requirements:
|
46
|
-
- - "
|
25
|
+
- - "~>"
|
47
26
|
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
27
|
+
version: '1.0'
|
49
28
|
- !ruby/object:Gem::Dependency
|
50
29
|
name: rspec
|
51
30
|
requirement: !ruby/object:Gem::Requirement
|
52
31
|
requirements:
|
53
32
|
- - "~>"
|
54
33
|
- !ruby/object:Gem::Version
|
55
|
-
version: 3.0
|
34
|
+
version: '3.0'
|
56
35
|
type: :development
|
57
36
|
prerelease: false
|
58
37
|
version_requirements: !ruby/object:Gem::Requirement
|
59
38
|
requirements:
|
60
39
|
- - "~>"
|
61
40
|
- !ruby/object:Gem::Version
|
62
|
-
version: 3.0
|
41
|
+
version: '3.0'
|
63
42
|
- !ruby/object:Gem::Dependency
|
64
43
|
name: rspec-its
|
65
44
|
requirement: !ruby/object:Gem::Requirement
|
66
45
|
requirements:
|
67
|
-
- - "
|
46
|
+
- - "~>"
|
68
47
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
48
|
+
version: '1.2'
|
70
49
|
type: :development
|
71
50
|
prerelease: false
|
72
51
|
version_requirements: !ruby/object:Gem::Requirement
|
73
52
|
requirements:
|
74
|
-
- - "
|
53
|
+
- - "~>"
|
75
54
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
55
|
+
version: '1.2'
|
77
56
|
- !ruby/object:Gem::Dependency
|
78
57
|
name: rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '10.3'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '10.3'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: coveralls
|
79
72
|
requirement: !ruby/object:Gem::Requirement
|
80
73
|
requirements:
|
81
74
|
- - ">="
|
@@ -106,11 +99,15 @@ files:
|
|
106
99
|
- bin/c7decrypt
|
107
100
|
- c7decrypt.gemspec
|
108
101
|
- lib/c7decrypt.rb
|
109
|
-
- lib/c7decrypt/type5.rb
|
110
|
-
- lib/c7decrypt/
|
102
|
+
- lib/c7decrypt/type5/constants.rb
|
103
|
+
- lib/c7decrypt/type5/type5.rb
|
104
|
+
- lib/c7decrypt/type7/constants.rb
|
105
|
+
- lib/c7decrypt/type7/exceptions.rb
|
106
|
+
- lib/c7decrypt/type7/type7.rb
|
111
107
|
- lib/c7decrypt/version.rb
|
112
108
|
homepage: http://rubygems.org/gems/c7decrypt
|
113
|
-
licenses:
|
109
|
+
licenses:
|
110
|
+
- ruby
|
114
111
|
metadata: {}
|
115
112
|
post_install_message:
|
116
113
|
rdoc_options: []
|
@@ -127,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
124
|
- !ruby/object:Gem::Version
|
128
125
|
version: '0'
|
129
126
|
requirements: []
|
130
|
-
|
131
|
-
rubygems_version: 2.2.2
|
127
|
+
rubygems_version: 3.0.2
|
132
128
|
signing_key:
|
133
129
|
specification_version: 4
|
134
130
|
summary: Ruby based Cisco Password Encryptor/Decryptor
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1����33���8���Vg�o;�\�2t��'�EC9�,!�ot�H������F��I,�q5��(�[�<<>d\P�\���0I,������s�bu�I���k������V4\��9���!arF���f��SF�BBD��\�s�fu`0&�v)�L�RL�3�A�
|
metadata.gz.sig
DELETED
Binary file
|