Derives a SubHandle key from its parent Handle key — the single
implementation shared by Handle.deriveSubHandle (autonomous,
two-step from the Handle) and Identity.deriveSubHandle (atomic,
from the Identity). Byte-parity of both entry points is pinned by
test 5.3.3 (derivation.spec.ts) and by the golden vectors.
HKDF-SHA256(handleKey, salt = "", info = "me2em/subhandle/v1/{handleName}/{subName}", 32). Both names
are canonicalized (NFKC → lowercase → trim) by
DERIVATION_PATHS.subhandle.
Derives a SubHandle key from its parent Handle key — the single implementation shared by
Handle.deriveSubHandle(autonomous, two-step from the Handle) andIdentity.deriveSubHandle(atomic, from the Identity). Byte-parity of both entry points is pinned by test 5.3.3 (derivation.spec.ts) and by the golden vectors.HKDF-SHA256(handleKey, salt = "", info = "me2em/subhandle/v1/{handleName}/{subName}", 32). Both names are canonicalized (NFKC → lowercase → trim) by DERIVATION_PATHS.subhandle.