def call_ssl(args): """Abstract call to SSL-based queries.""" client = SslRequest.from_config() pruned = prune_args( query=args.query, compact_record=args.compact, field=args.field, ) valid_types = ['search', 'history'] if args.type and args.type not in valid_types: raise ValueError("Invalid type specified.") if not args.type: data = SSLResponse.process( {'results': [client.get_ssl_certificate_details(**pruned)]}) elif args.type == 'history': data = SSLHistoryResponse.process( client.get_ssl_certificate_history(**pruned)) elif args.type == 'search' and args.field: data = SSLResponse.process( client.search_ssl_certificate_by_field(**pruned)) else: raise ValueError("Field argument was missing from the call.") return data
def call_attribute(args): """Abstract call to attribute-based queries.""" client = AttributeRequest.from_config() pruned = prune_args(query=args.query, type=args.type) if args.type == 'tracker': data = client.get_host_attribute_trackers(**pruned) else: data = client.get_host_attribute_components(**pruned) return data
def call_whois(args): """Abstract call to WHOIS-based queries.""" client = WhoisRequest.from_config() pruned = prune_args(query=args.query, compact_record=args.compact, field=args.field) if not args.field: data = client.get_whois_details(**pruned) else: data = client.search_whois_by_field(**pruned) return data
def call_attribute(args): """Abstract call to attribute-based queries.""" client = AttributeRequest.from_config() pruned = prune_args( query=args.query, type=args.type ) if args.type == 'tracker': data = client.get_host_attribute_trackers(**pruned) else: data = client.get_host_attribute_components(**pruned) return data
def call_actions(args): """Abstract call to actions-based queries.""" client = ActionsClient.from_config() pruned = prune_args( query=args.query, tags=args.tags, classification=args.classification, monitor=args.monitor, sinkhole=args.sinkhole, dynamic_dns=args.dynamic_dns, ever_compromised=args.ever_compromised, metadata=args.metadata ) if args.tags: tag_values = [x.strip() for x in args.tags.split(',')] pruned['tags'] = tag_values if args.add_tags: data = client.add_tags(**pruned) elif args.remove_tags: data = client.remove_tags(**pruned) elif args.set_tags: data = client.set_tags(**pruned) else: raise ValueError("Tag action required.") if args.classification: data = client.set_classification_status(**pruned) if args.monitor: pruned['status'] = to_bool(args.monitor) data = client.set_monitor_status(**pruned) if args.sinkhole: pruned['status'] = to_bool(args.sinkhole) data = client.set_sinkhole_status(**pruned) if args.dynamic_dns: pruned['status'] = to_bool(args.dynamic_dns) data = client.set_dynamic_dns_status(**pruned) if args.ever_compromised: pruned['status'] = to_bool(args.ever_compromised) data = client.set_ever_compromised_status(**pruned) if args.metadata: data = client.get_metadata(**pruned) return data
def call_dns(args): """Abstract call to DNS-based queries.""" client = DnsRequest.from_config() pruned = prune_args(query=args.query, end=args.end, start=args.start, timeout=args.timeout, sources=args.sources) if args.unique: data = client.get_unique_resolutions(**pruned) else: data = client.get_passive_dns(**pruned) return data
def call_whois(args): """Abstract call to WHOIS-based queries.""" client = WhoisRequest.from_config() pruned = prune_args( query=args.query, compact_record=args.compact, field=args.field ) if not args.field: data = client.get_whois_details(**pruned) else: data = client.search_whois_by_field(**pruned) return data
def call_actions(args): """Abstract call to actions-based queries.""" client = ActionsClient.from_config() pruned = prune_args(query=args.query, tags=args.tags, classification=args.classification, monitor=args.monitor, sinkhole=args.sinkhole, dynamic_dns=args.dynamic_dns, ever_compromised=args.ever_compromised, metadata=args.metadata) data = {} if args.tags: tag_values = [x.strip() for x in args.tags.split(',')] pruned['tags'] = tag_values if args.add_tags: data = client.add_tags(**pruned) elif args.remove_tags: data = client.remove_tags(**pruned) elif args.set_tags: data = client.set_tags(**pruned) else: raise ValueError("Tag action required.") if args.classification: data = client.set_classification_status(**pruned) if args.monitor: pruned['status'] = to_bool(args.monitor) data = client.set_monitor_status(**pruned) if args.sinkhole: pruned['status'] = to_bool(args.sinkhole) data = client.set_sinkhole_status(**pruned) if args.dynamic_dns: pruned['status'] = to_bool(args.dynamic_dns) data = client.set_dynamic_dns_status(**pruned) if args.ever_compromised: pruned['status'] = to_bool(args.ever_compromised) data = client.set_ever_compromised_status(**pruned) if args.metadata: data = client.get_metadata(**pruned) return ActionsResponse.process(data)
def call_dns(args): """Abstract call to DNS-based queries.""" client = DnsRequest.from_config() pruned = prune_args( query=args.query, end=args.end, start=args.start, timeout=args.timeout, sources=args.sources ) if args.unique: data = client.get_unique_resolutions(**pruned) else: data = client.get_passive_dns(**pruned) return data
def call_ssl(args): """Abstract call to SSL-based queries.""" client = SslRequest.from_config() pruned = prune_args( query=args.query, compact_record=args.compact, field=args.field, type=args.type ) valid_types = ['search', 'history'] if args.type and args.type not in valid_types: raise ValueError("Invalid type specified.") if not args.type: data = client.get_ssl_certificate_details(**pruned) elif args.type == 'history': data = client.get_ssl_certificate_history(**pruned) elif args.type == 'search' and args.field: data = client.search_ssl_certificate_by_field(**pruned) else: raise ValueError("Field argument was missing from the call.") return data