{
    "$id": "../common/hashes-type.json",
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "hashes",
    "description": "A dictionary captures a set of key/value pairs",
    "type": "object",
    "patternProperties": {
        "^[a-zA-Z0-9_-]{3,256}$": {
            "type": "string",
            "description": "Custom hash key"
        },
        "^MD5$": {
            "type": "string",
            "description": "Specifies the MD5 message digest algorithm.",
            "pattern": "^[a-fA-F0-9]{32}$"
        },
        "^MD6$": {
            "type": "string",
            "description": "Specifies the MD6 message digest algorithm.",
            "pattern": "^[a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{56}|[a-fA-F0-9]{64}|[a-fA-F0-9]{96}|[a-fA-F0-9]{128}$"
        },
        "^RIPEMD-160$": {
            "type": "string",
            "description": "Specifies the RIPEMD­-160 (R​ACE​ Integrity Primitives Evaluation Message Digest)​ cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{40}$"
        },
        "^SHA-1$": {
            "type": "string",
            "description": "Specifies the SHA­-1 (secure-­hash algorithm 1) cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{40}$"
        },
        "^SHA-224$": {
            "type": "string",
            "description": "Specifies the SHA-­224 cryptographic hash function (part of the SHA­2 family).",
            "pattern": "^[a-fA-F0-9]{56}$"
        },
        "^SHA-256$": {
            "type": "string",
            "description": "Specifies the SHA-­256 cryptographic hash function (part of the SHA­2 family).",
            "pattern": "^[a-fA-F0-9]{64}$"
        },
        "^SHA-384$": {
            "type": "string",
            "description": "Specifies the SHA-­384 cryptographic hash function (part of the SHA­2 family).",
            "pattern": "^[a-fA-F0-9]{96}$"
        },
        "^SHA-512$": {
            "type": "string",
            "description": "Specifies the SHA-­512 cryptographic hash function (part of the SHA­2 family).",
            "pattern": "^[a-fA-F0-9]{128}$"
        },
        "^SHA3-224$": {
            "type": "string",
            "description": "Specifies the SHA3-224 cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{56}$"
        },
        "^SHA3-256$": {
            "type": "string",
            "description": "Specifies the SHA3-256 cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{64}$"
        },
        "^SHA3-384$": {
            "type": "string",
            "description": "Specifies the SHA3-384 cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{96}$"
        },
        "^SHA3-512$": {
            "type": "string",
            "description": "Specifies the SHA3-512 cryptographic hash function.",
            "pattern": "^[a-fA-F0-9]{128}$"
        },
        "^ssdeep$": {
            "type": "string",
            "description": "Specifies the ssdeep fuzzy hashing algorithm.",
            "pattern": "^[a-zA-Z0-9/+:.]{1,128}$"
        },
        "^WHIRLPOOL$": {
            "type": "string",
            "description": "Specifies the whirlpool cryptographic hash function",
            "pattern": "^[a-fA-F0-9]{128}$"
        }
    },
    "additionalProperties": false
}