From e6c8b0c0b218c7851d5ce862b751b211fa070c54 Mon Sep 17 00:00:00 2001 From: booboy Date: Wed, 12 Jun 2019 21:54:14 -0500 Subject: [PATCH] added some more methods to parse cves --- classes/cve_info.rb | 22 +++++++++++++++++++++- command_line/console.rb | 13 ++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/classes/cve_info.rb b/classes/cve_info.rb index e1d49ec..93a8d96 100644 --- a/classes/cve_info.rb +++ b/classes/cve_info.rb @@ -41,8 +41,28 @@ class CveReport end def find(cve_id) - cves.select do |cve| + result = cves.select do |cve| cve["cve"]["CVE_data_meta"]["ID"] == cve_id end + if result.count == 1 + result.first + else + "Could not find valid CVE for: #{cve}" + end + end + + def description(cve_id) + cve = find(cve_id) + cve['cve']['description']['description_data'].first['value'] + end + + def description_hash(cve_id) + description_value = description(cve_id) + { :cve_id => cve_id, :description => description_value } + end + + def reference_data(cve_id) + cve = find(cve_id) + cve['cve']['references']['reference_data'] end end \ No newline at end of file diff --git a/command_line/console.rb b/command_line/console.rb index 7629999..94f6697 100755 --- a/command_line/console.rb +++ b/command_line/console.rb @@ -10,9 +10,20 @@ if current_dir =~ /^(.*?\/misc_rbtools)/ require_all '../classes' end +def list_methods(class_name) + {"#{class_name}": class_name.methods } +end + + # different downloading tools nvd_downloader = NvdTools::NvdDownloader.new scans_io_downloader = ScansIoTools::ScansIoDownloader.new scans_io_parser = ScansIoTools::ScansIoIndexParser.new(scans_io_downloader.get_json_index.body) -Pry.start +downloading_tools = nvd_downloader, scans_io_downloader, scans_io_parser + +download_tool_methods = downloading_tools.map do |tool| + list_methods(tool) +end + +Pry.start \ No newline at end of file