octool 0.0.4 → 0.0.9
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
- data/bin/octool +22 -5
- data/lib/octool.rb +2 -6
- data/lib/octool/constants.rb +1 -1
- data/lib/octool/parser.rb +42 -24
- data/lib/octool/ssp.rb +21 -4
- data/lib/octool/system.rb +45 -39
- data/lib/octool/version.rb +1 -1
- data/octool.rdoc +14 -2
- data/schemas/v1.0.1/certification.yaml +27 -0
- data/schemas/v1.0.1/component.yaml +60 -0
- data/schemas/v1.0.1/config.yaml +79 -0
- data/schemas/v1.0.1/standard.yaml +50 -0
- data/schemas/v1.0.2/certification.yaml +27 -0
- data/schemas/v1.0.2/component.yaml +60 -0
- data/schemas/v1.0.2/config.yaml +111 -0
- data/schemas/v1.0.2/standard.yaml +50 -0
- data/templates/ssp.erb +123 -35
- metadata +24 -6
- data/lib/octool/generated/certification.rb +0 -35
- data/lib/octool/generated/component.rb +0 -57
- data/lib/octool/generated/config.rb +0 -55
- data/lib/octool/generated/standard.rb +0 -55
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: octool
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Paul Morgan
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-05- | 
| 11 | 
            +
            date: 2020-05-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         | 
| @@ -92,6 +92,20 @@ dependencies: | |
| 92 92 | 
             
                - - '='
         | 
| 93 93 | 
             
                  - !ruby/object:Gem::Version
         | 
| 94 94 | 
             
                    version: 2.19.0
         | 
| 95 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 96 | 
            +
              name: json_pure
         | 
| 97 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 98 | 
            +
                requirements:
         | 
| 99 | 
            +
                - - '='
         | 
| 100 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 101 | 
            +
                    version: 2.3.0
         | 
| 102 | 
            +
              type: :runtime
         | 
| 103 | 
            +
              prerelease: false
         | 
| 104 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 105 | 
            +
                requirements:
         | 
| 106 | 
            +
                - - '='
         | 
| 107 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 108 | 
            +
                    version: 2.3.0
         | 
| 95 109 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 96 110 | 
             
              name: kwalify
         | 
| 97 111 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -147,10 +161,6 @@ files: | |
| 147 161 | 
             
            - bin/octool
         | 
| 148 162 | 
             
            - lib/octool.rb
         | 
| 149 163 | 
             
            - lib/octool/constants.rb
         | 
| 150 | 
            -
            - lib/octool/generated/certification.rb
         | 
| 151 | 
            -
            - lib/octool/generated/component.rb
         | 
| 152 | 
            -
            - lib/octool/generated/config.rb
         | 
| 153 | 
            -
            - lib/octool/generated/standard.rb
         | 
| 154 164 | 
             
            - lib/octool/parser.rb
         | 
| 155 165 | 
             
            - lib/octool/ssp.rb
         | 
| 156 166 | 
             
            - lib/octool/system.rb
         | 
| @@ -160,6 +170,14 @@ files: | |
| 160 170 | 
             
            - schemas/v1.0.0/component.yaml
         | 
| 161 171 | 
             
            - schemas/v1.0.0/config.yaml
         | 
| 162 172 | 
             
            - schemas/v1.0.0/standard.yaml
         | 
| 173 | 
            +
            - schemas/v1.0.1/certification.yaml
         | 
| 174 | 
            +
            - schemas/v1.0.1/component.yaml
         | 
| 175 | 
            +
            - schemas/v1.0.1/config.yaml
         | 
| 176 | 
            +
            - schemas/v1.0.1/standard.yaml
         | 
| 177 | 
            +
            - schemas/v1.0.2/certification.yaml
         | 
| 178 | 
            +
            - schemas/v1.0.2/component.yaml
         | 
| 179 | 
            +
            - schemas/v1.0.2/config.yaml
         | 
| 180 | 
            +
            - schemas/v1.0.2/standard.yaml
         | 
| 163 181 | 
             
            - templates/ssp.erb
         | 
| 164 182 | 
             
            homepage: https://github.com/jumanjiman/octool
         | 
| 165 183 | 
             
            licenses:
         | 
| @@ -1,35 +0,0 @@ | |
| 1 | 
            -
            require 'kwalify/util/hashlike'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module OCTool
         | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
              class Certification
         | 
| 7 | 
            -
                include Kwalify::Util::HashLike
         | 
| 8 | 
            -
                def initialize(hash=nil)
         | 
| 9 | 
            -
                  if hash.nil?
         | 
| 10 | 
            -
                    return
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @certification_key = hash['certification_key']
         | 
| 13 | 
            -
                  @name             = hash['name']
         | 
| 14 | 
            -
                  @requires         = (v=hash['requires']) ? v.map!{|e| e.is_a?(ControlID) ? e : ControlID.new(e)} : v
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
                attr_accessor :certification_key # str
         | 
| 17 | 
            -
                attr_accessor :name             # str
         | 
| 18 | 
            -
                attr_accessor :requires         # seq
         | 
| 19 | 
            -
              end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
              class ControlID
         | 
| 23 | 
            -
                include Kwalify::Util::HashLike
         | 
| 24 | 
            -
                def initialize(hash=nil)
         | 
| 25 | 
            -
                  if hash.nil?
         | 
| 26 | 
            -
                    return
         | 
| 27 | 
            -
                  end
         | 
| 28 | 
            -
                  @standard_key     = hash['standard_key']
         | 
| 29 | 
            -
                  @control_key      = hash['control_key']
         | 
| 30 | 
            -
                end
         | 
| 31 | 
            -
                attr_accessor :standard_key     # str
         | 
| 32 | 
            -
                attr_accessor :control_key      # str
         | 
| 33 | 
            -
              end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
            end
         | 
| @@ -1,57 +0,0 @@ | |
| 1 | 
            -
            require 'kwalify/util/hashlike'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module OCTool
         | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
              class Component
         | 
| 7 | 
            -
                include Kwalify::Util::HashLike
         | 
| 8 | 
            -
                def initialize(hash=nil)
         | 
| 9 | 
            -
                  if hash.nil?
         | 
| 10 | 
            -
                    return
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @name             = hash['name']
         | 
| 13 | 
            -
                  @component_key    = hash['component_key']
         | 
| 14 | 
            -
                  @description      = hash['description']
         | 
| 15 | 
            -
                  @attestations     = (v=hash['attestations']) ? v.map!{|e| e.is_a?(Attestation) ? e : Attestation.new(e)} : v
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
                attr_accessor :name             # str
         | 
| 18 | 
            -
                attr_accessor :component_key    # str
         | 
| 19 | 
            -
                attr_accessor :description      # str
         | 
| 20 | 
            -
                attr_accessor :attestations     # seq
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
              class Attestation
         | 
| 25 | 
            -
                include Kwalify::Util::HashLike
         | 
| 26 | 
            -
                def initialize(hash=nil)
         | 
| 27 | 
            -
                  if hash.nil?
         | 
| 28 | 
            -
                    return
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                  @summary          = hash['summary']
         | 
| 31 | 
            -
                  @status           = hash['status']
         | 
| 32 | 
            -
                  @date_verified    = hash['date_verified']
         | 
| 33 | 
            -
                  @satisfies        = (v=hash['satisfies']) ? v.map!{|e| e.is_a?(ControlID) ? e : ControlID.new(e)} : v
         | 
| 34 | 
            -
                  @narrative        = hash['narrative']
         | 
| 35 | 
            -
                end
         | 
| 36 | 
            -
                attr_accessor :summary          # str
         | 
| 37 | 
            -
                attr_accessor :status           # str
         | 
| 38 | 
            -
                attr_accessor :date_verified    # date
         | 
| 39 | 
            -
                attr_accessor :satisfies        # seq
         | 
| 40 | 
            -
                attr_accessor :narrative        # str
         | 
| 41 | 
            -
              end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
              class ControlID
         | 
| 45 | 
            -
                include Kwalify::Util::HashLike
         | 
| 46 | 
            -
                def initialize(hash=nil)
         | 
| 47 | 
            -
                  if hash.nil?
         | 
| 48 | 
            -
                    return
         | 
| 49 | 
            -
                  end
         | 
| 50 | 
            -
                  @standard_key     = hash['standard_key']
         | 
| 51 | 
            -
                  @control_key      = hash['control_key']
         | 
| 52 | 
            -
                end
         | 
| 53 | 
            -
                attr_accessor :standard_key     # text
         | 
| 54 | 
            -
                attr_accessor :control_key      # text
         | 
| 55 | 
            -
              end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
            end
         | 
| @@ -1,55 +0,0 @@ | |
| 1 | 
            -
            require 'kwalify/util/hashlike'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module OCTool
         | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
              class Config
         | 
| 7 | 
            -
                include Kwalify::Util::HashLike
         | 
| 8 | 
            -
                def initialize(hash=nil)
         | 
| 9 | 
            -
                  if hash.nil?
         | 
| 10 | 
            -
                    return
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @schema_version   = hash['schema_version']
         | 
| 13 | 
            -
                  @name             = hash['name']
         | 
| 14 | 
            -
                  @overview         = hash['overview']
         | 
| 15 | 
            -
                  @maintainers      = hash['maintainers']
         | 
| 16 | 
            -
                  @metadata         = (v=hash['metadata']) && v.is_a?(Hash) ? Metadata.new(v) : v
         | 
| 17 | 
            -
                  @includes         = (v=hash['includes']) ? v.map!{|e| e.is_a?(Include) ? e : Include.new(e)} : v
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
                attr_accessor :schema_version   # str
         | 
| 20 | 
            -
                attr_accessor :name             # str
         | 
| 21 | 
            -
                attr_accessor :overview         # str
         | 
| 22 | 
            -
                attr_accessor :maintainers      # seq
         | 
| 23 | 
            -
                attr_accessor :metadata         # map
         | 
| 24 | 
            -
                attr_accessor :includes         # seq
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              ## Optional metadata.
         | 
| 28 | 
            -
              class Metadata
         | 
| 29 | 
            -
                include Kwalify::Util::HashLike
         | 
| 30 | 
            -
                def initialize(hash=nil)
         | 
| 31 | 
            -
                  if hash.nil?
         | 
| 32 | 
            -
                    return
         | 
| 33 | 
            -
                  end
         | 
| 34 | 
            -
                  @abstract         = hash['abstract']
         | 
| 35 | 
            -
                  @description      = hash['description']
         | 
| 36 | 
            -
                end
         | 
| 37 | 
            -
                attr_accessor :abstract         # str
         | 
| 38 | 
            -
                attr_accessor :description      # str
         | 
| 39 | 
            -
              end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
              class Include
         | 
| 43 | 
            -
                include Kwalify::Util::HashLike
         | 
| 44 | 
            -
                def initialize(hash=nil)
         | 
| 45 | 
            -
                  if hash.nil?
         | 
| 46 | 
            -
                    return
         | 
| 47 | 
            -
                  end
         | 
| 48 | 
            -
                  @type             = hash['type']
         | 
| 49 | 
            -
                  @path             = hash['path']
         | 
| 50 | 
            -
                end
         | 
| 51 | 
            -
                attr_accessor :type             # str
         | 
| 52 | 
            -
                attr_accessor :path             # str
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
            end
         | 
| @@ -1,55 +0,0 @@ | |
| 1 | 
            -
            require 'kwalify/util/hashlike'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module OCTool
         | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
              class Standard
         | 
| 7 | 
            -
                include Kwalify::Util::HashLike
         | 
| 8 | 
            -
                def initialize(hash=nil)
         | 
| 9 | 
            -
                  if hash.nil?
         | 
| 10 | 
            -
                    return
         | 
| 11 | 
            -
                  end
         | 
| 12 | 
            -
                  @name             = hash['name']
         | 
| 13 | 
            -
                  @standard_key     = hash['standard_key']
         | 
| 14 | 
            -
                  @families         = (v=hash['families']) ? v.map!{|e| e.is_a?(ControlFamily) ? e : ControlFamily.new(e)} : v
         | 
| 15 | 
            -
                  @controls         = (v=hash['controls']) ? v.map!{|e| e.is_a?(Control) ? e : Control.new(e)} : v
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
                attr_accessor :name             # str
         | 
| 18 | 
            -
                attr_accessor :standard_key     # str
         | 
| 19 | 
            -
                attr_accessor :families         # seq
         | 
| 20 | 
            -
                attr_accessor :controls         # seq
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
              class ControlFamily
         | 
| 25 | 
            -
                include Kwalify::Util::HashLike
         | 
| 26 | 
            -
                def initialize(hash=nil)
         | 
| 27 | 
            -
                  if hash.nil?
         | 
| 28 | 
            -
                    return
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                  @family_key       = hash['family_key']
         | 
| 31 | 
            -
                  @name             = hash['name']
         | 
| 32 | 
            -
                end
         | 
| 33 | 
            -
                attr_accessor :family_key       # str
         | 
| 34 | 
            -
                attr_accessor :name             # str
         | 
| 35 | 
            -
              end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
              class Control
         | 
| 39 | 
            -
                include Kwalify::Util::HashLike
         | 
| 40 | 
            -
                def initialize(hash=nil)
         | 
| 41 | 
            -
                  if hash.nil?
         | 
| 42 | 
            -
                    return
         | 
| 43 | 
            -
                  end
         | 
| 44 | 
            -
                  @control_key      = hash['control_key']
         | 
| 45 | 
            -
                  @family_key       = hash['family_key']
         | 
| 46 | 
            -
                  @name             = hash['name']
         | 
| 47 | 
            -
                  @description      = hash['description']
         | 
| 48 | 
            -
                end
         | 
| 49 | 
            -
                attr_accessor :control_key      # str
         | 
| 50 | 
            -
                attr_accessor :family_key       # str
         | 
| 51 | 
            -
                attr_accessor :name             # str
         | 
| 52 | 
            -
                attr_accessor :description      # str
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
            end
         |