diff options
author | Rob Austein <sra@hactrn.net> | 2014-05-02 04:36:10 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2014-05-02 04:36:10 +0000 |
commit | bf789ce9905c72eb26bcdfde9093ccf428ac432f (patch) | |
tree | 3ea3e6d5fcc542d9658ca5b07bc3f548422be4ec /rp/utils/scan_roas.py | |
parent | 01bf6e0fe2904a26261b55d725d2fe2599834982 (diff) |
Switch all rp/utils/ programs to use the Python script versions
instead of the nasty old C versions. C code retained in source tree
for the moment, but will go away soon.
svn path=/trunk/; revision=5825
Diffstat (limited to 'rp/utils/scan_roas.py')
-rwxr-xr-x | rp/utils/scan_roas.py | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/rp/utils/scan_roas.py b/rp/utils/scan_roas.py deleted file mode 100755 index 1f5746b1..00000000 --- a/rp/utils/scan_roas.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python -# -# $Id$ -# -# Copyright (C) 2014 Dragon Research Labs ("DRL") -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND DRL DISCLAIMS ALL WARRANTIES WITH -# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -# AND FITNESS. IN NO EVENT SHALL DRL BE LIABLE FOR ANY SPECIAL, DIRECT, -# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. - -""" -Search an authenticated result tree from an rcynic run for ROAs, and -prints out the signing time, ASN, and prefixes for each ROA, one ROA -per line. -""" - -import os -import argparse -import rpki.POW - -def check_dir(d): - if not os.path.isdir(d): - raise argparse.ArgumentTypeError("%r is not a directory" % d) - return d - -class ROA(rpki.POW.ROA): - - @classmethod - def parse(cls, fn): - self = cls.derReadFile(fn) - self.extractWithoutVerifying() - return self - - @property - def prefixes(self): - v4, v6 = self.getPrefixes() - for prefix, length, maxlength in (v4 or ()) + (v6 or ()): - if maxlength is None or length == maxlength: - yield "%s/%d" % (prefix, length) - else: - yield "%s/%d-%d" % (prefix, length, maxlength) - - def __str__(self): - return "%s %s %s" % (self.signingTime(), self.getASID(), " ".join(self.prefixes)) - -parser = argparse.ArgumentParser(description = __doc__) -parser.add_argument("rcynic_dir", nargs = "+", type = check_dir, - help = "rcynic authenticated output directory") -args = parser.parse_args() - -for rcynic_dir in args.rcynic_dir: - for root, dirs, files in os.walk(rcynic_dir): - for fn in files: - if fn.endswith(".roa"): - print ROA.parse(os.path.join(root, fn)) |