def from_asn1_dict(asn1_dict): asn1_type, value = asn1_dict.popitem() registered_type = TypeRegistry.find_by_asn1_type(asn1_type) # Instantiate condition condition = Condition() condition.type_id = registered_type['type_id'] condition.hash = value['fingerprint'] condition.cost = value['cost'] condition._subtypes = set() if registered_type['class'].TYPE_CATEGORY == 'compound': subtypes = { TypeRegistry.find_by_type_id(type_id)['name'] for type_id in compress( range(Condition.MAX_SAFE_SUBTYPES), map(lambda bit: int(bit), value['subtypes']) ) } condition._subtypes.update(subtypes) return condition
def from_asn1_dict(asn1_dict): asn1_type, value = asn1_dict.popitem() instance = TypeRegistry.find_by_asn1_type(asn1_type)['class']() instance.parse_asn1_dict_payload(value) instance.asn1_dict = {asn1_type: value} return instance
def from_asn1_dict(asn1_dict): asn1_type, value = asn1_dict.popitem() instance = TypeRegistry.find_by_asn1_type(asn1_type)['class']() instance.parse_asn1_dict_payload(value) instance.asn1_dict = {asn1_type: value} return instance
def to_asn1_json(self): asn1_type, value = self.to_asn1_dict().popitem() condition_type = TypeRegistry.find_by_asn1_type(asn1_type) return {'type': condition_type['asn1_condition'], 'value': value}