# Module BSV <a id="module-BSV"></a>

<code>#inspect</code> overrides on classes carrying secret material. Required
by <code>cli/dispatcher.rb</code> so the protection is guaranteed any time the
CLI is in play. The override is harmless for non-CLI callers — it changes how
`inspect` renders, not the underlying state.

Background: Ruby's default +Object#inspect+ dumps ivars verbatim. For
`KeyDeriver` that means leaking +@root_key+; for `Engine` that means leaking
+@key_deriver+ (which in turn leaks +@root_key+). Custom `inspect` methods
elide both. See +Secrets on the CLI+ in the plan.

This file deliberately reopens two existing classes (KeyDeriver + Engine) to
add ONLY the <code>#inspect</code> override. Grouping the overrides in one
file makes their joint purpose (secrets redaction) visible at a glance.
Splitting them across two files for the cop's benefit would scatter the
security-relevant overrides.
