1*7af41682SXin LI 2*7af41682SXin LI#------------------------------------------------------------------------------ 3*7af41682SXin LI# $File: k9,v 1.1 2026/03/20 13:59:12 christos Exp $ 4*7af41682SXin LI# k9: file(1) magic for K9 Self-Validating Components 5*7af41682SXin LI# URL: https://github.com/hyperpolymath/k9-svc 6*7af41682SXin LI# From: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> 7*7af41682SXin LI 8*7af41682SXin LI# K9 files are self-validating components using the must-just-nickel triad. 9*7af41682SXin LI# They begin with the ASCII magic number "K9!" (0x4B 0x39 0x21) and use a 10*7af41682SXin LI# tiered security model: Kennel (data only), Yard (validation), Hunt (full 11*7af41682SXin LI# execution with cryptographic signature). 12*7af41682SXin LI# Specification: https://github.com/hyperpolymath/standards/blob/main/k9-svc/SPEC.adoc 13*7af41682SXin LI# MIME type: application/vnd.k9+nickel 14*7af41682SXin LI 15*7af41682SXin LI# K9 magic number: "K9!" at byte offset 0 16*7af41682SXin LI0 string K9! K9 Self-Validating Component 17*7af41682SXin LI!:mime application/vnd.k9+nickel 18*7af41682SXin LI!:ext k9 19*7af41682SXin LI 20*7af41682SXin LI# Detect security level from content following the magic number 21*7af41682SXin LI>&0 search/1024 security_level:\ 'Kennel K9 Self-Validating Component (Kennel level, data only) 22*7af41682SXin LI 23*7af41682SXin LI>&0 search/1024 security_level:\ 'Yard K9 Self-Validating Component (Yard level, validation) 24*7af41682SXin LI 25*7af41682SXin LI>&0 search/1024 security_level:\ 'Hunt K9 Self-Validating Component (Hunt level, executable) 26*7af41682SXin LI 27*7af41682SXin LI# K9 Nickel contract files (.k9.ncl) -- pedigree definition 28*7af41682SXin LI0 search/256 K9Pedigree K9 Nickel contract (pedigree definition) 29*7af41682SXin LI!:mime application/vnd.k9+nickel 30*7af41682SXin LI!:ext k9.ncl/ncl 31*7af41682SXin LI!:strength -10 32