diff options
author | Rob Austein <sra@hactrn.net> | 2007-09-17 22:00:08 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-09-17 22:00:08 +0000 |
commit | f8dbec35dc669ec58d5018ad5b5a73b2cc395551 (patch) | |
tree | 11dcfe5d09321fbf214032cc42c02d5691578131 /scripts/rpki/x509.py | |
parent | 915182363d6ecef54eeb9d74f9b4ba3e41f4897b (diff) |
Convert integer XML attributes automatically. Recognize PEM objects
automatically. Debug, clean, hack....
svn path=/scripts/irbe-cli.py; revision=983
Diffstat (limited to 'scripts/rpki/x509.py')
-rw-r--r-- | scripts/rpki/x509.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/scripts/rpki/x509.py b/scripts/rpki/x509.py index acbb031f..ad3f0e85 100644 --- a/scripts/rpki/x509.py +++ b/scripts/rpki/x509.py @@ -21,7 +21,10 @@ class PEM_converter(object): self.b = "-----BEGIN %s-----" % kind self.e = "-----END %s-----" % kind - def toDER(self, pem): + def looks_like_PEM(self, text): + return text.startswith(self.b) + + def to_DER(self, pem): """Convert from PEM to DER.""" lines = pem.splitlines(0) while lines and lines.pop(0) != self.b: @@ -31,7 +34,7 @@ class PEM_converter(object): assert lines return base64.b64decode("".join(lines)) - def toPEM(self, der): + def to_PEM(self, der): """Convert from DER to PEM.""" b64 = base64.b64encode(der) pem = self.b + "\n" @@ -87,7 +90,7 @@ class DER_object(object): setattr(self, name, kw[name]) return if name == "PEM": - text = self.pem_convert.toDER(kw[name]) + text = self.pem_convert.to_DER(kw[name]) self.clear() self.DER = text return @@ -96,12 +99,12 @@ class DER_object(object): self.clear() self.DER = text return - if name in ("PEM_file", "DER_file"): + if name in ("PEM_file", "DER_file", "Auto_file"): f = open(kw[name], "r") text = f.read() f.close() - if name == "PEM_file": - text = self.pem_converter.toDER(text) + if name == "PEM_file" or (name == "Auto_file" and self.pem_converter.looks_like_PEM(text)): + text = self.pem_converter.to_DER(text) self.clear() self.DER = text return @@ -123,7 +126,7 @@ class DER_object(object): def get_PEM(self): """Get the PEM representation of this object.""" - return self.pem_converter.toPEM(self.get_DER()) + return self.pem_converter.to_PEM(self.get_DER()) class X509(DER_object): """X.509 certificates. |