def test_verify_attribute_pgp_proof(self): events = Events() attribute = pickle.load(open('res/pgp_attribute_1.pickle')) valid = events.verify_attribute_pgp_proof(attribute) self.assertTrue(valid) attribute = pickle.load(open('res/pgp_attribute_2.pickle')) valid = events.verify_attribute_pgp_proof(attribute) self.assertIsNone(valid) attribute = pickle.load(open('res/pgp_attribute_3.pickle')) valid = events.verify_attribute_pgp_proof(attribute) self.assertFalse(valid)
def retrieve(attributeid): """Retrieve an attribute.""" events = Events() attribute = events.retrieve_attribute(attributeid) if attribute is None: click.echo("No such attribute.") return click.echo() echo_attribute_block(attribute) click.echo() if 'proof_valid' in attribute: click.echo("Proof status for attribute ID #" + str(attribute['attributeID']) + ':') if attribute['proof_valid'] is None: click.echo("\tUnknown") elif attribute['proof_valid']: click.echo("\tValid") else: click.echo("\tINVALID") click.echo() click.echo("Signatures for attribute ID #" + str(attribute['attributeID']) + ':') for signature in attribute['signatures_status']['signatures']: sig_line = "\t#" + str(signature['signatureID']) if signature['revocation']: sig_line += " [revoked]" elif signature['expired']: sig_line += " [expired]" elif signature['valid']: sig_line += " [valid]" sig_line += " by " + signature['signer'] sig_line += (" [trusted]" if userconfig.is_trusted(attribute['owner']) else " [untrusted]") click.echo(sig_line) click.echo() click.echo("--ATTRIBUTE DATA:") click.echo(attribute['data'])
def search(attributetype, identifier, owner): """Search for attributes.""" # Pad identifiers with zeros. if identifier is not None: if identifier.startswith('0x'): # Hex data. identifier = identifier.ljust(66, '0') else: identifier = identifier.ljust(32, '\x00') events = Events() attributes = events.filter_attributes(None, owner, identifier) for attribute in attributes: if attributetype is not None and attributetype != attribute['attributeType']: continue signatures_status = events.get_attribute_signatures_status(attribute['attributeID']) echo_attribute_block(attribute, signatures_status) click.echo()
def search(attributetype, identifier, owner): """Search for attributes.""" # Pad identifiers with zeros. """ if identifier is not None: if identifier.startswith('0x'): # Hex data. identifier = identifier.ljust(66, '0') else: identifier = identifier.ljust(32, '\x00') """ events = Events() attributes = events.filter_attributes(None, owner, identifier) for attribute in attributes: if attributetype is not None and attributetype != attribute[ 'attributeType']: continue signatures_status = events.get_attribute_signatures_status( attribute['attributeID']) echo_attribute_block(attribute, signatures_status) click.echo()