コード例 #1
0
ファイル: ECGenerator.py プロジェクト: morristech/TACKpy
    def _getDerEncodedKeysFromEc(self, ec):
        # Get the ASN.1 ECPrivateKey for the object
        bio = BIO.MemoryBuffer()
        ec.save_key_bio(bio, cipher=None)
        pemEncodedKeys = bio.getvalue()

        return PEMDecoder(pemEncodedKeys).getDecoded("EC PRIVATE KEY")
コード例 #2
0
    def _getInputCertificate(self):
        contents = self._getInputFileContents()

        if contents is None:
            return None

        if PEMDecoder(contents).containsEncoded("CERTIFICATE"):
            certificate = TlsCertificate()
            certificate.open(self._getOptionValue("-i"))
            return certificate
コード例 #3
0
    def _getInputTack(self):
        contents = self._getInputFileContents()

        if contents is None:
            return None

        if PEMDecoder(contents).containsEncoded("TACK"):
            return Tack.createFromPem(contents)

        return None
コード例 #4
0
    def createFromPemList(cls, data):
        """Parse a string containing a sequence of PEM Tacks.

        Raise a SyntaxError if input is malformed.
        """
        tacks = []
        bList = PEMDecoder(data).decodeList("TACK")
        for b in bList:
            tacks.append(Tack(b))

        return tacks
コード例 #5
0
    def createFromPemList(cls, data):
        """Parse a string containing a sequence of PEM Break Sigs.

        Raise a SyntaxError if input is malformed.
        """
        breakSigs = []
        bList = PEMDecoder(data).getDecodedList("TACK BREAK SIG")
        for b in bList:
            breakSigs.append(TackBreakSig(b))

        return breakSigs
コード例 #6
0
ファイル: ViewCommand.py プロジェクト: sambacha/anubis_py
    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))
コード例 #7
0
ファイル: ViewCommand.py プロジェクト: kilink/TACKpy
    def execute(self):
        text, binary = self._readFile(self.argv)
        fileType = None

        try:
            if text:
                decoder = PEMDecoder(text)
                if decoder.containsEncoded("TACK PRIVATE KEY"):
                    fileType = "Private Key"
                    kf = TackKeyFile.createFromPem(text, None)
                    print(str(kf))
                    return
                elif decoder.containsEncoded("TACK"):
                    fileType = "TACK"
                    tack = Tack.createFromPem(text)
                    print(str(tack))
                    return
                elif decoder.containsEncoded("TACK BREAK SIG"):
                    fileType = "Break Sig"
                    tbsList = TackBreakSig.createFromPemList(text)
                    s = ""
                    for tbs in tbsList:
                        s += str(tbs)
                    print(s)
                    return
                elif decoder.containsEncoded("CERTIFICATE"):
                    fileType = "Certificate"
                    sslc = TlsCertificate()
                    sslc.parsePem(text)
                    print(sslc.writeText())
                    return
                    # Is it an SSL certificate?
            try:
                sslc = TlsCertificate()
                sslc.parse(binary)
                print(sslc.writeText())
            except SyntaxError:
                self.printError("Unrecognized file type")
        except SyntaxError as e:
            self.printError("Error parsing %s: %s" % (fileType, e))
コード例 #8
0
    def _getInputFile(self):
        fileName = self._getOptionValue("-i")
        if fileName is None:
            self.printError("-i missing (Certificate or TACK)")
        try:

            text, binary = self._readFileTextAndBinary(fileName)
            if text:
                pem = PEMDecoder(text)
                if pem.containsEncoded("TACK"):
                    return (Tack.createFromPem(text), None)
                elif pem.containsEncoded("CERTIFICATE"):
                    return (None, TlsCertificate.createFromPem(text))
                else:
                    self.printError("Unrecognized input file: %s" % fileName)
            else:
                return (None, TlsCertificate(binary))

        except IOError:
            self.printError("Error opening input file: %s" % fileName)
        except SyntaxError:
            self.printError("Error parsing input file: %s" % fileName)
コード例 #9
0
ファイル: ViewCommand.py プロジェクト: morristech/TACKpy
    def execute(self):
        text, binary = self._readFile(self.argv)
        fileType = None

        try:
            if text:
                decoder = PEMDecoder(text)
                if decoder.containsEncoded("TACK PRIVATE KEY"):
                    fileType = "Private Key"
                    kf = TackKeyFile.createFromPem(text, None)
                    print(str(kf))
                    return
                elif decoder.containsEncoded("TACK"):
                    fileType = "TACK"
                    tack = Tack.createFromPem(text)
                    print(str(tack))
                    return
                elif decoder.containsEncoded("TACK BREAK SIG"):
                    fileType = "Break Sig"
                    tbsList = TackBreakSig.createFromPemList(text)
                    s = ""
                    for tbs in tbsList:
                        s += str(tbs)
                    print(s)
                    return
                elif decoder.containsEncoded("CERTIFICATE"):
                    fileType = "Certificate"
                    sslc = TlsCertificate()
                    sslc.parsePem(text)
                    print(sslc.writeText())
                    return
                    # Is it an SSL certificate?
            try:
                sslc = TlsCertificate()
                sslc.parse(binary)
                print(sslc.writeText())
            except SyntaxError:
                self.printError("Unrecognized file type")
        except SyntaxError as e:
            self.printError("Error parsing %s: %s" % (fileType, e))
コード例 #10
0
 def createFromPem(cls, pem):
     return cls(PEMDecoder(pem).decode("TACK"))
コード例 #11
0
 def createFromPem(cls, data):
     return cls(PEMDecoder(data).getDecoded("TACK BREAK SIG"))
コード例 #12
0
ファイル: TackKeyFile.py プロジェクト: sambacha/anubis_py
 def createFromPem(cls, pem, password):
     return cls(PEMDecoder(pem).decode("TACK PRIVATE KEY"), password)
コード例 #13
0
 def createFromPem(cls, data, extenderFormat=False):
     return cls(PEMDecoder(data).decode("TACK EXTENSION"), extenderFormat)
コード例 #14
0
 def createFromPem(cls, s):
     return cls(PEMDecoder(s).decode("CERTIFICATE"))
コード例 #15
0
 def parsePem(self, s):
     b = PEMDecoder(s).getDecoded("CERTIFICATE")
     self.parse(b)
コード例 #16
0
ファイル: TackExtension.py プロジェクト: eaescob/tackpy
 def createFromPem(cls, data):
     return cls(PEMDecoder(data).decode("TACK EXTENSION"))