cfsslrb 0.10.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a94f9913b2050adfed2d05eb5d2c7a14eb648089
4
+ data.tar.gz: 1c02c3573096b974f033a8f72f02e47f31a41b11
5
+ SHA512:
6
+ metadata.gz: 360783deaae5703be9cce4743dde28c3e43e0d35901954bce67cf5711f1992531af5f0ca3db17bfee51e236b0b0f6f17004e3c7e1a979defb9a50c40cfaff85d
7
+ data.tar.gz: 6ae90947bc36bbe8a06608e4126ef49c50fbf3f59080d63a3fb0276fd14b93a4fc32e5dd50d96f87bae91ed43e9373e3fd6d2b4e4b9b459e9d50e5047220ed6a
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ .ruby-version
11
+ .ruby-gemset
12
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in cfsslrb.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Cfsslrb
2
+ I wanted a quick way to churn out certs, ended up with this
3
+
4
+ ## Installation
5
+
6
+ Add this line to your application's Gemfile:
7
+
8
+ ```ruby
9
+ gem 'cfsslrb'
10
+ ```
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install cfsslrb
19
+
20
+ ## Usage
21
+
22
+ ```shell
23
+ cfsslrb --help
24
+ ```
25
+
26
+ ## Development
27
+
28
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
29
+
30
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
31
+
32
+ ## Contributing
33
+
34
+ Bug reports and pull requests are welcome on GitHub at https://github.com/voobscout/cfsslrb.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
data/bin/cfsslrb ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ # require 'pry'
3
+ require((Pathname.new(__FILE__).expand_path.dirname.parent + 'lib/cfsslrb').to_s)
4
+ Cfsslrb::CLI::MainCommand.run
5
+ # (ARGV)
data/bin/clamp_test.rb ADDED
@@ -0,0 +1,73 @@
1
+ require 'clamp'
2
+ require 'pry'
3
+
4
+ module MyBin
5
+ # class AC
6
+ class AbstractCommand < Clamp::Command
7
+ option ['-v', '--verbose'], :flag, 'be verbose'
8
+
9
+ option '--version', :flag, 'show version' do
10
+ puts 'MyBin v0.0.1'
11
+ exit(0)
12
+ end
13
+
14
+ def say(message)
15
+ message = message.upcase if verbose?
16
+ puts message
17
+ end
18
+ end
19
+ # docu
20
+ class CloneCommand < AbstractCommand
21
+ parameter 'REPOSITORY', 'repository to clone'
22
+ parameter '[DIR]', 'working directory', default: '.'
23
+
24
+ def execute
25
+ say "cloning to #{dir}"
26
+ end
27
+ end
28
+ # docu
29
+ class PullCommand < AbstractCommand
30
+ option '--[no-]commit', :flag, 'Perform the merge and commit the result.'
31
+
32
+ def execute
33
+ say 'pulling'
34
+ end
35
+ end
36
+ # docu
37
+ class SuperStatusCommand < AbstractCommand
38
+ # option ['-s', '--short'], :flag, 'Give the output in the short-format.'
39
+ option ['-n', '--name'], 'NAME', 'option description', multivalued: true
40
+ parameter '[HOST]', 'server address', environment_variable: 'MYAPP_HOST'
41
+ parameter '[SAN] ...', 'Subject Alternative Names', attribute_name: :alt_names
42
+
43
+ def execute
44
+ say(name_list.join(',') + ' | ' + alt_names.join(','))
45
+ say(host)
46
+ end
47
+
48
+ def some
49
+ puts 'yo!'
50
+ end
51
+ end
52
+ # docu
53
+ class StatusCommand < AbstractCommand
54
+ option ['-s', '--short'], :flag, 'Give the output in the short-format.'
55
+
56
+ def execute
57
+ if short?
58
+ say 'good'
59
+ else
60
+ say 'its all good ...'
61
+ end
62
+ end
63
+ subcommand 'superstatus', 'get a superstatus', SuperStatusCommand
64
+ end
65
+ # docu
66
+ class MainCommand < AbstractCommand
67
+ subcommand 'clone', 'Clone a remote repository.', CloneCommand
68
+ subcommand 'pull', 'Fetch and merge updates.', PullCommand
69
+ subcommand 'status', 'Display status of local repository.', StatusCommand
70
+ end
71
+ end
72
+
73
+ MyBin::MainCommand.run
data/bin/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "cfsslrb"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ require "pry"
10
+ Pry.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/cfsslrb.gemspec ADDED
@@ -0,0 +1,44 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cfsslrb/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "cfsslrb"
8
+ spec.version = Cfsslrb::VERSION
9
+ spec.authors = ["voobscout"]
10
+ spec.email = ["voobscout@archlinux.info"]
11
+
12
+ spec.summary = %q{cfsslrb - yaml instead of json}
13
+ spec.description = spec.summary
14
+ spec.homepage = "https://github.com/voobscout/cfsslrb"
15
+
16
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
18
+ # if spec.respond_to?(:metadata)
19
+ # spec.metadata['allowed_push_host'] = ''
20
+ # else
21
+ # raise "RubyGems 2.0 or newer is required to protect against " \
22
+ # "public gem pushes."
23
+ # end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
+ f.match(%r{^(test|spec|features)/})
27
+ end
28
+ # spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_development_dependency 'bundler'
33
+ spec.add_development_dependency 'rake'
34
+ spec.add_development_dependency 'rubocop'
35
+ spec.add_development_dependency 'pry'
36
+ spec.add_development_dependency 'pry-doc'
37
+ spec.add_development_dependency 'pry-byebug'
38
+ spec.add_development_dependency 'pry-awesome_print'
39
+
40
+ spec.add_dependency 'corefines'
41
+ spec.add_dependency 'cocaine'
42
+ spec.add_dependency 'clamp'
43
+ spec.add_dependency 'activesupport'
44
+ end
@@ -0,0 +1,59 @@
1
+ ssl:
2
+ config:
3
+ signing:
4
+ default:
5
+ expiry: 43800h
6
+ profiles:
7
+ server:
8
+ expiry: 43800h
9
+ usages:
10
+ - signing
11
+ - key encipherment
12
+ - server auth
13
+ client:
14
+ expiry: 43800h
15
+ usages:
16
+ - signing
17
+ - key encipherment
18
+ - client auth
19
+ client-server:
20
+ expiry: 43800h
21
+ usages:
22
+ - signing
23
+ - key encipherment
24
+ - server auth
25
+ - client auth
26
+ ca:
27
+ CN: Infinidim Enterprises Lab
28
+ hosts:
29
+ - www.infinidim.enterprises
30
+ - ctl.infinidim.enterprises
31
+ - n0.infinidim.enterprises
32
+ - n1.infinidim.enterprises
33
+ - n2.infinidim.enterprises
34
+ - n3.infinidim.enterprises
35
+ key:
36
+ algo: rsa
37
+ size: 2048
38
+ names:
39
+ - C: US
40
+ L: Frogstar
41
+ O: Sirius Cybernetics Corporation
42
+ OU: Complaints Department
43
+ ST: World B
44
+ node:
45
+ CN: hostname
46
+ hosts:
47
+ - localhost
48
+ - localhost.local
49
+ - 127.0.0.1
50
+ - hostname
51
+ - hostname.domain.name
52
+ - public_ipv4
53
+ key:
54
+ algo: rsa
55
+ size: 2048
56
+ names:
57
+ - C: US
58
+ L: Frogstar
59
+ ST: World B
@@ -0,0 +1,17 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ #
4
+ class AbstractCommand < Clamp::Command
5
+ include Cfsslrb::Helpers
6
+
7
+ option ['-f', '--force'], :flag, 'Force overwrite', default: false
8
+ option ['-d', '--directory'], 'DIRECTORY', 'Filesystem path to CA folder', default: Pathname.new('.').expand_path.to_s
9
+ option ['-l', '--loglevel'], 'LOGLEVEL', 'debug < info < warn < error < fatal < unknown', default: 'info'
10
+
11
+ def execute
12
+ LOGGER.level = loglevel.to_sym
13
+ LOGGER.progname = self.class.name + '#' + __callee__.to_s
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class CaCommand < AbstractCommand
4
+ subcommand "init", 'Manipulate CA', CaInitCommand
5
+ subcommand "create", 'Manipulate CA', CaCreateCommand
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,38 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class CaCreateCommand < AbstractCommand
4
+ def execute
5
+ super
6
+ (new? || force?) ? mk : LOGGER.error("CA exists, --force not found!")
7
+ end
8
+
9
+ def mk
10
+ # binding.pry
11
+ chdir(directory)
12
+ pn('ca-config.json').write(cfg['ssl']['config'].to_json)
13
+ pn('ca-csr.json').write(cfg['ssl']['ca'].to_json)
14
+ ca_json = sh('cfssl', 'gencert -initca ca-csr.json').run
15
+ pn('ca.json').write(ca_json)
16
+ # create CA
17
+ sh('cfssljson', '-bare -f ca.json').run
18
+ # rename files
19
+ mv('cert-key.pem', 'ca-key.pem')
20
+ mv('cert.pem', 'ca.pem')
21
+ mv('cert.csr', 'ca.csr')
22
+ end
23
+
24
+ private
25
+ def new?
26
+ %w(cfssl_config.yml
27
+ ca.csr
28
+ ca-config.json
29
+ ca-csr.json
30
+ ca.json
31
+ ca-key.pem
32
+ ca.pem).map do |f|
33
+ Pathname.new(directory + '/' + f).exist?
34
+ end.include?(false)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,25 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class CaInitCommand < AbstractCommand
4
+ using Corefines::String::Color
5
+
6
+ def execute
7
+ super
8
+ @cfg = directory + '/cfssl_config.yml'
9
+ (new? || force?) ? mk : LOGGER.error("#{@cfg} exists and no --force flag given!")
10
+ end
11
+
12
+ def new?
13
+ !Pathname.new(@cfg).expand_path.exist?
14
+ end
15
+
16
+ def mk
17
+ LOGGER.debug "Overwriting #{@cfg}" if force?
18
+ FileUtils.mkdir_p directory
19
+ FileUtils.cp(TEMPL8, @cfg)
20
+ LOGGER.debug "Created #{@cfg}"
21
+ puts "Success!\nEdit #{@cfg.color(:white)} before proceeding!"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class CertCommand < AbstractCommand
4
+ subcommand "create", 'Create new cert', CertCreateCommand
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,58 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class CertCreateCommand < AbstractCommand
4
+ option ['-t', '--type'], 'TYPE', 'One of: [client, server, client-server]', required: true do |t|
5
+ [t].grep(/^client$|^server$|^client-server$/).first ? t : signal_usage_error('TYPE must be one of [client, server, client-server]')
6
+ end
7
+ option '--key-algo', '', 'rsa etc..', default: 'rsa'
8
+ option '--key-size', 'INT', 'Key size etc...', default: 2048
9
+ option '--[no-]json-dump', :flag, 'Dump json files together with certs', default: false
10
+
11
+ parameter 'CN', 'Common Name'
12
+ parameter 'SAN ...', 'Subject Alternative Names(s)', attribute_name: :alt_names
13
+
14
+ def execute
15
+ super
16
+ @cert_csr = cn + '-csr.json'
17
+ @cert_pem = cn + '-pem.json'
18
+ @cert_dir = (pn(directory) + 'clients' + cn).to_s
19
+ (new? || force?) ? mk : LOGGER.error("Cert exist, --force not found!")
20
+ end
21
+
22
+ private
23
+ def mk
24
+ chdir(directory)
25
+ @cert_csr_yaml = cfg['ssl']['node'].dup
26
+ @cert_csr_yaml['CN'] = cn
27
+ @cert_csr_yaml['hosts'] = alt_names
28
+ @cert_csr_yaml['key']['algo'] = key_algo if key_algo
29
+ @cert_csr_yaml['key']['size'] = key_size.to_i if key_size
30
+ @cert_pem = sh('echo', "'#{@cert_csr_yaml.to_json}' | cfssl gencert #{params} -").run
31
+ mk_files
32
+ end
33
+
34
+ def mk_files
35
+ mkdir(@cert_dir)
36
+ cert_bundle = sh('echo', "'#{@cert_pem}' | cfssljson -stdout -bare -f -").run.split("\n\n")
37
+ (pn(@cert_dir) + 'cert.pem').write(cert_bundle[0] + "\n")
38
+ (pn(@cert_dir) + 'cert-key.pem').write(cert_bundle[1] + "\n")
39
+ (pn(@cert_dir) + 'cert.csr').write(cert_bundle[2] + "\n")
40
+
41
+ if json_dump?
42
+ (pn(@cert_dir) + (cn + '-csr.json')).write(@cert_csr_yaml.to_json)
43
+ (pn(@cert_dir) + (cn + '-pem.json')).write(@cert_pem)
44
+ end
45
+ end
46
+
47
+ def params
48
+ (%w(-ca=ca.pem
49
+ -ca-key=ca-key.pem
50
+ -config=ca-config.json) << ('-profile=' + type)).join(' ')
51
+ end
52
+
53
+ def new?
54
+ !(pn(@cert_dir) + 'cert-key.pem').exist?
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,13 @@
1
+ module Cfsslrb
2
+ module CLI
3
+ class MainCommand < Clamp::Command
4
+ option '--version', :flag, 'show version' do
5
+ puts 'Cfsslrb v' + Cfsslrb::VERSION
6
+ exit(0)
7
+ end
8
+
9
+ subcommand "ca", 'Manipulate CA', CaCommand
10
+ subcommand 'cert', 'client cert crud', CertCommand
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ module Cfsslrb
2
+ # docu
3
+ module CLI
4
+ %w(abstract
5
+ ca_init
6
+ ca_create
7
+ ca
8
+ cert_create
9
+ cert
10
+ main).each{ |r| require_relative('cli/' + r + '_command') }
11
+ end # CLI
12
+ end # cfssl
13
+
14
+ # def self.load_commands
15
+ # this_file = Pathname.new(__FILE__).expand_path
16
+ # commands_dir = this_file.dirname + this_file.basename.to_s.split('.rb').first
17
+ # commands_dir.children.each do |req|
18
+ # next unless req.basename.to_s =~ /.rb/
19
+ # require req.to_s
20
+ # end
21
+ # end
@@ -0,0 +1,27 @@
1
+ module Cfsslrb
2
+ module Helpers
3
+ def pn(fname)
4
+ Pathname.new(fname)
5
+ end
6
+
7
+ def chdir(dir)
8
+ FileUtils.cd(dir)
9
+ end
10
+
11
+ def mv(src, dst)
12
+ FileUtils.mv(src, dst)
13
+ end
14
+
15
+ def mkdir(dirname)
16
+ FileUtils.mkdir_p(dirname)
17
+ end
18
+
19
+ def sh(bin, opts)
20
+ Cocaine::CommandLine.new(bin, opts)
21
+ end
22
+
23
+ def cfg
24
+ YAML.load_file(directory + '/cfssl_config.yml')
25
+ end
26
+ end # Helpers
27
+ end
@@ -0,0 +1,3 @@
1
+ module Cfsslrb
2
+ VERSION = "0.10.5"
3
+ end
data/lib/cfsslrb.rb ADDED
@@ -0,0 +1,62 @@
1
+ %w(yaml
2
+ json
3
+ fileutils
4
+ pathname
5
+ logger
6
+ corefines
7
+ cocaine
8
+ active_support/core_ext/kernel
9
+ clamp).each(&method(:require))
10
+
11
+ # Silly deprecation warnings with ::Fixnum, ::Bignum used instead of ::Integer
12
+ module Corefines
13
+ module String
14
+ module Color
15
+ private
16
+ def self.color_code(color, offset)
17
+ return color + offset if color.is_a? ::Integer
18
+ COLOR_CODES[color.to_sym] + offset if color && COLOR_CODES[color.to_sym]
19
+ end
20
+ def self.mode_code(mode)
21
+ return mode if mode.is_a? ::Integer
22
+ MODE_CODES[mode.to_sym] if mode
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ # module Cfsslrb
29
+ module Cfsslrb
30
+ class CustomLogFormater < Logger::Formatter
31
+ using Corefines::String::Color
32
+ def self.call(severity, time, progname, msg)
33
+ # :debug < :info < :warn < :error < :fatal < :unknown
34
+ severity = case severity
35
+ when /debug/i then severity.color(:light_magenta)
36
+ when /info/i then severity.color(:cyan)
37
+ when /warn/i then severity.color(:yellow)
38
+ when /error/i then severity.color(:red)
39
+ when /fatal/i then severity.color(text: :red, mode: :bold)
40
+ else
41
+ severity.color(text: :white, mode: :bold)
42
+ end
43
+ time = time.strftime('[' + "%H:%M:" + "%S".color(:white) + ']')
44
+ progname = progname.split('::')
45
+ progname = progname[0..-2].join('::'.color(:white)) + '::'.color(:white) + progname.last.split('#').first.color(fg: :light_magenta, bg: :black) + '#'.color(:white) + progname.last.split('#').last.color(:yellow)
46
+ # progname = '' if (severity.color(mode: :default) =~ /info/i)
47
+ puts "#{time} #{progname} [#{severity.rjust(20)}]: " + msg
48
+ end
49
+ end
50
+
51
+ LOGGER = Logger.new($stdout,
52
+ formatter: Cfsslrb::CustomLogFormater)
53
+ TEMPL8 = (Pathname.new(__FILE__).dirname.expand_path + 'cfssl_template.yml').to_s
54
+
55
+ def self.logger
56
+ LOGGER
57
+ end
58
+ end
59
+
60
+ %w(cfsslrb/version
61
+ cfsslrb/helpers
62
+ cfsslrb/cli).each { |r| require((Pathname.new(__FILE__).expand_path.dirname + r).to_s) }
metadata ADDED
@@ -0,0 +1,222 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cfsslrb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.5
5
+ platform: ruby
6
+ authors:
7
+ - voobscout
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-doc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-awesome_print
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: corefines
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: cocaine
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: clamp
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: activesupport
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: cfsslrb - yaml instead of json
168
+ email:
169
+ - voobscout@archlinux.info
170
+ executables:
171
+ - cfsslrb
172
+ - clamp_test.rb
173
+ - console
174
+ - setup
175
+ extensions: []
176
+ extra_rdoc_files: []
177
+ files:
178
+ - ".gitignore"
179
+ - Gemfile
180
+ - README.md
181
+ - Rakefile
182
+ - bin/cfsslrb
183
+ - bin/clamp_test.rb
184
+ - bin/console
185
+ - bin/setup
186
+ - cfsslrb.gemspec
187
+ - lib/cfssl_template.yml
188
+ - lib/cfsslrb.rb
189
+ - lib/cfsslrb/cli.rb
190
+ - lib/cfsslrb/cli/abstract_command.rb
191
+ - lib/cfsslrb/cli/ca_command.rb
192
+ - lib/cfsslrb/cli/ca_create_command.rb
193
+ - lib/cfsslrb/cli/ca_init_command.rb
194
+ - lib/cfsslrb/cli/cert_command.rb
195
+ - lib/cfsslrb/cli/cert_create_command.rb
196
+ - lib/cfsslrb/cli/main_command.rb
197
+ - lib/cfsslrb/helpers.rb
198
+ - lib/cfsslrb/version.rb
199
+ homepage: https://github.com/voobscout/cfsslrb
200
+ licenses: []
201
+ metadata: {}
202
+ post_install_message:
203
+ rdoc_options: []
204
+ require_paths:
205
+ - lib
206
+ required_ruby_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ required_rubygems_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ requirements: []
217
+ rubyforge_project:
218
+ rubygems_version: 2.6.10
219
+ signing_key:
220
+ specification_version: 4
221
+ summary: cfsslrb - yaml instead of json
222
+ test_files: []