xref: /freebsd/contrib/file/magic/Magdir/k9 (revision 7af41682a96bf7058b82665c33bb9b1bfa079c17)
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