def main(): try: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('-2', action='store_true', help='compute CVSS2 instead') parser.add_argument('-a', '--all', action='store_true', help='ask for all metrics') parser.add_argument('-v', '--vector', help='input string with CVSS vector') parser.add_argument('-n', '--no-colors', action='store_true', help='do not use terminal coloring') args = parser.parse_args() # Import the correct CVSS module if getattr(args, '2'): version = 2 from cvss import CVSS2 as CVSS else: version = 3 from cvss import CVSS3 as CVSS # Vector input, either from command line or interactively if args.vector: vector_string = args.vector else: vector_string = ask_interactively(version, args.all, args.no_colors) # Compute scores and clean vector try: cvss_vector = CVSS(vector_string) except CVSSError as e: print(e) else: scores = cvss_vector.scores() if version == 2: print('CVSS2') severities = None elif version == 3: print('CVSS3') severities = cvss_vector.severities() else: raise ValueError('Unknown CVSS version: {0}'.format(version)) for i, score_name in enumerate(['Base Score', 'Temporal Score', 'Environmental Score']): print(score_name + ':' + ' ' * (PAD - len(score_name) - 2), end='') if version == 3: print(scores[i], '({0})'.format(severities[i])) else: print(scores[i]) print('Cleaned vector: ', cvss_vector.clean_vector()) print('Red Hat vector: ', cvss_vector.rh_vector()) except (KeyboardInterrupt, EOFError): print()
def main(): try: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('-2', action='store_true', help='compute CVSS2 instead') parser.add_argument('-a', '--all', action='store_true', help='ask for all metrics') parser.add_argument('-v', '--vector', help='input string with CVSS vector') parser.add_argument('-n', '--no-colors', action='store_true', help='do not use terminal coloring') args = parser.parse_args() # Import the correct CVSS module if getattr(args, '2'): version = 2 from cvss import CVSS2 as CVSS else: version = 3 from cvss import CVSS3 as CVSS # Vector input, either from command line or interactively if args.vector: vector_string = args.vector else: vector_string = ask_interactively(version, args.all, args.no_colors) # Compute scores and clean vector try: cvss_vector = CVSS(vector_string) except CVSSError as e: print(e) else: scores = cvss_vector.scores() if version == 2: print('CVSS2') severities = None elif version == 3: print('CVSS3') severities = cvss_vector.severities() else: raise ValueError('Unknown CVSS version: {0}'.format(version)) for i, score_name in enumerate(['Base Score', 'Temporal Score', 'Environmental Score']): print(score_name + ':' + ' ' * (PAD - len(score_name) - 2), end='') if version == 3: print(scores[i], '({0})'.format(severities[i])) else: print(scores[i]) print('Cleaned vector: ', cvss_vector.clean_vector()) print('Red Hat vector: ', cvss_vector.rh_vector()) except KeyboardInterrupt: print()