add an extra flag to sk_probe() to indicate whether we're
authordjm <djm@openbsd.org>
Wed, 17 Aug 2022 06:01:57 +0000 (06:01 +0000)
committerdjm <djm@openbsd.org>
Wed, 17 Aug 2022 06:01:57 +0000 (06:01 +0000)
probing for a FIDO resident key or not. Unused here, but will
make like easier for portable

usr.bin/ssh/sk-usbhid.c

index e4d38c0..220a9fd 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sk-usbhid.c,v 1.41 2022/07/20 03:31:42 djm Exp $ */
+/* $OpenBSD: sk-usbhid.c,v 1.42 2022/08/17 06:01:57 djm Exp $ */
 /*
  * Copyright (c) 2019 Markus Friedl
  * Copyright (c) 2020 Pedro Martelletto
@@ -443,7 +443,7 @@ out:
 
 static struct sk_usbhid *
 sk_probe(const char *application, const uint8_t *key_handle,
-    size_t key_handle_len)
+    size_t key_handle_len, int probe_resident)
 {
        struct sk_usbhid *sk;
        fido_dev_info_t *devlist;
@@ -751,7 +751,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len,
        if (device != NULL)
                sk = sk_open(device);
        else
-               sk = sk_probe(NULL, NULL, 0);
+               sk = sk_probe(NULL, NULL, 0, 0);
        if (sk == NULL) {
                ret = SSH_SK_ERR_DEVICE_NOT_FOUND;
                skdebug(__func__, "failed to find sk");
@@ -1046,9 +1046,9 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen,
        if (device != NULL)
                sk = sk_open(device);
        else if (pin != NULL || (flags & SSH_SK_USER_VERIFICATION_REQD))
-               sk = sk_probe(NULL, NULL, 0);
+               sk = sk_probe(NULL, NULL, 0, 0);
        else
-               sk = sk_probe(application, key_handle, key_handle_len);
+               sk = sk_probe(application, key_handle, key_handle_len, 0);
        if (sk == NULL) {
                ret = SSH_SK_ERR_DEVICE_NOT_FOUND;
                skdebug(__func__, "failed to find sk");
@@ -1312,7 +1312,7 @@ sk_load_resident_keys(const char *pin, struct sk_option **options,
        if (device != NULL)
                sk = sk_open(device);
        else
-               sk = sk_probe(NULL, NULL, 0);
+               sk = sk_probe(NULL, NULL, 0, 1);
        if (sk == NULL) {
                ret = SSH_SK_ERR_DEVICE_NOT_FOUND;
                skdebug(__func__, "failed to find sk");