예제 #1
0
def parse_ecc(plain_text: str) -> List[str]:
    found = re.findall(r"ECC", plain_text)
    found += re.findall(r"ECC ?[0-9]+", plain_text)
    for i in range(len(found)):
        found[i] = found[i].upper()

    return deduplicate_list(found)
예제 #2
0
def parse_des(plain_text: str) -> List[str]:
    found = re.findall(r"3des", plain_text, re.IGNORECASE)
    found += re.findall(r"des3", plain_text, re.IGNORECASE)
    found += re.findall(r"triple[- ]des", plain_text, re.IGNORECASE)
    found += re.findall(r"tdes", plain_text, re.IGNORECASE)

    return deduplicate_list(found)
예제 #3
0
def parse_rsa(plain_text: str) -> List[str]:
    versions = "4096|2048|1024"

    found = re.findall(
        rf"RSA[-_ ]?(?:{versions})(?:[-/_](?:{versions}))?",
        plain_text
    )

    return deduplicate_list(found)
예제 #4
0
def parse_sha(plain_text: str) -> List[str]:
    versions = "512|384|256|224|3|2|1"

    plain_text = plain_text.replace(" ", "")
    found = re.findall(
        rf"SHA[-_ ]?\n?(?:{versions})(?:[-/_ ](?:{versions}))?",
        plain_text, re.MULTILINE
    )

    for i in range(len(found)):
        found[i] = squash_whitespace(found[i])
    return deduplicate_list(found)
예제 #5
0
def parse_java_card(plain_text: str) -> List[str]:
    found = re.findall(r"java ?card (?:[0-9]\.)*[0-9]",
                       plain_text, re.IGNORECASE)

    return deduplicate_list(found)
예제 #6
0
def parse_global_platform(plain_text: str) -> List[str]:
    found = re.findall(r"global ?platform (?:[0-9]\.)*[0-9]",
                       plain_text, re.IGNORECASE)

    return deduplicate_list(found)
예제 #7
0
def parse_eal(plain_text: str) -> List[str]:
    found = re.findall(r"[^\w](EAL ?[0-9]\+?)", plain_text)

    return deduplicate_list(found)