Skip to content

device_credentials_installer: generate the key on-device with tls_cred_shell - #101

Draft
PavelVPV wants to merge 2 commits into
nRFCloud:mainfrom
PavelVPV:tls-credentials-keygen
Draft

PavelVPV wants to merge 2 commits into
nRFCloud:mainfrom
PavelVPV:tls-credentials-keygen

Conversation

@PavelVPV

Copy link
Copy Markdown
Contributor

The TLS Credentials Shell of Zephyr can now generate the device private key and the CSR on the device (cred keygen and cred csr). Use it for the tls_cred_shell command type when no local certificate is given, instead of failing. The private key never leaves the device, and with --verify the device public key is compared with the device certificate, like for nrf_cloud_cred_shell. With --local-cert or --local-cert-file, the command type still installs a key generated on the host.

The TLS Credentials Shell prints the public key as a DER SubjectPublicKeyInfo, and the nrf_cloud_cred shell prints a raw SEC1 point, so compare the format that the device returns.

This needs nrfcredstore with TLSCredKeygenShellInterface.

PavelVPV and others added 2 commits October 23, 2026 10:21
…d_shell

The TLS Credentials Shell of Zephyr can now generate the device private
key and the CSR on the device (cred keygen and cred csr). Use it for the
tls_cred_shell command type when no local certificate is given, instead
of failing. The private key never leaves the device, and with --verify
the device public key is compared with the device certificate, like for
nrf_cloud_cred_shell. With --local-cert or --local-cert-file, the
command type still installs a key generated on the host.

The TLS Credentials Shell prints the public key as a DER
SubjectPublicKeyInfo, and the nrf_cloud_cred shell prints a raw SEC1
point, so compare the format that the device returns.

This needs nrfcredstore with TLSCredKeygenShellInterface.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Newer firmware generates the key and the CSR with the TLS Credentials
Shell, which the tls_cred_shell command type supports, and does not have
the nrf_cloud_cred shell commands.

Keep nrf_cloud_cred_shell working for older firmware, but print a
warning when it is used and mark it as deprecated in the help text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant