Example #1
0
    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
Example #2
0
 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
Example #4
0
 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}