def execute(self): text, binary = self._readFileTextAndBinary(self.argRemainder[0]) fileType = None try: if text: decoder = PEMDecoder(text) if decoder.containsEncoded("TACK PRIVATE KEY"): fileType = "Private Key" kf = TackKeyFile.createFromPem(text, None) sys.stdout.write(str(kf)) return elif decoder.containsEncoded("TACK"): fileType = "Tack" tack = Tack.createFromPem(text) sys.stdout.write(str(tack)) return elif decoder.containsEncoded("TACK EXTENSION"): fileType = "TACK Extension" tackExt = TackExtension.createFromPem(text, True) sys.stdout.write(str(tackExt)) return elif decoder.containsEncoded( "CERTIFICATE"): fileType = "Certificate" sslc = TlsCertificate.createFromPem(text) sys.stdout.write(str(sslc)) return # Is it a certificate? try: sslc = TlsCertificate(binary) sys.stdout.write(str(sslc)) except SyntaxError: self.printError("Unrecognized file type") except SyntaxError as e: self.printError("Error parsing %s: %s" % (fileType, e))
def getTackExtension(self, extenderFormat=False): fileName = self.argRemainder[0] try: contents = open(fileName, "r").read() return TackExtension.createFromPem(contents, extenderFormat) except IOError as e: self.printError("Error opening extension: %s\n%s" % (fileName, e)) except SyntaxError as e: self.printError("Error parsing extension: %s\n%s" % (fileName, e))
def getTackExtension(self, mandatory): fileName = self._getOptionValue("-E") if fileName is None: if mandatory: self.printError("-E missing (TACK Extension)") else: return None try: contents = open(fileName, "r").read() return TackExtension.createFromPem(contents) except IOError: self.printError("Error opening extension: %s" % fileName) except SyntaxError: self.printError("Error parsing extension: %s" % fileName)