Hi Luveh,
the documentation is not perfect enough not to be misinterpretable.
The formulation "path to BIND key file (private or public, but both MUST
exist)" means that both the public and private Bind key files must
exist. For example, Kexample.com.+013+65449.key and
Kexample.com.+013+65449.private
There is currently no way of importing keys that had been stored into a
HSM by Bind. Sorry.
If you really need to migrate from Bind to Knot while having all the
private keys in a HSM (or some PKCS#11 device), I guess it might work
the way that you perform manual key roll-over in sync with the
migration, so that you always need to import just public keys, and Knot
generates its new keys in the HSM itself. However, this would require
several non-trivial steps (and decent amount of coffee).
Libor
Dne 11. 08. 21 v 23:17 Luveh Keraph napsal(a):
The documentation for keymgr describes the import-bind
command as follows:
import-bind BIND_key_file
Imports a BIND-style key into KASP database (converting it to PEM
format). Takes one argument: path to BIND key file (private or public,
but both MUST exist).
What is imported into the KASP exactly? I thought that the KASP
database consisted of public keys alone. This aside, importing a
private key will depend on whether the cryptographic provider supports
such an operation - many HSMs, in particular those with stringent FIPS
140-compliance requirements, will in general refuse to do so.
So, what does this command do with the private key? Is it turned over
to the cryptographic provider, returning an error if this provider
refuses to import private keys? If such is the case, is the public key
still imported into the KASP, even though there will be no matching
private key for it anywhere in the system?
One can of course use a public key without a matching private key, but
in a DNSSEC software framework like Knot, where the bulk of the
activity consists of carrying out signing operations, the presence of
a complete key pair would seem to be essential.