Пример #1
0
 def __init__(self, *args, **kwargs):
     super(GDBM, self).__init__(*args, **kwargs)
     first_key = self.firstkey()
     if first_key is not None:
         packet = next(parse_binary_packet_data(self[first_key]))
         self._preferred_header_format = packet.header_format
     else:
         self._preferred_header_format = constants.OLD_PACKET_HEADER_TYPE
Пример #2
0
 def __init__(self, *args, **kwargs):
     super(GDBM, self).__init__(*args, **kwargs)
     first_key = self.firstkey()
     if first_key is not None:
         packet = next(parse_binary_packet_data(self[first_key]))
         self._preferred_header_format = packet.header_format
     else:
         self._preferred_header_format = constants.OLD_PACKET_HEADER_TYPE
Пример #3
0
    def get_transferrable_key(self, fingerprint):
        if len(fingerprint) != 40:
            # Actually a key ID - find the fingerprint first.
            fingerprint = ([k
                            for k in self.keys() if k.endswith(fingerprint)] +
                           [None])[0]

        if fingerprint is None:
            return None

        self.lock_db()
        try:
            with gdbm.open(self.filename, 'r') as db:
                packet_data = db[fingerprint]
            packets = list(parse_binary_packet_data(packet_data))
            if packets:
                if packets[0].type == constants.PUBLIC_KEY_PACKET_TYPE:
                    return TransferablePublicKey.from_packets(packets)
                elif packets[0].type == constants.SECRET_KEY_PACKET_TYPE:
                    return TransferableSecretKey.from_packets(packets)
        finally:
            self.unlock_db()
Пример #4
0
    def get_transferrable_key(self, fingerprint):
        if len(fingerprint) != 40:
            # Actually a key ID - find the fingerprint first.
            fingerprint = ([
                k for k in self.keys()
                if k.endswith(fingerprint)
                ] + [None]
                )[0]

        if fingerprint is None:
            return None

        self.lock_db()
        try:
            with gdbm.open(self.filename, 'r') as db:
                packet_data = db[fingerprint]
            packets = list(parse_binary_packet_data(packet_data))
            if packets:
                if packets[0].type == constants.PUBLIC_KEY_PACKET_TYPE:
                    return TransferablePublicKey.from_packets(packets)
                elif packets[0].type == constants.SECRET_KEY_PACKET_TYPE:
                    return TransferableSecretKey.from_packets(packets)
        finally:
            self.unlock_db()