@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix mcr: <https://registry.apicrafter.io/vocab#> .
@prefix dt: <https://registry.apicrafter.io/datatype/> .
@prefix cat: <https://registry.apicrafter.io/category/> .
@prefix country: <https://registry.apicrafter.io/country/> .
@prefix tool: <https://registry.apicrafter.io/tool/> .

dt:apple_cdhash a skos:Concept ;
    skos:inScheme <https://registry.apicrafter.io/> ;
    skos:topConceptOf <https://registry.apicrafter.io/> ;
    skos:notation "apple_cdhash" ;
    skos:prefLabel "Apple code directory hash (cdhash)"@en ;
    skos:definition "Hash of the code directory in an Apple code signature, which in turn holds the hashes of the signed code and resources, so the cdhash identifies one signed build of a Mach-O binary or bundle. It is 20 bytes, written as 40 lowercase hexadecimal digits: a SHA-1 hash, or a SHA-256 hash truncated to 20 bytes. codesign --display -vvv shows it as CDHash, and a notarization ticket is a set of cdhashes. Each architecture of a universal binary has its own cdhash. VirusTotal reports it in signature_info. The value alone looks like a SHA-1 hash."@en ;
    skos:example "ff19a91b272a49d1a0f16ee54c672da60f0e116f" ;
    skos:example "4dbc916a07fb02653ceecef8bef09f43e55cf436" ;
    mcr:status "draft" ;
    mcr:isPII false ;
    mcr:classification "identifier" ;
    mcr:regexp "^[0-9a-f]{40}$" ;
    rdfs:seeAlso <https://developer.apple.com/documentation/technotes/tn3126-inside-code-signing-hashes> ;
    rdfs:seeAlso <https://virustotal.readme.io/reference/file-object-signature-info> .
