Skip to content

Commit 7393b48

Browse files
committed
ssh-add: don't consider a sk_provider a key constraint
unless explicitly specified, don't consider a sk_provider a key constraint, allowing ssh-sk keys using the default internal provider to be added with SSH2_AGENTC_ADD_IDENTITY instead of SSH2_AGENTC_ADD_ID_CONSTRAINED.
1 parent deecf32 commit 7393b48

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

ssh-add.c

+6-3
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ add_file(int agent_fd, const char *filename, int key_only, int qflag,
347347
}
348348
ssh_free_identitylist(idlist);
349349
}
350-
350+
#ifndef WINDOWS
351351
if (sshkey_is_sk(private)) {
352352
if (skprovider == NULL) {
353353
fprintf(stderr, "Cannot load FIDO key %s "
@@ -363,7 +363,10 @@ add_file(int agent_fd, const char *filename, int key_only, int qflag,
363363
/* Don't send provider constraint for other keys */
364364
skprovider = NULL;
365365
}
366-
366+
#else
367+
if (!sshkey_is_sk(private))
368+
skprovider = NULL;
369+
#endif
367370
if ((r = ssh_add_identity_constrained(agent_fd, private, comment,
368371
lifetime, confirm, maxsign, skprovider)) == 0) {
369372
ret = 0;
@@ -796,7 +799,7 @@ main(int argc, char **argv)
796799
goto done;
797800
}
798801

799-
#ifdef ENABLE_SK_INTERNAL
802+
#if !defined(WINDOWS) && defined(ENABLE_SK_INTERNAL)
800803
if (skprovider == NULL)
801804
skprovider = "internal";
802805
#endif

0 commit comments

Comments
 (0)