mirror of https://github.com/MISP/misp-modules
Make stub strict parser
commit
5a3465844a
|
@ -25,6 +25,16 @@ def is_valid_ip(ip: str) -> bool:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def is_cof_valid_strict(d: dict) -> bool:
|
||||||
|
"""Check the COF - do the full JSON schema validation.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
--------
|
||||||
|
True on success, False on validation failure.
|
||||||
|
"""
|
||||||
|
return True # FIXME
|
||||||
|
|
||||||
|
|
||||||
def is_cof_valid_simple(d: dict) -> bool:
|
def is_cof_valid_simple(d: dict) -> bool:
|
||||||
"""Check MANDATORY fields according to COF - simple check, do not do the full JSON schema validation.
|
"""Check MANDATORY fields according to COF - simple check, do not do the full JSON schema validation.
|
||||||
|
|
||||||
|
@ -61,7 +71,7 @@ def is_cof_valid_simple(d: dict) -> bool:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def validate_cof(d: dict, strict=False) -> bool:
|
def validate_cof(d: dict, strict=True) -> bool:
|
||||||
"""Validate an input passive DNS COF (given as dict).
|
"""Validate an input passive DNS COF (given as dict).
|
||||||
strict might be set to False in order to loosen the checking.
|
strict might be set to False in order to loosen the checking.
|
||||||
With strict==True, a full JSON Schema validation will happen.
|
With strict==True, a full JSON Schema validation will happen.
|
||||||
|
@ -73,6 +83,8 @@ def validate_cof(d: dict, strict=False) -> bool:
|
||||||
"""
|
"""
|
||||||
if not strict:
|
if not strict:
|
||||||
return is_cof_valid_simple(d)
|
return is_cof_valid_simple(d)
|
||||||
|
else:
|
||||||
|
return is_cof_valid_strict(d)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -95,5 +107,9 @@ if __name__ == "__main__":
|
||||||
print("line %d is valid: %s" % (i, retval))
|
print("line %d is valid: %s" % (i, retval))
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
test2 = '{"count": 2, "time_first": 1619556027, "time_last": 1619556034, "rrname": "westernunion.com.ph.unblock-all.com.beta.opera-mini.net.", "rrtype": "A", "bailiwick": "beta.opera-mini.net.", "rdata": ["185.26.181.253"]}'
|
||||||
|
for entry in ndjson.loads(test2):
|
||||||
|
assert validate_cof(entry)
|
||||||
|
|
||||||
print(80*"=", file=sys.stderr)
|
print(80*"=", file=sys.stderr)
|
||||||
print("Unit Tests DONE", file=sys.stderr)
|
print("Unit Tests DONE", file=sys.stderr)
|
||||||
|
|
Loading…
Reference in New Issue