password_list_generator 0.4.4 → 0.4.5
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +1 -0
- data/Guardfile +1 -1
- data/README.md +12 -5
- data/bin/pwgen +20 -14
- data/certs/stephaneliu_gem.pem +21 -0
- data/lib/password_list_generator/generator.rb +25 -16
- data/lib/password_list_generator/version.rb +1 -1
- data/password_list_generator.gemspec +2 -3
- data/spec/generator_spec.rb +86 -0
- metadata +22 -20
- metadata.gz.sig +0 -0
- data/certs/stephaneliu.pem +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bdd1cef551224b9ebf74dec8a0821d389944a07
|
4
|
+
data.tar.gz: 40baf3adb4abbce4ffcab230ca45d7dee295ce2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09525abe4be43b69596b119a294e388ad262a2dac5777bbd7667365803795fb9488566f5ca6fda1e331ced6e534e02854e3c7d88833c84d142157699105242c9
|
7
|
+
data.tar.gz: a7837d70e510f2a5772534759ada21100efd9d9bcda39a8a4c0774e306d2551abfced25b1d959319db8a3461456d03002be08ce396ce3531b7fb21843a04274d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.gitignore
CHANGED
data/Guardfile
CHANGED
@@ -9,8 +9,8 @@ guard :minitest do
|
|
9
9
|
|
10
10
|
# with Minitest::Spec
|
11
11
|
watch(%r{^spec/(.*)_spec\.rb})
|
12
|
+
watch(%r{^lib/password_list_generator/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
12
13
|
watch(%r{^lib/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
13
|
-
watch(%r{^lib/password_generator/(.+)\.rb}) { |m| "spec/#{m[1]}_spec.rb" }
|
14
14
|
watch(%r{^bin/pwgen}) { |m| "spec/lib/pwgen_spec.rb" }
|
15
15
|
watch(%r{^spec/spec_helper\.rb}) { 'spec' }
|
16
16
|
end
|
data/README.md
CHANGED
@@ -9,22 +9,29 @@ PasswordListGenerator
|
|
9
9
|
|
10
10
|
## Description
|
11
11
|
|
12
|
-
Generate a list of passwords from the command line
|
12
|
+
Generate a list of passwords from the command line. The complexity of the password can be passed in through the CLI.
|
13
13
|
|
14
14
|
## Installation
|
15
15
|
|
16
|
-
gem install
|
16
|
+
PasswordListGenerator is cryptographically signed. To be sure the gem you install hasn't been tampered with:
|
17
|
+
|
18
|
+
Add my public key (if you haven't already) as a trusted certificate gem
|
19
|
+
|
20
|
+
> gem cert --add <(curl -Ls https://raw.github.com/stephaneliu/password_generator/master/certs/stephaneliu_gem.pem)
|
21
|
+
> gem install password_list_generator -P HighSecurity.
|
22
|
+
|
23
|
+
Warning: This may cause installation to fail if non-signed depenedent gems are also being installed.
|
17
24
|
|
18
25
|
## Usage
|
19
26
|
|
20
|
-
> pwgen
|
21
|
-
> pwgen -h
|
27
|
+
> pwgen
|
28
|
+
> pwgen -h # see more options
|
22
29
|
|
23
30
|
## Contributing
|
24
31
|
|
25
32
|
1. Fork it
|
26
33
|
2. Create your feature branch (`git checkout -b my-awesomie-feature`)
|
27
|
-
3. Commit your changes (`git commit -am '
|
34
|
+
3. Commit your changes (`git commit -am 'My some awesome feature'`)
|
28
35
|
4. Push to branch (`git push origin my-awesome-feature`)
|
29
36
|
5. Create a new Pull Request
|
30
37
|
|
data/bin/pwgen
CHANGED
@@ -91,17 +91,23 @@ end
|
|
91
91
|
|
92
92
|
opts.parse!
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
system "echo '
|
100
|
-
system "echo '
|
101
|
-
system "echo 'Must have at least one
|
102
|
-
system "echo 'Must have at least one
|
103
|
-
system "echo 'Must have at least
|
104
|
-
system "echo 'Must have
|
105
|
-
system "echo ' ' >> #{file}"
|
106
|
-
system "echo '
|
107
|
-
|
94
|
+
begin
|
95
|
+
passwords = PasswordListGenerator::Generator.new(options).generate
|
96
|
+
|
97
|
+
file = options.output_file
|
98
|
+
|
99
|
+
system "echo ' ' > #{file} \n\n"
|
100
|
+
system "echo 'Generated passwords meet the following requirements: ' >> #{file}"
|
101
|
+
system "echo 'Must have at least one lower case alphabetic character (a - z)' >> #{file}"
|
102
|
+
system "echo 'Must have at least one special character (!@#\$\%^&*())' >> #{file}" if options.symbol
|
103
|
+
system "echo 'Must have at least one numeric character (0 -9)' >> #{file}" if options.numeric
|
104
|
+
system "echo 'Must have at least one upper case alphabetic character (A - Z)' >> #{file}" if options.uppercase
|
105
|
+
system "echo 'Must have at least #{options.min} characters' >> #{file}"
|
106
|
+
system "echo 'Must have no more than #{options.max} characters' >> #{file}"
|
107
|
+
system "echo ' ' >> #{file}"
|
108
|
+
system "echo '" + passwords.map(&:to_s).join("\n\n") + "' >> #{file}"
|
109
|
+
puts "#{options.count} random passwords were generated into #{file}"
|
110
|
+
rescue Exception => e
|
111
|
+
puts e
|
112
|
+
puts "Try viewing options with pwgen -h"
|
113
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDYDCCAkigAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ0wCwYDVQQDDARzbGl1
|
3
|
+
MRUwEwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wHhcN
|
4
|
+
MTQwMzAzMjEzMjU3WhcNMTUwMzAzMjEzMjU3WjA7MQ0wCwYDVQQDDARzbGl1MRUw
|
5
|
+
EwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0G
|
6
|
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDETtQzkz09Tm54FFE1ECRs8VQsEJPE
|
7
|
+
3p5x9K43lDOWv/QObMkwGAoRJc2iAJ59OUOeM59vz8806BjeAqZ4pivtGViaZVYM
|
8
|
+
bvHUEALC9xwwSpAMAd6GpW1OMYHHYV0XeoqYKpOc9mCMqmI5PyewQIS1mxq4HlOz
|
9
|
+
iR+e2ABFa5Ugp3LbDbIDsuImhEdjjvVX72GRRYTQhHsluJZD/fcBK++2PDJE/zEy
|
10
|
+
ejqpmIMRaseISuUdIMl/2Y7ehO+oWhYXDRevJzU4GZVwpltInBSKNahaGIjmC1oY
|
11
|
+
dYtOy2EAdtl2kfRErNMOLKuayAcFDmm9ACGi4sD1cjKM6CPyATzaoheBAgMBAAGj
|
12
|
+
bzBtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRu4/jxuld5bmHt
|
13
|
+
e5EtflKmkP5mkjAZBgNVHREEEjAQgQ5zbGl1QHNqbGl1LmNvbTAZBgNVHRIEEjAQ
|
14
|
+
gQ5zbGl1QHNqbGl1LmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAvGnJ2PRHBBJZ3eL2
|
15
|
+
J7YTL2CY2/tZCAZ160ljdv8wvzSbbW574KpBwEoAUN6NT06+sWt9Pz/dwrRHy5Np
|
16
|
+
76/Gu27IsybQyzvvie8z+4DGeCpuK30KmtgS4KNffwt16iCU3I8iTNzAXJgSGIsG
|
17
|
+
7PZhAmnHSo4QibVAaw7FWuRdk5CsaSz8yQJW74a7XO7c1aV1pjl7nKD7akT4auov
|
18
|
+
qFZM2+znLjNqWRtiu1wx/fTPEos6bi310efPBwbAOk1kALR5pY/mqPhx3wG51jfD
|
19
|
+
AjoDi8ANvA6BEjpDaK8BkRlQjTOYplmgVlohNURSqxIVo2tnsZyvW+Rl7RWIUVGt
|
20
|
+
ZaPiXQ==
|
21
|
+
-----END CERTIFICATE-----
|
@@ -9,28 +9,37 @@ module PasswordListGenerator
|
|
9
9
|
|
10
10
|
def generate
|
11
11
|
passwords = []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
12
|
+
tries = 0
|
13
|
+
|
14
|
+
catch :no_valid_passwords do
|
15
|
+
1.upto(config.count) do
|
16
|
+
tries = 0
|
17
|
+
valid = false
|
18
|
+
|
19
|
+
until valid
|
20
|
+
random_size = (config.min..config.max).to_a.shuffle.first
|
21
|
+
password = Password.new(random_string(random_size), config)
|
22
|
+
|
23
|
+
if password.valid?
|
24
|
+
passwords << password
|
25
|
+
valid = true
|
26
|
+
else
|
27
|
+
tries += 1
|
28
|
+
throw :no_valid_passwords if tries > 10
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
raise "There was a problem creating valid passwords." if tries > 10
|
26
35
|
|
27
36
|
passwords
|
28
37
|
end
|
29
38
|
|
30
39
|
private
|
31
40
|
|
32
|
-
def random_string
|
33
|
-
(1..
|
41
|
+
def random_string(size)
|
42
|
+
(1..size).map {characters_set[random_number]}.join
|
34
43
|
end
|
35
44
|
|
36
45
|
def random_number
|
@@ -12,12 +12,11 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.homepage = 'https://github.com/stephaneliu/password_generator'
|
13
13
|
# gem s.date = '2013-10-24'
|
14
14
|
gem.files = `git ls-files`.split($/)
|
15
|
-
puts "exe: #{gem.files.grep(%r{^bin/}).map {|f| File.basename(f)}}"
|
16
15
|
gem.executables = gem.files.grep(%r{^bin/}).map {|f| File.basename(f)}
|
17
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
17
|
gem.require_paths = ['lib']
|
19
|
-
gem.cert_chain = ['certs/
|
20
|
-
gem.signing_key = File.expand_path("~/.ssh/
|
18
|
+
gem.cert_chain = ['certs/stephaneliu_gem.pem']
|
19
|
+
gem.signing_key = File.expand_path("~/.ssh/stephaneliu_private_gem.pem") if $0 =~ /gem\z/
|
21
20
|
|
22
21
|
gem.add_development_dependency 'simplecov', '>= 0.7'
|
23
22
|
gem.add_development_dependency 'coveralls', '>= 0.7.0'
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
describe PasswordListGenerator::Generator do
|
5
|
+
|
6
|
+
describe 'initialization' do
|
7
|
+
it 'should build_characters_set' do
|
8
|
+
config = OpenStruct.new
|
9
|
+
generator = PasswordListGenerator::Generator.new(config)
|
10
|
+
generator.characters_set.wont_equal nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'character_set should have uppercase' do
|
14
|
+
config = OpenStruct.new(uppercase: true)
|
15
|
+
generator = PasswordListGenerator::Generator.new(config)
|
16
|
+
generator.characters_set.find {|char| /[A-Z]/ === char}.nil?.must_equal false
|
17
|
+
|
18
|
+
config = OpenStruct.new(uppercase: false)
|
19
|
+
generator = PasswordListGenerator::Generator.new(config)
|
20
|
+
generator.characters_set.find {|char| /[A-Z]/ === char}.nil?.must_equal true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'character_set should have numeric' do
|
24
|
+
config = OpenStruct.new(numeric: true)
|
25
|
+
generator = PasswordListGenerator::Generator.new(config)
|
26
|
+
generator.characters_set.find {|char| /\d/ === char}.nil?.must_equal false
|
27
|
+
|
28
|
+
config = OpenStruct.new(numeric: false)
|
29
|
+
generator = PasswordListGenerator::Generator.new(config)
|
30
|
+
generator.characters_set.find {|char| /\d/ === char}.nil?.must_equal true
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'character_set should have symbol when configured' do
|
34
|
+
config = OpenStruct.new(symbol: true)
|
35
|
+
generator = PasswordListGenerator::Generator.new(config)
|
36
|
+
generator.characters_set.find {|char| /\W/ === char}.nil?.must_equal false
|
37
|
+
|
38
|
+
config = OpenStruct.new(symbol: false)
|
39
|
+
generator = PasswordListGenerator::Generator.new(config)
|
40
|
+
generator.characters_set.find {|char| /\W/ === char}.nil?.must_equal true
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should not include ambiguous characters' do
|
44
|
+
config = OpenStruct.new(uppercase: true, numeric: true)
|
45
|
+
generator = PasswordListGenerator::Generator.new(config)
|
46
|
+
ambiguous = %w(i o 0 1 l 0 I)
|
47
|
+
|
48
|
+
generator.characters_set.any? {|char| ambiguous.include? char}.must_equal false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe '.generate' do
|
53
|
+
it "should generate the correct number of passwords" do
|
54
|
+
count = 10
|
55
|
+
config = OpenStruct.new(count: count, min: 5, max: 10)
|
56
|
+
generator = PasswordListGenerator::Generator.new(config)
|
57
|
+
|
58
|
+
generator.generate.size.must_equal count
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should be random" do
|
62
|
+
config = OpenStruct.new(count: 100, min: 5, max: 10)
|
63
|
+
invalid_password = PasswordListGenerator::Password.new("a", config)
|
64
|
+
generator = PasswordListGenerator::Generator.new(config)
|
65
|
+
passwords = generator.generate
|
66
|
+
|
67
|
+
passwords.each do |password|
|
68
|
+
passwords.select {|pw| pw == password}.size.must_equal 1
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should be deterministic" do
|
73
|
+
config = OpenStruct.new(count: 2, min: 5, max: 10)
|
74
|
+
invalid_password = PasswordListGenerator::Password.new("a", config)
|
75
|
+
generator = PasswordListGenerator::Generator.new(config)
|
76
|
+
|
77
|
+
PasswordListGenerator::Password.stub :new, invalid_password do
|
78
|
+
begin
|
79
|
+
passwords = generator.generate
|
80
|
+
rescue Exception => e
|
81
|
+
passwords.must_equal nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: password_list_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephane Liu
|
@@ -12,25 +12,25 @@ cert_chain:
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIDYDCCAkigAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ0wCwYDVQQDDARzbGl1
|
14
14
|
MRUwEwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wHhcN
|
15
|
-
|
15
|
+
MTQwMzAzMjEzMjU3WhcNMTUwMzAzMjEzMjU3WjA7MQ0wCwYDVQQDDARzbGl1MRUw
|
16
16
|
EwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0G
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
+
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
17
|
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDETtQzkz09Tm54FFE1ECRs8VQsEJPE
|
18
|
+
3p5x9K43lDOWv/QObMkwGAoRJc2iAJ59OUOeM59vz8806BjeAqZ4pivtGViaZVYM
|
19
|
+
bvHUEALC9xwwSpAMAd6GpW1OMYHHYV0XeoqYKpOc9mCMqmI5PyewQIS1mxq4HlOz
|
20
|
+
iR+e2ABFa5Ugp3LbDbIDsuImhEdjjvVX72GRRYTQhHsluJZD/fcBK++2PDJE/zEy
|
21
|
+
ejqpmIMRaseISuUdIMl/2Y7ehO+oWhYXDRevJzU4GZVwpltInBSKNahaGIjmC1oY
|
22
|
+
dYtOy2EAdtl2kfRErNMOLKuayAcFDmm9ACGi4sD1cjKM6CPyATzaoheBAgMBAAGj
|
23
|
+
bzBtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRu4/jxuld5bmHt
|
24
|
+
e5EtflKmkP5mkjAZBgNVHREEEjAQgQ5zbGl1QHNqbGl1LmNvbTAZBgNVHRIEEjAQ
|
25
|
+
gQ5zbGl1QHNqbGl1LmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAvGnJ2PRHBBJZ3eL2
|
26
|
+
J7YTL2CY2/tZCAZ160ljdv8wvzSbbW574KpBwEoAUN6NT06+sWt9Pz/dwrRHy5Np
|
27
|
+
76/Gu27IsybQyzvvie8z+4DGeCpuK30KmtgS4KNffwt16iCU3I8iTNzAXJgSGIsG
|
28
|
+
7PZhAmnHSo4QibVAaw7FWuRdk5CsaSz8yQJW74a7XO7c1aV1pjl7nKD7akT4auov
|
29
|
+
qFZM2+znLjNqWRtiu1wx/fTPEos6bi310efPBwbAOk1kALR5pY/mqPhx3wG51jfD
|
30
|
+
AjoDi8ANvA6BEjpDaK8BkRlQjTOYplmgVlohNURSqxIVo2tnsZyvW+Rl7RWIUVGt
|
31
|
+
ZaPiXQ==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
33
|
+
date: 2014-03-03 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: simplecov
|
@@ -78,12 +78,13 @@ files:
|
|
78
78
|
- README.md
|
79
79
|
- Rakefile
|
80
80
|
- bin/pwgen
|
81
|
-
- certs/
|
81
|
+
- certs/stephaneliu_gem.pem
|
82
82
|
- lib/password_list_generator.rb
|
83
83
|
- lib/password_list_generator/generator.rb
|
84
84
|
- lib/password_list_generator/password.rb
|
85
85
|
- lib/password_list_generator/version.rb
|
86
86
|
- password_list_generator.gemspec
|
87
|
+
- spec/generator_spec.rb
|
87
88
|
- spec/password_spec.rb
|
88
89
|
- spec/spec_helper.rb
|
89
90
|
homepage: https://github.com/stephaneliu/password_generator
|
@@ -106,10 +107,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
107
|
version: '0'
|
107
108
|
requirements: []
|
108
109
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.1.
|
110
|
+
rubygems_version: 2.1.11
|
110
111
|
signing_key:
|
111
112
|
specification_version: 4
|
112
113
|
summary: Generate list of passwords easily from command line
|
113
114
|
test_files:
|
115
|
+
- spec/generator_spec.rb
|
114
116
|
- spec/password_spec.rb
|
115
117
|
- spec/spec_helper.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/certs/stephaneliu.pem
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDYDCCAkigAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQ0wCwYDVQQDDARzbGl1
|
3
|
-
MRUwEwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wHhcN
|
4
|
-
MTMxMTIxMDgyMjMwWhcNMTQxMTIxMDgyMjMwWjA7MQ0wCwYDVQQDDARzbGl1MRUw
|
5
|
-
EwYKCZImiZPyLGQBGRYFc2psaXUxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0G
|
6
|
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1PHip2Oa8Pf42ovmPUgAZ2Gv1hTOi
|
7
|
-
4ZJBdq/6PUNBAmFTHhBvToRW++y5fvBzOTg1YkDHF51l7vcGbqpuKDBleY7COiPD
|
8
|
-
nR+KUQQ+rRD26XRdtlOacGo3ZjRBJ0aDBV6PITMRda7HQijXZ3rVS2j7gb+YoQDw
|
9
|
-
5I68sZEsjX9/a6C3Ac0Ax4MBZL172KSLzaKCTjdvrftdQm4lWQ1hpouKYjXNtNIO
|
10
|
-
+JSVMszCbZFXVq9O21cer/AHaB49eCQ0Pyd10vhGRs70I0usdrPtN4XbIeOK1lgi
|
11
|
-
JIjQ/4nHXjo2KCwW0+dt1YwJUI/7AT75v94O5aCbb24ENZPko/gn7PbLAgMBAAGj
|
12
|
-
bzBtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBT/tqKs2lU2i9D1
|
13
|
-
RjjQsbYTk0DAmjAZBgNVHREEEjAQgQ5zbGl1QHNqbGl1LmNvbTAZBgNVHRIEEjAQ
|
14
|
-
gQ5zbGl1QHNqbGl1LmNvbTANBgkqhkiG9w0BAQUFAAOCAQEALD94EwV7vOWz3tq0
|
15
|
-
KITiDYO/0U7e9MW80gR7QBH+20sBmY4ONEmk1IuY490LePQAneHuvMyQRxK4i81b
|
16
|
-
+v0HUVLvCxtyZIUeluQaSPt76USpyQzrxV+WCisT4Ckw0yi/04h+UKDyc7Zf4mok
|
17
|
-
0tmihH5qdrq9+tHI/QC981zw2cZeWfr74Wek3mUzHZm9Z+Jou38kyd/hDSUaRJpn
|
18
|
-
aC0qBC/AkPKtDcdl1OF4l5sjq5/aTCRVW7uXJ2G7YRWrGdqgiKEC5YmEFuxT/wVK
|
19
|
-
u4D3Um/AnYRhXT9ydJk2pcbzNsb30/ojfrqf3rTrJRfXv1/JYpDOfqFBOrMYkuw1
|
20
|
-
nE3D5g==
|
21
|
-
-----END CERTIFICATE-----
|