diff options
Diffstat (limited to 'sk-usbhid.c')
-rw-r--r-- | sk-usbhid.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sk-usbhid.c b/sk-usbhid.c index 2efb377c5..0305683fe 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c | |||
@@ -1104,8 +1104,7 @@ read_rks(struct sk_usbhid *sk, const char *pin, | |||
1104 | } | 1104 | } |
1105 | 1105 | ||
1106 | srk->key.key_handle_len = fido_cred_id_len(cred); | 1106 | srk->key.key_handle_len = fido_cred_id_len(cred); |
1107 | memcpy(srk->key.key_handle, | 1107 | memcpy(srk->key.key_handle, fido_cred_id_ptr(cred), |
1108 | fido_cred_id_ptr(cred), | ||
1109 | srk->key.key_handle_len); | 1108 | srk->key.key_handle_len); |
1110 | 1109 | ||
1111 | switch (fido_cred_type(cred)) { | 1110 | switch (fido_cred_type(cred)) { |
@@ -1121,6 +1120,9 @@ read_rks(struct sk_usbhid *sk, const char *pin, | |||
1121 | goto out; /* XXX free rk and continue */ | 1120 | goto out; /* XXX free rk and continue */ |
1122 | } | 1121 | } |
1123 | 1122 | ||
1123 | if (fido_cred_prot(cred) == FIDO_CRED_PROT_UV_REQUIRED) | ||
1124 | srk->flags |= SSH_SK_USER_VERIFICATION_REQD; | ||
1125 | |||
1124 | if ((r = pack_public_key(srk->alg, cred, | 1126 | if ((r = pack_public_key(srk->alg, cred, |
1125 | &srk->key)) != 0) { | 1127 | &srk->key)) != 0) { |
1126 | skdebug(__func__, "pack public key failed"); | 1128 | skdebug(__func__, "pack public key failed"); |