diff --git a/src/passkey_child/passkey_child.c b/src/passkey_child/passkey_child.c index 320996608ec..dda20b47cd9 100644 --- a/src/passkey_child/passkey_child.c +++ b/src/passkey_child/passkey_child.c @@ -84,6 +84,12 @@ int main(int argc, const char *argv[]) ERROR("Error getting assertion data.\n"); goto done; } + } else if (data.action == ACTION_GET_DEVINFO) { + ret = get_device_info(&data); + if (ret != EOK) { + ERROR("Error getting device information.\n"); + goto done; + } } else if (data.action == ACTION_VERIFY_ASSERT) { ret = verify_assert_data(&data); if (ret == EOK) { diff --git a/src/passkey_child/passkey_child.h b/src/passkey_child/passkey_child.h index 185e7e63af7..278077abc94 100644 --- a/src/passkey_child/passkey_child.h +++ b/src/passkey_child/passkey_child.h @@ -40,6 +40,7 @@ enum action_opt { ACTION_REGISTER, ACTION_AUTHENTICATE, ACTION_GET_ASSERT, + ACTION_GET_DEVINFO, ACTION_VERIFY_ASSERT }; @@ -540,6 +541,21 @@ print_assert_data(const char *key_handle, const char *crypto_challenge, errno_t get_assert_data(struct passkey_data *data); +/** + * @brief Obtain device information + * + * Obtain information of the device supporting one of the handles in parameters + * + * @param[in] data passkey data + * + * @return 0 if a device is available + * create file /var/run/passkey-pinonly or passkey-pinuv + * error code otherwise. + */ +errno_t +get_device_info(struct passkey_data *data); + + /** * @brief Verify assertion data * diff --git a/src/passkey_child/passkey_child_assert.c b/src/passkey_child/passkey_child_assert.c index 5139dc82ef0..f360e4155d9 100644 --- a/src/passkey_child/passkey_child_assert.c +++ b/src/passkey_child/passkey_child_assert.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -67,7 +68,7 @@ set_assert_client_data_hash(const struct passkey_data *data, ret, fido_strerr(ret)); goto done; } - } else { + } else if (data->action == ACTION_GET_ASSERT) { crypto_challenge = sss_base64_decode(tmp_ctx, data->crypto_challenge, &crypto_challenge_len); if (crypto_challenge == NULL) { @@ -93,6 +94,16 @@ set_assert_client_data_hash(const struct passkey_data *data, goto done; } } + else { + memset(cdh, 0, sizeof(cdh)); + ret = fido_assert_set_clientdata_hash(_assert, cdh, sizeof(cdh)); + if (ret != FIDO_OK) { + DEBUG(SSSDBG_OP_FAILURE, + "fido_assert_set_clientdata_hash failed [%d]: %s.\n", + ret, fido_strerr(ret)); + goto done; + } + } done: talloc_free(tmp_ctx); @@ -329,6 +340,27 @@ reset_public_key(struct pk_data_t *_pk_data) return EOK; } +#define DOPIN "/var/run/passkey-dopin" + +static +errno_t enable_dopin() +{ + int fd = creat (DOPIN, (mode_t)0000); + DEBUG(SSSDBG_TRACE_LIBS, "enable_dopin file [%s] fd=[%d], errno: [%d].\n", + DOPIN , fd, (fd == -1)? errno : 0); + close(fd); + return EOK; +} + +static +errno_t disable_dopin() +{ + int ret = remove(DOPIN); + DEBUG(SSSDBG_TRACE_LIBS, "disable_dopin [%d]\n", ret); + return EOK; +} +#undef DOPIN + errno_t request_assert(struct passkey_data *data, fido_dev_t *dev, fido_assert_t *_assert) @@ -337,7 +369,7 @@ request_assert(struct passkey_data *data, fido_dev_t *dev, char *pin = NULL; bool has_pin; bool has_uv; - errno_t ret; + errno_t ret = FIDO_OK; tmp_ctx = talloc_new(NULL); if (tmp_ctx == NULL) { @@ -347,54 +379,147 @@ request_assert(struct passkey_data *data, fido_dev_t *dev, has_pin = fido_dev_has_pin(dev); has_uv = fido_dev_has_uv(dev); + + if (has_pin == true && data->user_verification != FIDO_OPT_FALSE) { + ret = passkey_recv_pin(tmp_ctx, STDIN_FILENO, &pin); + if (ret != EOK) { + DEBUG(SSSDBG_TRACE_FUNC, "PIN is missing: try UV\n"); + ret = FIDO_ERR_PIN_REQUIRED; + /* and try UV that will reset the ret code. + */ + } else { + /* DEBUG(SSSDBG_TRACE_FUNC, "Proceed with PIN [%s]\n", pin); */ + /* ------------- */ + ret = fido_dev_get_assert(dev, _assert, pin); + if (ret != FIDO_OK) { + DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert PIN failed [%d]: %s.\n", + ret, fido_strerr(ret)); + goto done; + } + DEBUG(SSSDBG_TRACE_FUNC, "fido_dev_get_assert PIN succeeded.\n"); + + /* error or not: finished */ + goto done; + } + } + if (has_uv == true && data->user_verification != FIDO_OPT_FALSE) { ret = fido_dev_get_assert(dev, _assert, NULL); if (ret != FIDO_OK && has_pin == true) { DEBUG(SSSDBG_OP_FAILURE, - "fido_dev_get_assert failed [%d]: %s. " - "Falling back to PIN authentication.\n", + "fido_dev_get_assert UV failed [%d]: %s. " + "User shall fall back to PIN authentication.\n", ret, fido_strerr(ret)); } else if (ret != FIDO_OK) { - DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert failed [%d]: %s.\n", + DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert UV failed [%d]: %s.\n", ret, fido_strerr(ret)); goto done; } else { - DEBUG(SSSDBG_TRACE_FUNC, "fido_dev_get_assert succeeded.\n"); - goto done; + DEBUG(SSSDBG_TRACE_FUNC, "fido_dev_get_assert UV succeeded.\n"); } + goto done; } - if (has_pin == true && data->user_verification != FIDO_OPT_FALSE) { - ret = passkey_recv_pin(tmp_ctx, STDIN_FILENO, &pin); - if (ret != EOK) { - goto done; - } - } - - ret = fido_dev_get_assert(dev, _assert, pin); + /* (no has_pin , no has_uv) or verification = FIDO_OPT_FALSE */ + ret = fido_dev_get_assert(dev, _assert, NULL); if (ret != FIDO_OK) { - DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert failed [%d]: %s.\n", - ret, fido_strerr(ret)); - goto done; - } - - ret = fido_assert_set_uv(_assert, data->user_verification); - if (ret != FIDO_OK) { - DEBUG(SSSDBG_OP_FAILURE, - "fido_assert_set_uv failed [%d]: %s.\n", - ret, fido_strerr(ret)); - goto done; + DEBUG(SSSDBG_OP_FAILURE, "(no pin, no uv) fido_dev_get_assert failed [%d]: %s.\n", + ret, fido_strerr(ret)); } done: + if (ret == FIDO_OK) { + ret = fido_assert_set_uv(_assert, data->user_verification); + if (ret != FIDO_OK) { + DEBUG(SSSDBG_OP_FAILURE, + "fido_assert_set_uv failed [%d]: %s.\n", + ret, fido_strerr(ret)); + } + } if (pin != NULL) { sss_erase_mem_securely(pin, strlen(pin)); } talloc_free(tmp_ctx); + if (ret == FIDO_OK && has_uv == true) { + /* PIN or UV has been OK */ + (void)disable_dopin(); + } else if (ret == FIDO_ERR_PIN_REQUIRED || ret == FIDO_ERR_UV_INVALID || + ret == FIDO_ERR_PIN_INVALID || ret == FIDO_ERR_UV_BLOCKED) { + (void)enable_dopin(); + } return ret; } +/* + * + * errno_t + * request_assert(struct passkey_data *data, fido_dev_t *dev, + * fido_assert_t *_assert) + * { + * TALLOC_CTX *tmp_ctx = NULL; + * char *pin = NULL; + * bool has_pin; + * bool has_uv; + * errno_t ret; + * + * tmp_ctx = talloc_new(NULL); + * if (tmp_ctx == NULL) { + * DEBUG(SSSDBG_OP_FAILURE, "talloc_new() failed.\n"); + * return ENOMEM; + * } + * + * has_pin = fido_dev_has_pin(dev); + * has_uv = fido_dev_has_uv(dev); + * if (has_uv == true && data->user_verification != FIDO_OPT_FALSE) { + * ret = fido_dev_get_assert(dev, _assert, NULL); + * if (ret != FIDO_OK && has_pin == true) { + * DEBUG(SSSDBG_OP_FAILURE, + * "fido_dev_get_assert failed [%d]: %s. " + * "Falling back to PIN authentication.\n", + * ret, fido_strerr(ret)); + * } else if (ret != FIDO_OK) { + * DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert failed [%d]: %s.\n", + * ret, fido_strerr(ret)); + * goto done; + * } else { + * DEBUG(SSSDBG_TRACE_FUNC, "fido_dev_get_assert succeeded.\n"); + * goto done; + * } + * } + * + * if (has_pin == true && data->user_verification != FIDO_OPT_FALSE) { + * ret = passkey_recv_pin(tmp_ctx, STDIN_FILENO, &pin); + * if (ret != EOK) { + * goto done; + * } + * } + * + * ret = fido_deev_get_assert(dev, _assert, pin); + * if (ret != FIDO_OK) { + * DEBUG(SSSDBG_OP_FAILURE, "fido_dev_get_assert failed [%d]: %s.\n", + * ret, fido_strerr(ret)); + * goto done; + * } + * + * ret = fido_assert_set_uv(_assert, data->user_verification); + * if (ret != FIDO_OK) { + * DEBUG(SSSDBG_OP_FAILURE, + * "fido_assert_set_uv failed [%d]: %s.\n", + * ret, fido_strerr(ret)); + * goto done; + * } + * + * done: + * if (pin != NULL) { + * sss_erase_mem_securely(pin, strlen(pin)); + * } + * talloc_free(tmp_ctx); + * + * return ret; + * } + */ + errno_t verify_assert(struct pk_data_t *pk_data, fido_assert_t *assert) { diff --git a/src/passkey_child/passkey_child_common.c b/src/passkey_child/passkey_child_common.c index 6fadd024333..f8a9868f152 100644 --- a/src/passkey_child/passkey_child_common.c +++ b/src/passkey_child/passkey_child_common.c @@ -23,6 +23,11 @@ */ #include +#include +#include +#include +#include + #include #include #include @@ -175,6 +180,8 @@ parse_arguments(TALLOC_CTX *mem_ctx, int argc, const char *argv[], _("Authenticate a user with a passkey"), NULL }, {"get-assert", 0, POPT_ARG_NONE, NULL, 'g', _("Obtain assertion data"), NULL }, + {"get-device-info", 0, POPT_ARG_NONE, NULL, 'i', + _("Obtain device information"), NULL }, {"verify-assert", 0, POPT_ARG_NONE, NULL, 'v', _("Verify assertion data"), NULL }, {"username", 0, POPT_ARG_STRING, &data->shortname, 0, @@ -248,6 +255,17 @@ parse_arguments(TALLOC_CTX *mem_ctx, int argc, const char *argv[], } data->action = ACTION_GET_ASSERT; break; + case 'i': + if (data->action != ACTION_NONE + && data->action != ACTION_GET_DEVINFO) { + fprintf(stderr, "\nActions are mutually exclusive and should" \ + " be used only once.\n\n"); + poptPrintUsage(pc, stderr, 0); + ret = EINVAL; + goto done; + } + data->action = ACTION_GET_DEVINFO; + break; case 'v': if (data->action != ACTION_NONE && data->action != ACTION_VERIFY_ASSERT) { @@ -400,6 +418,14 @@ check_arguments(const struct passkey_data *data) goto done; } + if (data->action == ACTION_GET_DEVINFO + && (data->domain == NULL || data->key_handle_list == NULL)) { + DEBUG(SSSDBG_OP_FAILURE, + "Too few arguments for get-device-info action.\n"); + ret = ERR_INPUT_PARSE; + goto done; + } + if (data->action == ACTION_GET_ASSERT && (data->domain == NULL || data->key_handle_list == NULL || data->crypto_challenge == NULL)) { @@ -570,6 +596,42 @@ public_key_to_base64(TALLOC_CTX *mem_ctx, const struct passkey_data *data, return ret; } +static +errno_t save_device_info(fido_dev_t *dev) +{ + /* update device current configuration + */ + bool has_pin = fido_dev_has_pin(dev); + bool has_uv = fido_dev_has_uv (dev); + int fd = -1; + if (has_pin && has_uv) { + fd = creat("/var/run/passkey-pinuv", 0000); + if (fd < 0) + DEBUG(SSSDBG_TRACE_FUNC, + "error creat pinuv indicator errno = %d\n", errno); + else close(fd); + } + else { + (void)remove ("/var/run/passkey-pinuv"); + if (has_pin) { + fd = creat("/var/run/passkey-pinonly", 0000); + if (fd < 0) + DEBUG(SSSDBG_TRACE_FUNC, + "error creat pinonly indicator errno = %d\n", errno); + else close (fd); + } else { + /* no pin and no uv; */ + (void)remove ("/var/run/passkey-pinonly"); + fd = creat("/var/run/passkey-nopin-nouv", 0000); + if (fd < 0) + DEBUG(SSSDBG_TRACE_FUNC, + "error creat nopin-nouv indicator errno = %d\n", errno); + else close (fd); + } + } + return EOK; +} + errno_t select_authenticator(struct passkey_data *data, fido_dev_t **_dev, fido_assert_t **_assert, int *_index) @@ -732,6 +794,10 @@ authenticate(struct passkey_data *data) goto done; } + /* device OK */ + (void) save_device_info(dev); + + DEBUG(SSSDBG_TRACE_FUNC, "Resetting assert options.\n"); ret = set_assert_options(FIDO_OPT_TRUE, data->user_verification, assert); if (ret != FIDO_OK) { @@ -763,7 +829,6 @@ authenticate(struct passkey_data *data) if (ret != FIDO_OK) { goto done; } - ret = FIDO_OK; done: @@ -806,6 +871,9 @@ get_assert_data(struct passkey_data *data) goto done; } + /* device OK */ + (void) save_device_info(dev); + DEBUG(SSSDBG_TRACE_FUNC, "Resetting assert options.\n"); ret = set_assert_options(FIDO_OPT_TRUE, data->user_verification, assert); if (ret != FIDO_OK) { @@ -818,7 +886,6 @@ get_assert_data(struct passkey_data *data) if (ret != FIDO_OK) { goto done; } - DEBUG(SSSDBG_TRACE_FUNC, "Getting authentication data and signature.\n"); ret = get_assert_auth_data_signature(tmp_ctx, assert, &auth_data, &signature); @@ -840,6 +907,41 @@ get_assert_data(struct passkey_data *data) return ret; } +errno_t +get_device_info(struct passkey_data *data) +{ + TALLOC_CTX *tmp_ctx = NULL; + fido_dev_t *dev = NULL; + fido_assert_t *assert = NULL; + int index; + errno_t ret; + + tmp_ctx = talloc_new(NULL); + if (tmp_ctx == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "talloc_new() failed.\n"); + return ENOMEM; + } + + ret = select_authenticator(data, &dev, &assert, &index); + if (ret != EOK) { + goto done; + } + /* unused */ + fido_assert_free(&assert); + + /* device OK */ + (void) save_device_info(dev); + + done: + if (dev != NULL) { + fido_dev_close(dev); + } + fido_dev_free(&dev); + talloc_free(tmp_ctx); + + return ret; +} + errno_t verify_assert_data(struct passkey_data *data) { diff --git a/src/passkey_child/passkey_child_credentials.c b/src/passkey_child/passkey_child_credentials.c index e27afb411bb..7aaaf7d6db8 100644 --- a/src/passkey_child/passkey_child_credentials.c +++ b/src/passkey_child/passkey_child_credentials.c @@ -187,6 +187,15 @@ passkey_recv_pin(TALLOC_CTX *mem_ctx, int fd, char **_pin) return EINVAL; } + /* see FIX no PIN in sss_cli.c */ + if ((strncasecmp(str, "null", len) == 0) || + (strncasecmp(str, "NULL", len) == 0)) { + DEBUG(SSSDBG_CRIT_FAILURE, + "%s PIN is received - return EINVAL\n", str); + talloc_free(str); + return EINVAL; + } + *_pin = str; return EOK; diff --git a/src/responder/pam/pamsrv_cmd.c b/src/responder/pam/pamsrv_cmd.c index 42834eeae0d..c0348f9c9fe 100644 --- a/src/responder/pam/pamsrv_cmd.c +++ b/src/responder/pam/pamsrv_cmd.c @@ -24,11 +24,16 @@ #include #include +#include +#include +#include + #include "util/util.h" #include "util/auth_utils.h" #include "util/find_uid.h" #include "util/sss_ptr_hash.h" #include "db/sysdb.h" + #include "confdb/confdb.h" #include "responder/common/responder_packet.h" #include "responder/common/responder.h" @@ -1980,13 +1985,120 @@ static int pam_forwarder(struct cli_ctx *cctx, int pam_cmd) if (sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_PASSKEY_KRB) { ret = passkey_kerberos(pctx, preq->pd, preq); goto done; - } else if ((sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_PASSKEY) || - (sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_EMPTY)) { - ret = passkey_local(cctx, cctx->ev, pctx, preq, pd); + } else if (sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_PASSKEY) { + /* TYPE_EMPTY is not a valid */ + ret = passkey_local(cctx, cctx->ev, pctx, preq, pd); goto done; } } } + + if (pd->cmd == SSS_PAM_PASSKEY_PREAUTH) { + +#define PASSKEY_DOPIN "/var/run/passkey-dopin" +#define PASSKEY_PINUV "/var/run/passkey-pinuv" +#define PASSKEY_PINONLY "/var/run/passkey-pinonly" +#define PASSKEY_NODEV "/var/run/passkey-nodev" + + DEBUG(SSSDBG_TRACE_FUNC, "required passkey device information .\n"); + if (may_do_passkey_auth(pctx, pd)) { + const char *devinfo = "nocacheddevinfo"; + + if (pd->cli_flags & PAM_CLI_FLAGS_REQUIRE_PASSKEY_CACHED_DEVINFO) { + struct stat st_nodev; + int e; + DEBUG(SSSDBG_TRACE_FUNC, "pid [%d] requests cached devinfo .\n", getpid()); + + e = stat (PASSKEY_NODEV, &st_nodev); + if (e == 0) { + /* indicator exists */ + if (time(NULL) < st_nodev.st_ctime + 100 /*seconds : configurable ??? */) { + /* the info is still valid */ + devinfo = "nodev"; + } else { + /* but the info is obsolete, we shall retest device existence */ + devinfo = "nodevobsolete"; + (void)remove (PASSKEY_NODEV); + } + } else { + DEBUG(SSSDBG_TRACE_FUNC, "stat nodev: errno=%d\n", errno); + if (access(PASSKEY_DOPIN, F_OK) == 0) { + /* the device requires a PIN to perform next authentication; */ + devinfo = "dopin"; + } else if (access(PASSKEY_PINONLY, F_OK) == 0) { + /* the device ALWAYS requires a PIN to perform authentication; */ + devinfo = "pinonly"; + } else if (access(PASSKEY_PINUV, F_OK) == 0) { + /* the cached device supports UV and does not fallback to PIN using + * PASSKEY_DOPIN indicator. + */ + devinfo = "pinuv"; + } + } + /* remove cache indicators. + * They will be rebuild according the device capabilities + * (see passkey_child) + * during authentication or fresh devinfo request. + * do not remove DOPIN that is updated only during authentication + */ + (void)remove (PASSKEY_PINUV); + (void)remove (PASSKEY_PINONLY); + + } else { + /* remove cache indicators. + * They will be rebuild according the device capabilities + * (see passkey_child) + * during this devinfo request + * do not remove DOPIN that is updated only during authentication + */ + (void)remove (PASSKEY_PINUV); + (void)remove (PASSKEY_PINONLY); + + DEBUG(SSSDBG_TRACE_FUNC, "pid [%d] requests fresh devinfo .\n", getpid()); + /* + * ask the device capabilities + * This assumes the device is connected. + */ + if (sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_PASSKEY_KRB) { + DEBUG(SSSDBG_TRACE_FUNC, "pid [%d] calls passkey_kerberos_get_devinfo() \n", getpid()); + ret = passkey_kerberos_get_devinfo(pctx, preq->pd, preq); + DEBUG(SSSDBG_TRACE_FUNC, "passkey_kerberos_get_devinfo() returns %d\n", ret); + goto done; + } else if (sss_authtok_get_type(pd->authtok) == SSS_AUTHTOK_TYPE_EMPTY) { + + DEBUG(SSSDBG_TRACE_FUNC, "pid [%d] calls passkey_local_get_devinfo() .\n", getpid()); + ret = passkey_local_get_devinfo(cctx, cctx->ev, pctx, preq, pd); + DEBUG(SSSDBG_TRACE_FUNC, "passkey_local_get_devinfo() returns %d\n", ret); + goto done; + } else { + /* note that AUTHTOK_TYPE_PASSKEY is not a valid authtok + * see get_device_info in pam_sss.c + */ + DEBUG(SSSDBG_TRACE_FUNC, "pid [%d] requests fresh with invalid authtok type: [%d]\n", + getpid(),sss_authtok_get_type(pd->authtok) ); + ret = PAM_AUTHTOK_ERR; + goto done; + } + } + + DEBUG(SSSDBG_TRACE_FUNC, "cached devinfo request replies: [%s}\n", devinfo); + + ret = pam_add_response(pd, SSS_PAM_PASSKEY_DEVINFO, strlen(devinfo) + 1, + (const uint8_t *) devinfo); + if (ret != EOK) { + DEBUG(SSSDBG_CRIT_FAILURE, "pam_add_response failed. [%d]: %s\n", + ret, sss_strerror(ret)); + return ret; + } + + pd->pam_status = PAM_SUCCESS; + pam_reply(preq); + + /* finish */ + return EOK; + } + DEBUG(SSSDBG_TRACE_FUNC, "passkey_get_devinfo requires OK from may_do_passkey_auth .\n"); + } #endif /* BUILD_PASSKEY */ ret = pam_check_user_search(preq); @@ -2976,6 +3088,12 @@ static int pam_cmd_preauth(struct cli_ctx *cctx) return pam_forwarder(cctx, SSS_PAM_PREAUTH); } +static int pam_cmd_passkey_preauth(struct cli_ctx *cctx) +{ + DEBUG(SSSDBG_CONF_SETTINGS, "entering pam_cmd_passkey_preauth\n"); + return pam_forwarder(cctx, SSS_PAM_PASSKEY_PREAUTH); +} + struct cli_protocol_version *register_cli_protocol_version(void) { static struct cli_protocol_version pam_cli_protocol_version[] = { @@ -3000,6 +3118,7 @@ struct sss_cmd_table *get_pam_cmds(void) {SSS_PAM_CHAUTHTOK, pam_cmd_chauthtok}, {SSS_PAM_CHAUTHTOK_PRELIM, pam_cmd_chauthtok_prelim}, {SSS_PAM_PREAUTH, pam_cmd_preauth}, + {SSS_PAM_PASSKEY_PREAUTH, pam_cmd_passkey_preauth}, {SSS_GSSAPI_INIT, pam_cmd_gssapi_init}, {SSS_GSSAPI_SEC_CTX, pam_cmd_gssapi_sec_ctx}, {SSS_CLI_NULL, NULL} diff --git a/src/responder/pam/pamsrv_passkey.c b/src/responder/pam/pamsrv_passkey.c index 83f36793fe0..8782e5eec97 100644 --- a/src/responder/pam/pamsrv_passkey.c +++ b/src/responder/pam/pamsrv_passkey.c @@ -19,6 +19,7 @@ along with this program. If not, see . */ +#include #include "util/child_common.h" #include "util/authtok.h" #include "db/sysdb.h" @@ -71,9 +72,12 @@ struct passkey_ctx { void pam_forwarder_passkey_cb(struct tevent_req *req); +void pam_forwarder_get_devinfo_cb(struct tevent_req *req); +void pam_passkey_get_devinfo(struct tevent_req *req); + errno_t pam_passkey_concatenate_keys(TALLOC_CTX *mem_ctx, struct pk_child_user_data *pk_data, - bool kerberos_pa, + enum passkey_auth_action auth_action, char **_result_kh, char **_result_ph); @@ -190,7 +194,8 @@ errno_t passkey_kerberos(struct pam_ctx *pctx, } req = pam_passkey_auth_send(preq->cctx, preq->cctx->ev, timeout, debug_libfido2, - verification, pd, data, true); + verification, pd, data, + PASSKEY_KERBEROS_AUTH ); if (req == NULL) { DEBUG(SSSDBG_OP_FAILURE, "passkey auth send failed [%d]: [%s]\n", ret, sss_strerror(ret)); @@ -208,6 +213,109 @@ errno_t passkey_kerberos(struct pam_ctx *pctx, } +errno_t passkey_kerberos_get_devinfo(struct pam_ctx *pctx, + struct pam_data *pd, + struct pam_auth_req *preq) +{ + errno_t ret; + const char *prompt; + const char *key; + const char *pin; + size_t pin_len; + struct pk_child_user_data *data; + struct tevent_req *req; + int timeout; + char *verify_opts; + bool debug_libfido2; + enum passkey_user_verification verification; + + if (pd->cmd != SSS_PAM_PASSKEY_PREAUTH) { + DEBUG(SSSDBG_OP_FAILURE, "passkey_kerberos_get_devinfo : invalid command\n"); + ret = PAM_SYSTEM_ERR; + goto done; + } + + ret = sss_authtok_get_passkey(preq, preq->pd->authtok, + &prompt, &key, &pin, &pin_len); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Failure to get passkey authtok\n"); + return EIO; + } + + if (prompt == NULL || key == NULL) { + DEBUG(SSSDBG_OP_FAILURE, + "Passkey prompt and key are missing or invalid.\n"); + return EIO; + } + + DEBUG(SSSDBG_TRACE_FUNC, "lookup passkey auth keys: %s\nprompt: %s\n", + key ? key : "NULL", prompt ? prompt : "NULL"); + + data = sss_ptr_hash_lookup(pctx->pk_table_data->table, key, + struct pk_child_user_data); + if (data == NULL) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to lookup passkey authtok\n"); + return EIO; + } + + ret = confdb_get_int(pctx->rctx->cdb, CONFDB_PAM_CONF_ENTRY, + CONFDB_PAM_PASSKEY_CHILD_TIMEOUT, PASSKEY_CHILD_TIMEOUT_DEFAULT, + &timeout); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to read passkey_child_timeout from confdb: [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + ret = confdb_get_string(pctx->rctx->cdb, preq, CONFDB_MONITOR_CONF_ENTRY, + CONFDB_MONITOR_PASSKEY_VERIFICATION, NULL, + &verify_opts); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to read '"CONFDB_MONITOR_PASSKEY_VERIFICATION"' from confdb: [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + /* Always use verification sent from passkey krb5 plugin */ + if (strcasecmp(data->user_verification, "false") == 0) { + verification = PAM_PASSKEY_VERIFICATION_OFF; + } else { + verification = PAM_PASSKEY_VERIFICATION_ON; + } + + ret = confdb_get_bool(pctx->rctx->cdb, CONFDB_PAM_CONF_ENTRY, + CONFDB_PAM_PASSKEY_DEBUG_LIBFIDO2, false, + &debug_libfido2); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to read '"CONFDB_PAM_PASSKEY_DEBUG_LIBFIDO2"' from confdb: [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + req = pam_passkey_auth_send(preq->cctx, preq->cctx->ev, timeout, debug_libfido2, + verification, pd, data, + PASSKEY_GET_DEVINFO); + if (req == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "passkey auth send failed [%d]: [%s]\n", + ret, sss_strerror(ret)); + goto done; + } + + tevent_req_set_callback(req, pam_forwarder_get_devinfo_cb, preq); + + ret = EAGAIN; + +done: + + return ret; + +} + errno_t passkey_local(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct pam_ctx *pam_ctx, @@ -250,6 +358,53 @@ errno_t passkey_local(TALLOC_CTX *mem_ctx, return ret; } +errno_t passkey_local_get_devinfo(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct pam_ctx *pam_ctx, + struct pam_auth_req *preq, + struct pam_data *pd) +{ + struct tevent_req *req; + struct passkey_ctx *pctx; + errno_t ret; + + pctx = talloc_zero(mem_ctx, struct passkey_ctx); + if (pctx == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "pctx == NULL\n"); + return ENOMEM; + } + + pctx->pd = pd; + pctx->pam_ctx = pam_ctx; + pctx->ev = ev; + pctx->preq = preq; + + if (pctx->pd->cmd != SSS_PAM_PASSKEY_PREAUTH) { + DEBUG(SSSDBG_OP_FAILURE, "passkey_local_get_devinfo : invalid command\n"); + ret = PAM_SYSTEM_ERR; + goto done; + } + + DEBUG(SSSDBG_TRACE_FUNC, "Checking for passkey authentication data\n"); + + req = pam_passkey_get_mapping_send(mem_ctx, pctx->ev, pctx); + if (req == NULL) { + DEBUG(SSSDBG_TRACE_ALL, "pam_passkey_get_mapping_send failed.\n"); + ret = ENOMEM; + goto done; + } + + tevent_req_set_callback(req, pam_passkey_get_devinfo, pctx); + + ret = EAGAIN; + +done: + if (ret != EAGAIN) { + talloc_free(pctx); + } + + return ret; +} struct tevent_req *pam_passkey_get_mapping_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct passkey_ctx *pk_ctx) @@ -613,6 +768,68 @@ void pam_forwarder_passkey_cb(struct tevent_req *req) pam_check_user_done(preq, ret); } +#define PASSKEY_PINUV "/var/run/passkey-pinuv" +#define PASSKEY_PINONLY "/var/run/passkey-pinonly" +#define PASSKEY_NODEV "/var/run/passkey-nodev" + +void pam_forwarder_get_devinfo_cb(struct tevent_req *req) +{ + struct pam_auth_req *preq = tevent_req_callback_data(req, + struct pam_auth_req); + errno_t ret = EOK; + const char* devinfo = "errdev"; + int child_status; + + ret = pam_passkey_auth_recv(req, &child_status); + talloc_free(req); + if (ret != EOK) + DEBUG(SSSDBG_OP_FAILURE, "pam_passkey_auth_recv for devinfo failed [%d]: %s\n", + ret, sss_strerror(ret)); + + DEBUG(SSSDBG_TRACE_FUNC, "passkey child devinfo finished with status [%d]\n", child_status); + + if (child_status != 0) { + int fd; + devinfo = "nodev"; + fd = creat(PASSKEY_NODEV, 0000); + close(fd); + } else { + (void)remove (PASSKEY_NODEV); + if (access(PASSKEY_PINUV, F_OK) == 0) { + DEBUG(SSSDBG_TRACE_FUNC, "devinfo pinuv file indicator\n"); + devinfo = "pinuv"; + } else if (access(PASSKEY_PINONLY, F_OK) == 0) { + DEBUG(SSSDBG_TRACE_FUNC, "devinfo pinonly file indicator\n"); + devinfo = "pinonly"; + } else { + DEBUG(SSSDBG_TRACE_FUNC, "devinfo invalid file indicator\n"); + devinfo = "errdev"; + } + } + + /* remove indicators + * They will be rebuild according the device capabilities + * (see passkey_child) + * during authentication request. + */ + (void)remove (PASSKEY_PINUV); + (void)remove (PASSKEY_PINONLY); + + ret = pam_add_response(preq->pd, SSS_PAM_PASSKEY_DEVINFO, strlen(devinfo) + 1, + (const uint8_t *) devinfo); + if (ret != EOK) { + DEBUG(SSSDBG_CRIT_FAILURE, "devinfo: pam_add_response failed. [%d]: %s\n", + ret, sss_strerror(ret)); + } + + + preq->pd->pam_status = PAM_SUCCESS; + + pam_reply(preq); + + return; +} + void pam_passkey_get_user_done(struct tevent_req *req) { int ret; @@ -711,7 +928,8 @@ void pam_passkey_get_user_done(struct tevent_req *req) } req = pam_passkey_auth_send(pctx, pctx->ev, timeout, debug_libfido2, - verification, pctx->pd, pk_data, false); + verification, pctx->pd, pk_data, + PASSKEY_LOCAL_AUTH); if (req == NULL) { DEBUG(SSSDBG_OP_FAILURE, "pam_passkey_auth_send failed [%d]: %s\n", ret, sss_strerror(ret)); @@ -741,6 +959,118 @@ void pam_passkey_get_user_done(struct tevent_req *req) return; } +void pam_passkey_get_devinfo(struct tevent_req *req) +{ + int ret; + struct passkey_ctx *pctx; + bool debug_libfido2 = false; + char *domain_name = NULL; + int timeout; + struct cache_req_result *result = NULL; + struct pk_child_user_data *pk_data = NULL; + enum passkey_user_verification verification = PAM_PASSKEY_VERIFICATION_OMIT; + + DEBUG(SSSDBG_TRACE_ALL, "pam_passkey_get_devinfo... \n"); + + pctx = tevent_req_callback_data(req, struct passkey_ctx); + + + ret = pam_passkey_get_mapping_recv(pctx, req, &result); + talloc_zfree(req); + if (ret != EOK && ret != ENOENT) { + DEBUG(SSSDBG_OP_FAILURE, "devinfo cache_req_user_by_name_attrs_recv failed [%d]: %s.\n", + ret, sss_strerror(ret)); + goto done; + } + + if (result == NULL) { + DEBUG(SSSDBG_CRIT_FAILURE, "idevinfo cache req result == NULL\n"); + ret = ENOMEM; + goto done; + } + + pk_data = talloc_zero(pctx, struct pk_child_user_data); + if (!pk_data) { + DEBUG(SSSDBG_CRIT_FAILURE, "devinfo pk_data == NULL\n"); + ret = ENOMEM; + goto done; + } + + /* Use dns_name for AD/IPA - for LDAP fallback to domain->name */ + if (result->domain != NULL) { + domain_name = result->domain->dns_name; + if (domain_name == NULL) { + domain_name = result->domain->name; + } + } + + if (domain_name == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "devinfo Invalid or missing domain name\n"); + ret = EIO; + goto done; + } + + /* Get passkey data */ + DEBUG(SSSDBG_TRACE_ALL, "devinfo Processing passkey data\n"); + ret = process_passkey_data(pk_data, result->msgs[0], domain_name, pk_data); + if (ret != EOK) { + DEBUG(SSSDBG_TRACE_FUNC, + "process_passkey_data for devinfo failed: [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + /* timeout */ + ret = confdb_get_int(pctx->pam_ctx->rctx->cdb, CONFDB_PAM_CONF_ENTRY, + CONFDB_PAM_PASSKEY_CHILD_TIMEOUT, PASSKEY_CHILD_TIMEOUT_DEFAULT, + &timeout); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "devinfo Failed to read passkey_child_timeout from confdb: [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + ret = passkey_local_verification(pctx, pctx, pctx->pam_ctx->rctx->cdb, + result->domain->sysdb, result->domain->dns_name, + pk_data, &verification, &debug_libfido2); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "Failed to check passkey devinfo verification [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + req = pam_passkey_auth_send(pctx, pctx->ev, timeout, debug_libfido2, + verification, pctx->pd, pk_data, + PASSKEY_GET_DEVINFO); + if (req == NULL) { + DEBUG(SSSDBG_OP_FAILURE, "pam_passkey_auth_send devinfo failed [%d]: %s\n", + ret, sss_strerror(ret)); + goto done; + } + + tevent_req_set_callback(req, pam_forwarder_get_devinfo_cb, pctx->preq); + + ret = EOK; + +done: + if (pk_data != NULL) { + talloc_free(pk_data); + } + + if (ret != EOK) { + DEBUG(SSSDBG_TRACE_ALL, "Unexpected passkey devinfo error [%d]: %s.\n", + ret, sss_strerror(ret)); + /* the error does not affect existence of passkey_data + * pctx->preq->passkey_data_exists = false; + */ + pctx->preq->pd->pam_status = PAM_SYSTEM_ERR; + pam_reply(pctx->preq); + } + + return; +} struct pam_passkey_auth_send_state { struct pam_data *pd; @@ -753,7 +1083,7 @@ struct pam_passkey_auth_send_state { char *verify_opts; int timeout; int child_status; - bool kerberos_pa; + enum passkey_auth_action auth_action; }; static errno_t passkey_child_exec(struct tevent_req *req); @@ -761,6 +1091,10 @@ static void pam_passkey_auth_done(int child_status, struct tevent_signal *sige, void *pvt); +static void pam_passkey_get_devinfo_done(int child_status, + struct tevent_signal *sige, + void *pvt); + static int pin_destructor(void *ptr) { uint8_t *pin = talloc_get_type(ptr, uint8_t); @@ -871,7 +1205,7 @@ static void passkey_child_write_done(struct tevent_req *subreq) PIPE_FD_CLOSE(state->io->write_to_child_fd); - if (state->kerberos_pa) { + if (state->auth_action == PASSKEY_KERBEROS_AUTH) { /* Read data back from passkey child */ subreq = read_pipe_send(state, state->ev, state->io->read_from_child_fd); if (subreq == NULL) { @@ -885,7 +1219,7 @@ static void passkey_child_write_done(struct tevent_req *subreq) errno_t pam_passkey_concatenate_keys(TALLOC_CTX *mem_ctx, struct pk_child_user_data *pk_data, - bool kerberos_pa, + enum passkey_auth_action auth_action, char **_result_kh, char **_result_pk) { @@ -893,12 +1227,25 @@ errno_t pam_passkey_concatenate_keys(TALLOC_CTX *mem_ctx, char *result_kh = NULL; char *result_pk = NULL; - result_kh = talloc_strdup(mem_ctx, pk_data->key_handles[0]); - if (!kerberos_pa) { - result_pk = talloc_strdup(mem_ctx, pk_data->public_keys[0]); + int index = pk_data->num_credentials - 1; + /* start we last credential because it is the newer one + * therefore te mos accurate */ + + if (index < 0) { + ret = EINVAL; + goto done; + } + + result_kh = talloc_strdup(mem_ctx, pk_data->key_handles[index]); + if (auth_action == PASSKEY_LOCAL_AUTH) { + result_pk = talloc_strdup(mem_ctx, pk_data->public_keys[index]); + if (result_pk == NULL) { + ret = ENOMEM; + goto done; + } } - for (int i = 1; i < pk_data->num_credentials; i++) { + for (int i = index - 1; i >= 0; i--) { result_kh = talloc_strdup_append(result_kh, ","); if (result_kh == NULL) { ret = ENOMEM; @@ -911,7 +1258,7 @@ errno_t pam_passkey_concatenate_keys(TALLOC_CTX *mem_ctx, goto done; } - if (!kerberos_pa) { + if (auth_action == PASSKEY_LOCAL_AUTH) { result_pk = talloc_strdup_append(result_pk, ","); if (result_pk == NULL) { ret = ENOMEM; @@ -942,7 +1289,7 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, enum passkey_user_verification verification, struct pam_data *pd, struct pk_child_user_data *pk_data, - bool kerberos_pa) + enum passkey_auth_action auth_action) { struct tevent_req *req; struct pam_passkey_auth_send_state *state; @@ -961,7 +1308,7 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, state->ev = ev; state->timeout = timeout; - state->kerberos_pa = kerberos_pa; + state->auth_action = auth_action; state->logfile = PASSKEY_CHILD_LOG_FILE; state->io = talloc(state, struct child_io_fds); if (state->io == NULL) { @@ -995,7 +1342,7 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, break; } - ret = pam_passkey_concatenate_keys(state, pk_data, state->kerberos_pa, + ret = pam_passkey_concatenate_keys(state, pk_data, state->auth_action, &result_kh, &result_pk); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "pam_passkey_concatenate keys failed - [%d]: [%s]\n", @@ -1003,8 +1350,10 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, goto done; } + switch (auth_action) { - if (state->kerberos_pa) { + case PASSKEY_KERBEROS_AUTH: { + DEBUG(SSSDBG_TRACE_FUNC, "auth_action: PASSKEY_KERBEROS_AUTH\n"); state->extra_args[arg_c++] = pk_data->crypto_challenge; state->extra_args[arg_c++] = "--cryptographic-challenge"; state->extra_args[arg_c++] = result_kh; @@ -1012,7 +1361,10 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, state->extra_args[arg_c++] = pk_data->domain; state->extra_args[arg_c++] = "--domain"; state->extra_args[arg_c++] = "--get-assert"; - } else { + break; + } + case PASSKEY_LOCAL_AUTH: { + DEBUG(SSSDBG_TRACE_FUNC, "auth_action: PASSKEY_LOCAL_AUTH\n"); state->extra_args[arg_c++] = result_pk; state->extra_args[arg_c++] = "--public-key"; state->extra_args[arg_c++] = result_kh; @@ -1022,6 +1374,24 @@ pam_passkey_auth_send(TALLOC_CTX *mem_ctx, state->extra_args[arg_c++] = state->pd->user; state->extra_args[arg_c++] = "--username"; state->extra_args[arg_c++] = "--authenticate"; + break; + } + /* ADDED VALMIDO */ + case PASSKEY_GET_DEVINFO: { + DEBUG(SSSDBG_TRACE_FUNC, "auth_action: PASSKEY_GET_DEVINFO\n"); + state->extra_args[arg_c++] = result_kh; + state->extra_args[arg_c++] = "--key-handle"; + state->extra_args[arg_c++] = pk_data->domain; + state->extra_args[arg_c++] = "--domain"; + state->extra_args[arg_c++] = "--get-device-info"; + break; + } + /* END VALMIDO */ + default: { + ret = ERR_INTERNAL; + DEBUG(SSSDBG_OP_FAILURE, "auth_send invalid action]\n"); + goto done; + } } ret = passkey_child_exec(req); @@ -1104,13 +1474,21 @@ static errno_t passkey_child_exec(struct tevent_req *req) sss_fd_nonblocking(state->io->write_to_child_fd); /* Set up SIGCHLD handler */ - if (state->kerberos_pa) { + if (state->auth_action == PASSKEY_KERBEROS_AUTH) ret = child_handler_setup(state->ev, child_pid, NULL, req, &state->child_ctx); - } else { + else if (state->auth_action == PASSKEY_LOCAL_AUTH) ret = child_handler_setup(state->ev, child_pid, pam_passkey_auth_done, req, &state->child_ctx); - } + else if (state->auth_action == PASSKEY_GET_DEVINFO) + ret = child_handler_setup(state->ev, child_pid, + pam_passkey_get_devinfo_done, req, + &state->child_ctx); + else { + DEBUG(SSSDBG_CRIT_FAILURE, "BUG: internal error - invalid auth_action\n"); + ret = ERR_INTERNAL; + goto done; + } if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "Could not set up child handlers [%d]: %s\n", @@ -1128,17 +1506,19 @@ static errno_t passkey_child_exec(struct tevent_req *req) goto done; } - /* PIN is needed */ - if (sss_authtok_get_type(state->pd->authtok) != SSS_AUTHTOK_TYPE_EMPTY) { - ret = get_passkey_child_write_buffer(state, state->pd, &write_buf, - &write_buf_len); - if (ret != EOK) { + if (state->auth_action != PASSKEY_GET_DEVINFO) { + if (sss_authtok_get_type(state->pd->authtok) != SSS_AUTHTOK_TYPE_EMPTY) { + /* PIN is needed */ + ret = get_passkey_child_write_buffer(state, state->pd, &write_buf, + &write_buf_len); + if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "get_passkey_child_write_buffer failed [%d]: %s.\n", ret, sss_strerror(ret)); goto done; - } - } + } + } + } if (write_buf_len != 0) { subreq = write_pipe_send(state, state->ev, write_buf, write_buf_len, @@ -1169,6 +1549,39 @@ static errno_t passkey_child_exec(struct tevent_req *req) return ret; } +static void +pam_passkey_get_devinfo_done(int child_status, + struct tevent_signal *sige, + void *pvt) +{ + struct tevent_req *req = talloc_get_type(pvt, struct tevent_req); + + struct pam_passkey_auth_send_state *state = + tevent_req_data(req, struct pam_passkey_auth_send_state); + state->child_status = WEXITSTATUS(child_status); + if (WIFEXITED(child_status)) { + if (WEXITSTATUS(child_status) != 0) { + DEBUG(SSSDBG_OP_FAILURE, + PASSKEY_CHILD_PATH " devinfo failed with status [%d]. Check passkey_child" + " logs for more information.\n", + WEXITSTATUS(child_status)); + tevent_req_error(req, ERR_PASSKEY_CHILD); + return; + } + } else if (WIFSIGNALED(child_status)) { + DEBUG(SSSDBG_OP_FAILURE, + PASSKEY_CHILD_PATH " devinfo was terminated by signal [%d]. Check passkey_child" + " logs for more information.\n", + WTERMSIG(child_status)); + tevent_req_error(req, ECHILD); + return; + } + + DEBUG(SSSDBG_TRACE_FUNC, "devinfo data is valid. Mark done\n"); + tevent_req_done(req); + return; +} + errno_t pam_passkey_auth_recv(struct tevent_req *req, int *child_status) { @@ -1450,7 +1863,9 @@ bool may_do_passkey_auth(struct pam_ctx *pctx, return false; } - if (pd->cmd != SSS_PAM_PREAUTH && pd->cmd != SSS_PAM_AUTHENTICATE) { + if (pd->cmd != SSS_PAM_PREAUTH && + pd->cmd != SSS_PAM_AUTHENTICATE && + pd->cmd != SSS_PAM_PASSKEY_PREAUTH) { return false; } diff --git a/src/responder/pam/pamsrv_passkey.h b/src/responder/pam/pamsrv_passkey.h index 48074d04263..2182183cef4 100644 --- a/src/responder/pam/pamsrv_passkey.h +++ b/src/responder/pam/pamsrv_passkey.h @@ -36,6 +36,12 @@ enum passkey_user_verification { PAM_PASSKEY_VERIFICATION_INVALID }; +enum passkey_auth_action { + PASSKEY_KERBEROS_AUTH, + PASSKEY_LOCAL_AUTH, + PASSKEY_GET_DEVINFO +}; + errno_t passkey_local(TALLOC_CTX *mem_ctx, struct tevent_context *ev, struct pam_ctx *pam_ctx, @@ -45,6 +51,15 @@ errno_t passkey_kerberos(struct pam_ctx *pctx, struct pam_data *pd, struct pam_auth_req *preq); +errno_t passkey_local_get_devinfo(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct pam_ctx *pam_ctx, + struct pam_auth_req *preq, + struct pam_data *pd); + +errno_t passkey_kerberos_get_devinfo(struct pam_ctx *pctx, + struct pam_data *pd, + struct pam_auth_req *preq); struct pk_child_user_data { /* Both Kerberos and non-kerberos */ const char *domain; @@ -70,7 +85,7 @@ struct tevent_req *pam_passkey_auth_send(TALLOC_CTX *mem_ctx, enum passkey_user_verification verification, struct pam_data *pd, struct pk_child_user_data *pk_data, - bool kerberos_pa); + enum passkey_auth_action auth_action); errno_t pam_passkey_auth_recv(struct tevent_req *req, int *child_status); errno_t pam_eval_passkey_response(struct pam_ctx *pctx, diff --git a/src/sss_client/pam_message.h b/src/sss_client/pam_message.h index d6fb254f208..4ebbb515d55 100644 --- a/src/sss_client/pam_message.h +++ b/src/sss_client/pam_message.h @@ -66,6 +66,7 @@ struct pam_items { char *first_factor; char *passkey_key; char *passkey_prompt_pin; + char *passkey_devinfo; bool password_prompting; bool user_name_hint; diff --git a/src/sss_client/pam_sss.c b/src/sss_client/pam_sss.c index 3f2317f3eb7..07402a242f5 100644 --- a/src/sss_client/pam_sss.c +++ b/src/sss_client/pam_sss.c @@ -215,6 +215,9 @@ static void overwrite_and_free_pam_items(struct pam_items *pi) free(pi->passkey_prompt_pin); pi->passkey_prompt_pin = NULL; + free(pi->passkey_devinfo); + pi->passkey_devinfo = NULL; + free_cert_list(pi->cert_list); pi->cert_list = NULL; pi->selected_cert = NULL; @@ -1336,7 +1339,12 @@ static int eval_response(pam_handle_t *pamh, size_t buflen, uint8_t *buf, D(("strdup failed")); break; } + /* devinfo shall be retrieved according key handle(s) + */ + free (pi->passkey_devinfo); + pi->passkey_devinfo = NULL; break; + case SSS_PAM_PASSKEY_INFO: if (buf[p + (len - 1)] != '\0') { D(("passkey info does not end with \\0.")); @@ -1349,6 +1357,24 @@ static int eval_response(pam_handle_t *pamh, size_t buflen, uint8_t *buf, D(("strdup failed")); break; } + /* devinfo shall be retrieved according key handle(s) + */ + free (pi->passkey_devinfo); + pi->passkey_devinfo = NULL; + break; + + case SSS_PAM_PASSKEY_DEVINFO: + if (buf[p + (len - 1)] != '\0') { + D(("passkey devinfo does not end with \\0.")); + break; + } + + free(pi->passkey_devinfo); + pi->passkey_devinfo = strdup((char *) &buf[p]); + if (pi->passkey_devinfo == NULL) { + D(("strdup failed")); + break; + } break; default: D(("Unknown response type [%d]", type)); @@ -1863,8 +1889,7 @@ static int prompt_oauth2(pam_handle_t *pamh, struct pam_items *pi) return PAM_SUCCESS; } -static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, - const char *prompt_interactive, const char *prompt_touch) +static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi) { int ret; const struct pam_conv *conv; @@ -1872,7 +1897,7 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, struct pam_message m[4] = { {0}, {0}, {0}, {0} }; struct pam_response *resp = NULL; bool kerberos_preauth; - bool prompt_pin; + bool prompt_pin = false; int pin_idx = 0; int msg_idx = 0; size_t needed_size; @@ -1886,6 +1911,16 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, return PAM_SYSTEM_ERR; } + /* check device capabilities + */ + if ((strcasecmp(pi->passkey_devinfo, "dopin") != 0) && + (strcasecmp(pi->passkey_devinfo, "pinonly") != 0) && + (strcasecmp(pi->passkey_devinfo, "pinuv") != 0)) { + /* invalid device or no connected device + * fallback to passord + */ + return EIO; + } kerberos_preauth = pi->passkey_key != NULL ? true : false; if (!kerberos_preauth) { m[msg_idx].msg_style = PAM_TEXT_INFO; @@ -1893,35 +1928,24 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, msg_idx++; } - if ((strcasecmp(pi->passkey_prompt_pin, "false")) == 0) { - prompt_pin = false; - } else { - prompt_pin = true; - } + if ( strcasecmp(pi->passkey_prompt_pin, "true") == 0) { + if ((strcasecmp(pi->passkey_devinfo, "dopin") == 0) || + (strcasecmp(pi->passkey_devinfo, "pinonly") == 0)) { + prompt_pin = true; - /* Interactive, prompt a message and wait before continuing */ - if (prompt_interactive != NULL && prompt_interactive[0] != '\0') { m[msg_idx].msg_style = PAM_PROMPT_ECHO_OFF; - m[msg_idx].msg = prompt_interactive; + m[msg_idx].msg = PASSKEY_DEFAULT_PIN_MSG; + pin_idx = msg_idx; msg_idx++; - } - - /* Prompt for PIN - * - * If prompt_pin is false but a PIN is set on the device - * we still prompt for PIN */ - if (prompt_pin) { - m[msg_idx].msg_style = PAM_PROMPT_ECHO_OFF; - m[msg_idx].msg = PASSKEY_DEFAULT_PIN_MSG; - pin_idx = msg_idx; - msg_idx++; - } + } else { + /* let try UV according device verification capabilities */ + prompt_pin = false; - /* Prompt to remind the user to touch the device */ - if (prompt_touch != NULL && prompt_touch[0] != '\0') { - m[msg_idx].msg_style = PAM_PROMPT_ECHO_OFF; - m[msg_idx].msg = prompt_touch; - msg_idx++; + /* Prompt to remind the user to perform verification (.eg fingerprint) */ + m[msg_idx].msg_style = PAM_TEXT_INFO; + m[msg_idx].msg = _("Perform User Verification on your device"); + msg_idx++; + } } mesg[0] = (const struct pam_message *) m; @@ -1945,7 +1969,10 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, if (kerberos_preauth) { if (!prompt_pin) { resp[pin_idx].resp = NULL; - } + /* fix passkey_child_credentials.c when NO PIN */ + resp[pin_idx].resp = strdup ("NULL"); + /* end fix */ +} pi->pam_authtok_type = SSS_AUTHTOK_TYPE_PASSKEY_KRB; sss_auth_passkey_calc_size(pi->passkey_prompt_pin, @@ -1972,6 +1999,10 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, pi->pam_authtok_type = SSS_AUTHTOK_TYPE_PASSKEY; pi->pam_authtok = NULL; pi->pam_authtok_size = 0; + /* fix passkey_child_credentials.c when NO PIN */ + pi->pam_authtok = strdup("null"); + pi->pam_authtok_size = strlen(pi->pam_authtok); + /* end fix */ ret = PAM_SUCCESS; goto done; } else { @@ -2008,6 +2039,129 @@ static int prompt_passkey(pam_handle_t *pamh, struct pam_items *pi, return ret; } +static int passkey_get_current_device_info(pam_handle_t *pamh, struct pam_items *pi, + bool quiet_mode) +{ + int ret; + // const char* prompt = _("Connect your passkey device, then press ENTER."); + const char* prompt = "Connect your passkey device, then press ENTER."; + char* answer; + + int ori_flags = pi->flags; + + pi->flags |= PAM_CLI_FLAGS_REQUIRE_PASSKEY_CACHED_DEVINFO; + + ret = send_and_receive(pamh, pi, SSS_PAM_PASSKEY_PREAUTH, quiet_mode); + if (ret != PAM_SUCCESS) { + D(("send_and_receive returned [%d] (ignored) during passkey_preauth", ret)); + ret = PAM_SUCCESS; + } + pi->flags = ori_flags; + + if (pi->passkey_devinfo == NULL) { + ret = PAM_SYSTEM_ERR; + goto done; + } + + if (strcasecmp(pi->passkey_devinfo, "dopin") == 0) { + /* this is an authentication retry (after a wrong UV or PIN) + * which assumes the device is connected + * the user will be prompted for a PIN + */ + goto done; + } + if (strcasecmp(pi->passkey_devinfo, "nodev") == 0) { + /* the cache indicates that no valid device has been + * connected, there we shall fallback to password authentication + */ + goto done; + } + + /* user shall confirm or reconfirm its device is ready */ + ret = do_pam_conversation(pamh, PAM_PROMPT_ECHO_OFF, prompt, NULL, &answer); + if (ret != PAM_SUCCESS) { + D(("do_pam_conversation failed ignored - we do inot need response but just ENTER")); + ret = PAM_SUCCESS; + } + + if ((strcasecmp(pi->passkey_devinfo, "pinuv") == 0) || + (strcasecmp(pi->passkey_devinfo, "pinonly") == 0)) { + /* OK */ + goto done; + } + /* cache is empty or indicate invalid info + * request fresh info + */ + + if (pi->passkey_key != NULL) { + + size_t needed_size; + + pi->pam_authtok_type = SSS_AUTHTOK_TYPE_PASSKEY_KRB; + sss_auth_passkey_calc_size(pi->passkey_prompt_pin, + pi->passkey_key, + "", /* empty PIN but unsued */ + &needed_size); + + pi->pam_authtok = malloc(needed_size); + if (pi->pam_authtok == NULL) { + D(("malloc failed.")); + ret = PAM_BUF_ERR; + goto done; + } + + sss_auth_pack_passkey_blob((uint8_t *)pi->pam_authtok, + pi->passkey_prompt_pin, + pi->passkey_key, + ""); + pi->pam_authtok_size = needed_size; + } else { + pi->pam_authtok_type = SSS_AUTHTOK_TYPE_EMPTY; + pi->pam_authtok = NULL; + pi->pam_authtok_size = 0; + } + ret = send_and_receive(pamh, pi, SSS_PAM_PASSKEY_PREAUTH, quiet_mode); + if (ret != PAM_SUCCESS) { + D(("send_and_receive returned [%d] (ignored) during passkey_preauth", ret)); + ret = PAM_SUCCESS; + } + + if (pi->passkey_devinfo != NULL && + ((strcasecmp(pi->passkey_devinfo, "pinuv") == 0) || + (strcasecmp(pi->passkey_devinfo, "pinonly") == 0))) { + /* OK */ + goto done; + } + + /* inform user she/he shall fallback to password authntication and wait its ENTER + */ + { + char* _prompt; + int r = asprintf(&_prompt, "%s %s", + pi->passkey_devinfo == NULL ? "SYSTEM ERROR DEVINFO" : pi->passkey_devinfo, + " Fallback to password authentication"); + if (r == -1) { + ret = ENOMEM; + goto done; + } + + ret = do_pam_conversation(pamh, PAM_PROMPT_ECHO_OFF, _prompt, NULL, &answer); + if (ret != PAM_SUCCESS) { + D(("do_pam_conversation failed ignored - we doi not need response but just ENTER")); + ret = PAM_SUCCESS; + } + free (_prompt); + } + + if (pi->passkey_devinfo == NULL) { + ret = PAM_SYSTEM_ERR; + goto done; + } + ret = PAM_SUCCESS; + done: + return ret; +} + #define SC_PROMPT_FMT "PIN for %s: " #ifndef discard_const @@ -2524,10 +2678,12 @@ static int prompt_by_config(pam_handle_t *pamh, struct pam_items *pi) pc_get_2fa_single_prompt(pi->pc[c])); break; case PC_TYPE_PASSKEY: - ret = prompt_passkey(pamh, pi, - pc_get_passkey_inter_prompt(pi->pc[c]), - pc_get_passkey_touch_prompt(pi->pc[c])); - break; + ret = prompt_passkey(pamh, pi); + /* no more supported. need devinfo. Cannot be done here + pc_get_passkey_inter_prompt(pi->pc[c]), + pc_get_passkey_touch_prompt(pi->pc[c])); + */ + break; case PC_TYPE_SC_PIN: ret = prompt_sc_pin(pamh, pi); /* Todo: add extra string option */ @@ -2599,10 +2755,8 @@ static int get_authtok_for_authentication(pam_handle_t *pamh, ret = prompt_2fa(pamh, pi, false, _("First Factor: "), _("Second Factor: ")); } - } else if (pi->passkey_prompt_pin) { - ret = prompt_passkey(pamh, pi, - _("Insert your passkey device, then press ENTER."), - ""); + } else if (pi->passkey_prompt_pin != NULL && pi->passkey_devinfo != NULL) { + ret = prompt_passkey(pamh, pi); /* Fallback to password auth if no PIN was entered */ if (ret == EIO) { ret = prompt_password(pamh, pi, _("Password: ")); @@ -3035,7 +3189,14 @@ static int pam_sss(enum sss_cli_command task, pam_handle_t *pamh, D(("check_login_token_name failed.\n")); } } - + if (pi.passkey_prompt_pin != NULL && pi.passkey_devinfo == NULL) { + ret = passkey_get_current_device_info(pamh, &pi, quiet_mode); + if (ret != PAM_SUCCESS) { + D(("passkey_get_current_device_info failed.\n")); + overwrite_and_free_pam_items(&pi); + return ret; + } + } ret = get_authtok_for_authentication(pamh, &pi, flags); if (ret != PAM_SUCCESS) { D(("failed to get authentication token: %s", diff --git a/src/sss_client/sss_cli.h b/src/sss_client/sss_cli.h index d3570f505a1..db8395d40c2 100644 --- a/src/sss_client/sss_cli.h +++ b/src/sss_client/sss_cli.h @@ -242,7 +242,11 @@ enum sss_cli_command { * are available for the given user. */ SSS_GSSAPI_INIT = 0x00FA, /**< Initialize GSSAPI authentication. */ SSS_GSSAPI_SEC_CTX = 0x00FB, /**< Establish GSSAPI security ctx. */ - + SSS_PAM_PASSKEY_PREAUTH = 0x00FC, /**< could be called to request device + * information of device supporting + * passkey credential. + * typically, the command returns + * SSS_PAM_PASSKEY_DEVINFO */ /* PAC responder calls */ SSS_PAC_ADD_PAC_USER = 0x0101, @@ -436,6 +440,7 @@ enum pam_item_type { #define PAM_CLI_FLAGS_TRY_CERT_AUTH (1 << 8) #define PAM_CLI_FLAGS_REQUIRE_CERT_AUTH (1 << 9) #define PAM_CLI_FLAGS_ALLOW_CHAUTHTOK_BY_ROOT (1 << 10) +#define PAM_CLI_FLAGS_REQUIRE_PASSKEY_CACHED_DEVINFO (1 << 11) #define SSS_NSS_MAX_ENTRIES 256 #define SSS_NSS_HEADER_SIZE (sizeof(uint32_t) * 4) @@ -558,6 +563,11 @@ enum response_type { * @param * - prompt_pin */ + SSS_PAM_PASSKEY_DEVINFO, /**< Indicates a passkey device information + * including a parameter string + * @param + * - device information string + */ SSS_PAM_PASSKEY_KRB_INFO, /**< A message containing the passkey parameters * for the user. The key is the cryptographic challenge * used as the key to the passkey hash table entry. diff --git a/src/tests/cmocka/test_passkey_child.c b/src/tests/cmocka/test_passkey_child.c index 5003152c453..4ae682ddebc 100644 --- a/src/tests/cmocka/test_passkey_child.c +++ b/src/tests/cmocka/test_passkey_child.c @@ -1235,6 +1235,8 @@ void test_authenticate_integration(void **state) } will_return(__wrap_fido_dev_has_uv, false); will_return(__wrap_fido_dev_has_pin, false); + will_return(__wrap_fido_dev_has_uv, false); + will_return(__wrap_fido_dev_has_pin, false); will_return(__wrap_fido_dev_supports_uv, false); will_return(__wrap_fido_assert_set_uv, FIDO_OK); will_return(__wrap_fido_assert_set_clientdata_hash, FIDO_OK); @@ -1286,6 +1288,8 @@ void test_get_assert_data_integration(void **state) } will_return(__wrap_fido_dev_has_uv, false); will_return(__wrap_fido_dev_has_pin, false); + will_return(__wrap_fido_dev_has_uv, false); + will_return(__wrap_fido_dev_has_pin, false); will_return(__wrap_fido_dev_supports_uv, false); will_return(__wrap_fido_assert_set_uv, FIDO_OK); will_return(__wrap_fido_dev_has_uv, false); diff --git a/src/tests/system/data/test_ipa/certificate b/src/tests/system/data/test_ipa/certificate index 068327aba16..0d2892902f1 100644 --- a/src/tests/system/data/test_ipa/certificate +++ b/src/tests/system/data/test_ipa/certificate @@ -1 +1 @@ -MIIC0TCCAbmgAwIBAgIUO2P/fhnIwU5C6XzvBEAsTo9EuGowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UEAwwGdXNlci00MB4XDTI1MDIxOTEwMDU0MloXDTI2MDIxOTEwMDU0MlowETEPMA0GA1UEAwwGdXNlci00MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqTTyBCieYZ+mrQ1C/0cQOqginRELEOzUOMkhirHGr0mQpivNM1VTz4g+ZyJmofKgh25+VC1KzQiFceM8ZFcG58/I8+dwrGhhys4GAT5UHdD0XRQJ4Z0uxlbEXL48K7QnzDxSPPpxmCOu4kTLju+OinfwFQNSvV6Q+zydSHUI4UQ5cSfHj8ZxU6jfIQRg82+eBig4liynQsf1XGX6wwGPZ50Dasx5KVtgo2+ssUVFb62i7lmQdLxmuRzSaEfbauaaq/ZRXQvePGpMVg5PgrWlCWFz2hoGg+AEbqDhDMAfo0yE14dj+Nrz3huWvz6zNOuosau/BUQ/ZhtEk6Ath43WtwIDAQABoyEwHzAdBgNVHQ4EFgQUYyljRt30Bhs5URza+ZUKRm16s1gwDQYJKoZIhvcNAQELBQADggEBAF+utdu1lpSR9RzfgZM1J6Zy2bBSe0XCnnYLb3UNwAcAi33ZtLURmD8ypA8jzU1MrJvuuFT6heWRVIWEtUjl6ofXmHigyTTUXnp+l4GtOYH45nwQ/8HrfDpr0DvpYKemUOC2FOmBZB23OBLK2rrdBhJ7op2s8QD2aDgfnkIy2/woPwyIWucl69Lm7K6IAR+22op5OQI/XVEy+WcFZY99qxwCBp8S9ID4M8wqL72VOYEG/JKhO4whXvcaSuSwQgGqXdQGHEtCIzvK4K3s7qm2iOmw5KAv4cegVzRuDBGW7HzJm3nu4sOwOxAYNQkDYlolgeTc2jhQrZshBGVC/pIhtVs= \ No newline at end of file +MIIC0TCCAbmgAwIBAgIUO2P/fhnIwU5C6XzvBEAsTo9EuGowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UEAwwGdXNlci00MB4XDTI1MDIxOTEwMDU0MloXDTI2MDIxOTEwMDU0MlowETEPMA0GA1UEAwwGdXNlci00MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqTTyBCieYZ+mrQ1C/0cQOqginRELEOzUOMkhirHGr0mQpivNM1VTz4g+ZyJmofKgh25+VC1KzQiFceM8ZFcG58/I8+dwrGhhys4GAT5UHdD0XRQJ4Z0uxlbEXL48K7QnzDxSPPpxmCOu4kTLju+OinfwFQNSvV6Q+zydSHUI4UQ5cSfHj8ZxU6jfIQRg82+eBig4liynQsf1XGX6wwGPZ50Dasx5KVtgo2+ssUVFb62i7lmQdLxmuRzSaEfbauaaq/ZRXQvePGpMVg5PgrWlCWFz2hoGg+AEbqDhDMAfo0yE14dj+Nrz3huWvz6zNOuosau/BUQ/ZhtEk6Ath43WtwIDAQABoyEwHzAdBgNVHQ4EFgQUYyljRt30Bhs5URza+ZUKRm16s1gwDQYJKoZIhvcNAQELBQADggEBAF+utdu1lpSR9RzfgZM1J6Zy2bBSe0XCnnYLb3UNwAcAi33ZtLURmD8ypA8jzU1MrJvuuFT6heWRVIWEtUjl6ofXmHigyTTUXnp+l4GtOYH45nwQ/8HrfDpr0DvpYKemUOC2FOmBZB23OBLK2rrdBhJ7op2s8QD2aDgfnkIy2/woPwyIWucl69Lm7K6IAR+22op5OQI/XVEy+WcFZY99qxwCBp8S9ID4M8wqL72VOYEG/JKhO4whXvcaSuSwQgGqXdQGHEtCIzvK4K3s7qm2iOmw5KAv4cegVzRuDBGW7HzJm3nu4sOwOxAYNQkDYlolgeTc2jhQrZshBGVC/pIhtVs= diff --git a/src/tests/system/data/test_ipa/public_keys b/src/tests/system/data/test_ipa/public_keys index 9a7b6d742e6..2ac32fd9985 100644 --- a/src/tests/system/data/test_ipa/public_keys +++ b/src/tests/system/data/test_ipa/public_keys @@ -1,3 +1,3 @@ ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCI56aGtsWIbjz8XhODRT8NAio+TIHMXdiKoG6SdCtVlCR6xNP6gXgmChVWJ9DXlOF3WztOBf9om5SsPGX73/to= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPeSgRv4Vyq6ehrcA8hc6LFd9cUR1H3vdtH+WMJXvf1h -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4O+2dXWi4iTJR3vlsqZE9707K0sKTeEnWHyMoWUY0N/p6TZgxoLWfUW8XPbj4Yt4BaI6M48/jWZjHjXPJjLfgon3BT5LvyZHrlnN34APcZ7+r73mMt4pIPI7WnzqJluRGgcdEQuJhaSUbTGBUoHwCmp5JAREqWMappkwwSo9QQEzeAxT58dLTEyENTxB1DCP7sJShZd9p+37+5XJ1m1fkpnpDb/JMnTX9jSApk6r2DOZgcpX2aNFMbxSQ5zASfhmzJCfx52c97GD85Zx+LMXBJ4KzNKAbvTsruFj3k5jh7pYvqZseUuReBDCjSGQ4Q4MDBm+XAPbCNfQcgLPo678kkIFK8bZfKLDeJH4g64EO1xHGxBhmcYiXkc0gyqpECKekiUb3ltkyUA/R+Q8Jo+Zr70IHEM2fFvyiIqyz2Nx3PH/FTLDSBguQuEtzBHcMfb9/sO8lbofJneAfsAk3C3TYxqJ176xYqk4C24pB8UrOAflni+P0RqS1Zwte2u3ZD0E= \ No newline at end of file +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4O+2dXWi4iTJR3vlsqZE9707K0sKTeEnWHyMoWUY0N/p6TZgxoLWfUW8XPbj4Yt4BaI6M48/jWZjHjXPJjLfgon3BT5LvyZHrlnN34APcZ7+r73mMt4pIPI7WnzqJluRGgcdEQuJhaSUbTGBUoHwCmp5JAREqWMappkwwSo9QQEzeAxT58dLTEyENTxB1DCP7sJShZd9p+37+5XJ1m1fkpnpDb/JMnTX9jSApk6r2DOZgcpX2aNFMbxSQ5zASfhmzJCfx52c97GD85Zx+LMXBJ4KzNKAbvTsruFj3k5jh7pYvqZseUuReBDCjSGQ4Q4MDBm+XAPbCNfQcgLPo678kkIFK8bZfKLDeJH4g64EO1xHGxBhmcYiXkc0gyqpECKekiUb3ltkyUA/R+Q8Jo+Zr70IHEM2fFvyiIqyz2Nx3PH/FTLDSBguQuEtzBHcMfb9/sO8lbofJneAfsAk3C3TYxqJ176xYqk4C24pB8UrOAflni+P0RqS1Zwte2u3ZD0E= diff --git a/src/tests/system/data/test_passkey/readme.md b/src/tests/system/data/test_passkey/readme.md index 001fa3d3c85..a64f4222015 100644 --- a/src/tests/system/data/test_passkey/readme.md +++ b/src/tests/system/data/test_passkey/readme.md @@ -65,4 +65,4 @@ LD_PRELOAD=/opt/random.so umockdev-run --device /tmp/umockdev.device --script ${ Insert your passkey device, then press ENTER. Enter PIN: user1 -``` \ No newline at end of file +``` diff --git a/src/tests/system/data/test_passkey/test_passkey__check_tgt/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__check_tgt/umockdev.script.ipa index 831ad5d490c..fa04b4963f0 100644 --- a/src/tests/system/data/test_passkey/test_passkey__check_tgt/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__check_tgt/umockdev.script.ipa @@ -22,4 +22,4 @@ r 289 ^C r 291 ^C^Dֻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 ^C^Dֻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 291 ^C^Dֻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 289 ^C^Dֻ^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^D֐^@^@^AbidX@Q@ rj뀈,EAX+a<^H>*H^K^NKHa@^]=R^IY%^C^D^@^Xو*x^_HEQgqdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o^C^D^AC}.[^E^@^@^@^V^CXH0F^B!^@pC^^p3G^K|NjyZe˒e6d^B!^@^L^C^D^BV^Al^J4y1"ApZm|w^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 289 ^C^Dֻ^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^D֐^@^@^AbidX@Q@ rj뀈,EAX+a<^H>*H^K^NKHa@^]=R^IY%^C^D^@^Xو*x^_HEQgqdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o^C^D^AC}.[^E^@^@^@^V^CXH0F^B!^@pC^^p3G^K|NjyZe˒e6d^B!^@^L^C^D^BV^Al^J4y1"ApZm|w^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__ipa_server_offline/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__ipa_server_offline/umockdev.script.ipa index 0aa3a56e5ba..4bfd4d09ef1 100644 --- a/src/tests/system/data/test_passkey/test_passkey__ipa_server_offline/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__ipa_server_offline/umockdev.script.ipa @@ -19,4 +19,4 @@ r 288 r 290 rl^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 rl^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 rl^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 222 rl^@^@^AbidX@Ƥ0SWE>X[w^U)n{=mu}M^_!rl^@LtWf^HY3c$…dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/orl^AC}.[^E^@^@^@^O^CXF0D^B ^A"^IJ,R^DR^R^Cr-1"Ӧ!I^B nKLsrl^B^_b5\A^U}¸)^I^Aw=^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 222 rl^@^@^AbidX@Ƥ0SWE>X[w^U)n{=mu}M^_!rl^@LtWf^HY3c$…dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/orl^AC}.[^E^@^@^@^O^CXF0D^B ^A"^IJ,R^DR^R^Cr-1"Ӧ!I^B nKLsrl^B^_b5\A^U}¸)^I^Aw=^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ad index e9864e7f2da..b76bae3ed35 100644 --- a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ad @@ -16,4 +16,4 @@ r 288 r 288 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ipa index 1bc651a4465..3be6a85a87c 100644 --- a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ipa @@ -19,4 +19,4 @@ r 288 r 290 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ldap index db026662951..96f6c76fc47 100644 --- a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.ldap @@ -18,4 +18,4 @@ r 288 ^S r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^S=^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.samba index 4c0b6e23e92..45f9af8373e 100644 --- a/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__lookup_user_from_cache/umockdev.script.samba @@ -16,4 +16,4 @@ r 246 n r 289 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 n5Ż^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__prompt_options/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__prompt_options/umockdev.script.ipa index 0e88c0f935e..289296f4597 100644 --- a/src/tests/system/data/test_passkey/test_passkey__prompt_options/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__prompt_options/umockdev.script.ipa @@ -27,4 +27,4 @@ r 288 r 290 ˏ-^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ˏ-^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ˏ-^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 198 ˏ-^@^@^AbidX@n]^KRg8^C$wJˡƲ婟Cx^RV^B ^A>nnUU0Q\]՟^CGcg8^Dx5cY^B0^B0^A^C^B^A^B^B^I^@9*7_80^M^F^I*H^M^A^A^K^E^@0.1,0*^F^CU^D^C^S#g8^EYubico U2F Root CA Serial 4572006310 ^W^M140801000000Z^X^O20500g8^F904000000Z0n1^K0^I^F^CU^D^F^S^BSE1^R0^P^F^CU^D^J^L^IYubico AB1"0 ^F^CU^D^K^L^YAutg8^Ghenticator Attestation1'0%^F^CU^D^C^L^^Yubico U2F EE Serial 92551g8^H41600Y0^S^F^G*H=^B^A^F^H*H=^C^A^G^CB^@^DS0^Nȣ\^G2V^FL$]^MSX^Kg8^IsG^O^W^Uyyhp\^W^C&oۆ^U#£00^S^F^J+^F^A^D^A^J^M^A^D^E^D^Cg8^J^E^D^C0"^F^I+^F^A^D^A^J^B^D^U1.3.6.1.4.1.41482.1.70^S^F^K+^F^A^D^A^\^B^A^A^D^D^C^B^Dg8^K00!^F^K+^F^A^D^A^\^A^A^D^D^R^D^P/W^SG^VZ *0^L^F^CU^]^S^A^A^D^B0^@0^M^F^I*Hg8^L^M^A^A^K^E^@^C^A^A^@^Ai1d;I^O!/X,H^\_^X"t9e>3J]^KbP^N^D<ԓg8^MpI^Hw^J^P=^VN^Rr`C6"̜j^G-x'^_^A^^jE| {V^Rg|%51g8^NKөuԼd~^R,޵/u^T^@\b^_*G^Hۨy%M^V:E*DN^T^YvX6^N^M^`g8^OE^V^N)"L^HP`nw<\S~rOoL*2r?Q^H.k[]ȊLDNEg8^P;31V^P~#6!^K((g!B^Kv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 291 g8^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@g8^D^H^@^Afpacked^BXĜ^@|Dږ^Qx??d^Q/N4/oC}.[E^@^@^@^B/W^SGg8^@^VZ *^@@^O^U$ӂb(ݎ^S^P,^Os^JtC"6_;^Uځ^\^@ [g8^A^Q^YZ 8^^y^D^N^A^B^C& ^A!X ʼZzJH_^Lý^_\Z^O^F^H^\I,{b"g8^BX jV$/ybgw|i^Z;fRy^[(ZU^Ccalg&csigXF0D^B >]^KRg8^C$wJˡƲ婟Cx^RV^B ^A>nnUU0Q\]՟^CGcg8^Dx5cY^B0^B0^A^C^B^A^B^B^I^@9*7_80^M^F^I*H^M^A^A^K^E^@0.1,0*^F^CU^D^C^S#g8^EYubico U2F Root CA Serial 4572006310 ^W^M140801000000Z^X^O20500g8^F904000000Z0n1^K0^I^F^CU^D^F^S^BSE1^R0^P^F^CU^D^J^L^IYubico AB1"0 ^F^CU^D^K^L^YAutg8^Ghenticator Attestation1'0%^F^CU^D^C^L^^Yubico U2F EE Serial 92551g8^H41600Y0^S^F^G*H=^B^A^F^H*H=^C^A^G^CB^@^DS0^Nȣ\^G2V^FL$]^MSX^Kg8^IsG^O^W^Uyyhp\^W^C&oۆ^U#£00^S^F^J+^F^A^D^A^J^M^A^D^E^D^Cg8^J^E^D^C0"^F^I+^F^A^D^A^J^B^D^U1.3.6.1.4.1.41482.1.70^S^F^K+^F^A^D^A^\^B^A^A^D^D^C^B^Dg8^K00!^F^K+^F^A^D^A^\^A^A^D^D^R^D^P/W^SG^VZ *0^L^F^CU^]^S^A^A^D^B0^@0^M^F^I*Hg8^L^M^A^A^K^E^@^C^A^A^@^Ai1d;I^O!/X,H^\_^X"t9e>3J]^KbP^N^D<ԓg8^MpI^Hw^J^P=^VN^Rr`C6"̜j^G-x'^_^A^^jE| {V^Rg|%51g8^NKөuԼd~^R,޵/u^T^@\b^_*G^Hۨy%M^V:E*DN^T^YvX6^N^M^`g8^OE^V^N)"L^HP`nw<\S~rOoL*2r?Q^H.k[]ȊLDNEg8^P;31V^P~#6!^K((g!B^Kv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__register_sssctl/umockdev.script b/src/tests/system/data/test_passkey/test_passkey__register_sssctl/umockdev.script index 9e04a725cc5..9c600c1c71a 100644 --- a/src/tests/system/data/test_passkey/test_passkey__register_sssctl/umockdev.script +++ b/src/tests/system/data/test_passkey/test_passkey__register_sssctl/umockdev.script @@ -16,4 +16,4 @@ r 288 2qu r 290 2qu^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 2qu^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 2qu^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 170 2qu^D^H^@^Afpacked^BXD^^^W^D@+0w7-яD^I^E^H7E^@^@^@^A/W^SG2qu^@^VZ *^@@?qD^V(E/[R^SJ%kK69#4^W^ABA9^IE虿2qu^Aw^TwjY^Z%~F#^A^B^C& ^A!X ~$Gv71!^`P^W-^A^@^]_[^Afo^X:x"2qu^BX #?5FFl^N"kEV^Z$^S֣.jc-^B^Ccalg&csigXF0D^B ^Y1Q]2qu^CC^I>^PyIlr}^A\^L.?^B X9S^N鵭8t^\"2:[c2qu^Dx5cY^B0^B0^A^C^B^A^B^B^I^@9*7_80^M^F^I*H^M^A^A^K^E^@0.1,0*^F^CU^D^C^S#2qu^EYubico U2F Root CA Serial 4572006310 ^W^M140801000000Z^X^O205002qu^F904000000Z0n1^K0^I^F^CU^D^F^S^BSE1^R0^P^F^CU^D^J^L^IYubico AB1"0 ^F^CU^D^K^L^YAut2qu^Ghenticator Attestation1'0%^F^CU^D^C^L^^Yubico U2F EE Serial 925512qu^H41600Y0^S^F^G*H=^B^A^F^H*H=^C^A^G^CB^@^DS0^Nȣ\^G2V^FL$]^MSX^K2qu^IsG^O^W^Uyyhp\^W^C&oۆ^U#£00^S^F^J+^F^A^D^A^J^M^A^D^E^D^C2qu^J^E^D^C0"^F^I+^F^A^D^A^J^B^D^U1.3.6.1.4.1.41482.1.70^S^F^K+^F^A^D^A^\^B^A^A^D^D^C^B^D2qu^K00!^F^K+^F^A^D^A^\^A^A^D^D^R^D^P/W^SG^VZ *0^L^F^CU^]^S^A^A^D^B0^@0^M^F^I*H2qu^L^M^A^A^K^E^@^C^A^A^@^Ai1d;I^O!/X,H^\_^X"t9e>3J]^KbP^N^D<ԓ2qu^MpI^Hw^J^P=^VN^Rr`C6"̜j^G-x'^_^A^^jE| {V^Rg|%512qu^NKөuԼd~^R,޵/u^T^@\b^_*G^Hۨy%M^V:E*DN^T^YvX6^N^M^`2qu^OE^V^N)"L^HP`nw<\S~rOoL*2r?Q^H.k[]ȊLDNE2qu^P;31V^P~#6!^K((g!B^Kv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 170 2qu^D^H^@^Afpacked^BXD^^^W^D@+0w7-яD^I^E^H7E^@^@^@^A/W^SG2qu^@^VZ *^@@?qD^V(E/[R^SJ%kK69#4^W^ABA9^IE虿2qu^Aw^TwjY^Z%~F#^A^B^C& ^A!X ~$Gv71!^`P^W-^A^@^]_[^Afo^X:x"2qu^BX #?5FFl^N"kEV^Z$^S֣.jc-^B^Ccalg&csigXF0D^B ^Y1Q]2qu^CC^I>^PyIlr}^A\^L.?^B X9S^N鵭8t^\"2:[c2qu^Dx5cY^B0^B0^A^C^B^A^B^B^I^@9*7_80^M^F^I*H^M^A^A^K^E^@0.1,0*^F^CU^D^C^S#2qu^EYubico U2F Root CA Serial 4572006310 ^W^M140801000000Z^X^O205002qu^F904000000Z0n1^K0^I^F^CU^D^F^S^BSE1^R0^P^F^CU^D^J^L^IYubico AB1"0 ^F^CU^D^K^L^YAut2qu^Ghenticator Attestation1'0%^F^CU^D^C^L^^Yubico U2F EE Serial 925512qu^H41600Y0^S^F^G*H=^B^A^F^H*H=^C^A^G^CB^@^DS0^Nȣ\^G2V^FL$]^MSX^K2qu^IsG^O^W^Uyyhp\^W^C&oۆ^U#£00^S^F^J+^F^A^D^A^J^M^A^D^E^D^C2qu^J^E^D^C0"^F^I+^F^A^D^A^J^B^D^U1.3.6.1.4.1.41482.1.70^S^F^K+^F^A^D^A^\^B^A^A^D^D^C^B^D2qu^K00!^F^K+^F^A^D^A^\^A^A^D^D^R^D^P/W^SG^VZ *0^L^F^CU^]^S^A^A^D^B0^@0^M^F^I*H2qu^L^M^A^A^K^E^@^C^A^A^@^Ai1d;I^O!/X,H^\_^X"t9e>3J]^KbP^N^D<ԓ2qu^MpI^Hw^J^P=^VN^Rr`C6"̜j^G-x'^_^A^^jE| {V^Rg|%512qu^NKөuԼd~^R,޵/u^T^@\b^_*G^Hۨy%M^V:E*DN^T^YvX6^N^M^`2qu^OE^V^N)"L^HP`nw<\S~rOoL*2r?Q^H.k[]ȊLDNE2qu^P;31V^P~#6!^K((g!B^Kv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fallback_to_password/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_fallback_to_password/umockdev.script.ipa index c8e82d860e1..cc4b65ec4a3 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_fallback_to_password/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_fallback_to_password/umockdev.script.ipa @@ -26,4 +26,4 @@ r 288 rE r 290 rE^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 rE^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 rE^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 126 rE^@^@^AbidX@I(^NQ7ȇ^@^E7a=ES`?F^X^@6^VŞ4eurE^@^OTH6:c^^dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/orE^AC}.[^E^@^@^@^J^CXH0F^B!^@L^ZK^F^T8G1[^JFLF"^R^B!^@frE^Bp^C^JAPvP5/^Eyv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 126 rE^@^@^AbidX@I(^NQ7ȇ^@^E7a=ES`?F^X^@6^VŞ4eurE^@^OTH6:c^^dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/orE^AC}.[^E^@^@^@^J^CXH0F^B!^@L^ZK^F^T8G1[^JFLF"^R^B!^@frE^Bp^C^JAPvP5/^Eyv^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ad index 3c737812ce4..ec7d74277ad 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ad @@ -20,4 +20,4 @@ r 290 ^K, r 288 ^K,E^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^K,E^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^K,E^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 76 ^K,E^@^@^AbidX@^_K^Yr:6^@Buj$~^[^R^^{o^@D당w^[iq ^^+^K,E^@3gv-?e5>|dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^K,E^AA,K!^E^@^@^@^D^CXG0E^B f0d^M P^OKOOqF^B^_^DK4^L^B!^@VT^K,E^B^GxGF_*⶞^O^S޲v^@A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 76 ^K,E^@^@^AbidX@^_K^Yr:6^@Buj$~^[^R^^{o^@D당w^[iq ^^+^K,E^@3gv-?e5>|dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^K,E^AA,K!^E^@^@^@^D^CXG0E^B f0d^M P^OKOOqF^B^_^DK4^L^B!^@VT^K,E^B^GxGF_*⶞^O^S޲v^@A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ipa index 4381bd7ba88..aba6addee23 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ipa @@ -17,4 +17,4 @@ r 290 Y)0Y r 288 Y)0Y^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 Y)0Y^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 Y)0Y^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 149 Y)0Y^@^@^AbidX@_kDeӘ^Vr^K^@RuYa^G]7^HqEb^``^O^U/1^T^@oT?Y)0Y^@B^SY2%g~b^K^Fydtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oY)0Y^AC}.[^E^@^@^@^Q^CXF0D^B ^B^[<^L^Eڦ;)1\^@Ϳ95=)^B fþ%Y)0Y^B^W|^R^Do)K^`^B^HlW\)^E^Rv^U^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 149 Y)0Y^@^@^AbidX@_kDeӘ^Vr^K^@RuYa^G]7^HqEb^``^O^U/1^T^@oT?Y)0Y^@B^SY2%g~b^K^Fydtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oY)0Y^AC}.[^E^@^@^@^Q^CXF0D^B ^B^[<^L^Eڦ;)1\^@Ϳ95=)^B fþ%Y)0Y^B^W|^R^Do)K^`^B^HlW\)^E^Rv^U^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ldap index 9c6e3effd91..70f409da31a 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_fips_fido_key/umockdev.script.ldap @@ -18,4 +18,4 @@ r 288 r 287 L_^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 L_^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 L_^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 244 L_^@^@^AbidX@cЬm^]pv+hh^HuU^A`^_W^E^@^@^@^L^CXG0E^B >uy{Y^HU^\=1O#^^^S^B!^@^EQU^Bg^JJ{^JYZW^U^Q^Ia$^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 124 U^@^@^AbidX@^Ls^Yb:o['٠E&*ܜΠ^Ox^O^WB*^VU^@t^]i^D^K}^X3f\^]dtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>U^A`^_W^E^@^@^@^L^CXG0E^B >uy{Y^HU^\=1O#^^^S^B!^@^EQU^Bg^JJ{^JYZW^U^Q^Ia$^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_no_pin_set/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_no_pin_set/umockdev.script.ipa index a76e7072e1b..72b37a104b7 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_no_pin_set/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_no_pin_set/umockdev.script.ipa @@ -15,4 +15,4 @@ r 290 r 288 c^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 291 c^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 c^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 221 c^@^@^AbidX@^^^F%FM^Xq$U^V^RLi^FI#^RU"!5%^J^_c^@`^G8^O9)Kdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oc^AC}.[^A^@^@^@^M^CXF0D^B e_r^Yb#V4j-RF㬑^YLܱ}^B Ag^Rc^BhQ^Jc7^^^V[xg0^`^Hӆ^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 221 c^@^@^AbidX@^^^F%FM^Xq$U^V^RLi^FI#^RU"!5%^J^_c^@`^G8^O9)Kdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oc^AC}.[^A^@^@^@^M^CXF0D^B e_r^Yb#V4j-RF㬑^YLܱ}^B Ag^Rc^BhQ^Jc7^^^V[xg0^`^Hӆ^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ad index e9864e7f2da..b76bae3ed35 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ad @@ -16,4 +16,4 @@ r 288 r 288 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ipa index 1bc651a4465..3be6a85a87c 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ipa @@ -19,4 +19,4 @@ r 288 r 290 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ldap index db026662951..96f6c76fc47 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.ldap @@ -18,4 +18,4 @@ r 288 ^S r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^S=^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.samba index 4c0b6e23e92..45f9af8373e 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user/umockdev.script.samba @@ -16,4 +16,4 @@ r 246 n r 289 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 n5Ż^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user1 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user1 index 22e9c14b10d..5681ab392b5 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user1 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user1 @@ -18,4 +18,4 @@ r 289 Ny4 r 289 Ny4^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 Ny4^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 Ny4^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 76 Ny4^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=ZNy4^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDNy4^AA,K!^E^@^@^@^K^CXG0E^B!^@^[*G%Ir^B^JQR^Pm^S^V^B^B ^B^JNy4^Bɐ؂ҡ͵劻Ψ|"{<^B氋^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 76 Ny4^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=ZNy4^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDNy4^AA,K!^E^@^@^@^K^CXG0E^B!^@^[*G%Ir^B^JQR^Pm^S^V^B^B ^B^JNy4^Bɐ؂ҡ͵劻Ψ|"{<^B氋^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user2 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user2 index e72e148f0f0..8015eda584c 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user2 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user2 @@ -15,4 +15,4 @@ r 221 r 287 {^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 {^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 {^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 78 {^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=Z{^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD{^AA,K!^E^@^@^@^O^CXG0E^B p^XAh(Cz^`ڨF^Y.[S)\W^R^X^B!^@/^Z{^BoX^I,2¶j+֍^`y^I􇴫^Q^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 78 {^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=Z{^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD{^AA,K!^E^@^@^@^O^CXG0E^B p^XAh(Cz^`ڨF^Y.[S)\W^R^X^B!^@/^Z{^BoX^I,2¶j+֍^`y^I􇴫^Q^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user3 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user3 index a50f4cae572..e192ae0e3a0 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user3 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ad.user3 @@ -17,4 +17,4 @@ r 288 9H^N r 288 9H^N^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 9H^N^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 9H^N^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 268 9H^N^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=Z9H^N^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD9H^N^AA,K!^E^@^@^@^R^CXF0D^B ^V^C^DNnD)P^C3c|^Fd?D6Y^Ds^B ^Ca^\^N9H^N^B4_$J^S^]Rq׆x@^Vy8L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 268 9H^N^@^@^AbidX@տ^Kiς^N_^J*uGH?^Kan:>^\OҭD2M&=Z9H^N^@BQ6Do^B^Zܔ^@dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD9H^N^AA,K!^E^@^@^@^R^CXF0D^B ^V^C^DNnD)P^C3c|^Fd?D6Y^Ds^B ^Ca^\^N9H^N^B4_$J^S^]Rq׆x@^Vy8L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user1 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user1 index 6d55fdb1fb6..74f3fe808a6 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user1 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user1 @@ -19,4 +19,4 @@ r 287 r 288 $^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 $^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 $^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 290 $^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$^@^@^AbidX@J;f=3^Nz^]8М0^H^D7l^[^\^M*^Qь^B$^@#i%^@jD^Ts7dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o$^AC}.[^E^@^@^@^Y^CXF0D^B ="U=$^[^F^N$^AA^HsF0ۢ^B W^AP$^Bw^XtJn5^Y%^K> Iw^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 290 $^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$^@^@^AbidX@J;f=3^Nz^]8М0^H^D7l^[^\^M*^Qь^B$^@#i%^@jD^Ts7dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o$^AC}.[^E^@^@^@^Y^CXF0D^B ="U=$^[^F^N$^AA^HsF0ۢ^B W^AP$^Bw^XtJn5^Y%^K> Iw^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user2 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user2 index 0dd6f4109a4..4e9b254939a 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user2 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user2 @@ -20,4 +20,4 @@ r 290 r 288 K^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 K^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 K^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 54 K^@^@^AbidX@J;f=3^Nz^]8М0^H^D7l^[^\^M*^Qь^BK^@#i%^@jD^Ts7dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oK^AC}.[^E^@^@^@^^^CXF0D^B Wp^_rJNJS^_^Y"&}w$^_^B #+ᏵK^B>^Co^_U^]m^X^ID^LяǺI9%^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 54 K^@^@^AbidX@J;f=3^Nz^]8М0^H^D7l^[^\^M*^Qь^BK^@#i%^@jD^Ts7dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/oK^AC}.[^E^@^@^@^^^CXF0D^B Wp^_rJNJS^_^Y"&}w$^_^B #+ᏵK^B>^Co^_U^]m^X^ID^LяǺI9%^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user3 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user3 index c4761f29517..a0c902e7a53 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user3 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ipa.user3 @@ -18,4 +18,4 @@ r 289 r 287 ^O^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^O^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 ^O^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 173 ^O^@^@^AbidX@J;f=3^Nz^]8М0^H^D7l^[^\^M*^Qь^B^O^@#i%^@jD^Ts7dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o^O^AC}.[^E^@^@^@#^CXF0D^B B׻Ge'?AkB׻Ge'?AkB׻Ge'?Ak^B!^@|++^ByJ{>Tֆ^FF^\^@;Xf^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 150 |++^@^@^AbidX@p5^N^I>B׻Ge'?Ak^B!^@|++^ByJ{>Tֆ^FF^\^@;Xf^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ldap.user3 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ldap.user3 index e4530f667b2..abfea4af5c1 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ldap.user3 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.ldap.user3 @@ -17,4 +17,4 @@ r 291 S r 288 S^\^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 S^\^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 S^\^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 125 S^\^@^@^AbidX@p5^N^I>B׻Ge'?AkB׻Ge'?Ak'N^A`^_W^E^@^@^@^L^CXG0E^B ^FI^KYoTI%^]OrN|^RZx>&^B!^@:'N^BIҢ&^Otl^F_y.^A2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 28 'NԐ^@^@^AbidX@X^\^V^T^Y^HӜ^EE^]^Ys4}^^^N瑩]^Z<^Q'N^@@^L56^Z^^Oܔdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>'N^A`^_W^E^@^@^@^L^CXG0E^B ^FI^KYoTI%^]OrN|^RZx>&^B!^@:'N^BIҢ&^Otl^F_y.^A2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user2 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user2 index f9e2a6a99b0..0854c9dbdf2 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user2 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user2 @@ -16,4 +16,4 @@ r 288 5ގ r 288 5ގ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 5ގ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 5ގ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 196 5ގ^@^@^AbidX@X^\^V^T^Y^HӜ^EE^]^Ys4}^^^N瑩]^Z<^Q5ގ^@@^L56^Z^^Oܔdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>5ގ^A`^_W^E^@^@^@^P^CXH0F^B!^@<^A^Xëwta-^E{c}^\>^Tr]CgPU^B!^@;^@5ގ^B^Ke^F^L^S#dEv%0^KIB%mx^I^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 196 5ގ^@^@^AbidX@X^\^V^T^Y^HӜ^EE^]^Ys4}^^^N瑩]^Z<^Q5ގ^@@^L56^Z^^Oܔdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>5ގ^A`^_W^E^@^@^@^P^CXH0F^B!^@<^A^Xëwta-^E{c}^\>^Tr]CgPU^B!^@;^@5ގ^B^Ke^F^L^S#dEv%0^KIB%mx^I^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user3 b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user3 index 67b9ac30848..bcb8cdef082 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user3 +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_same_key_for_other_users/umockdev.script.samba.user3 @@ -15,4 +15,4 @@ r 245 l r 288 l^TD^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 l^TD^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 l^TD^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 244 l^TD^@^@^AbidX@X^\^V^T^Y^HӜ^EE^]^Ys4}^^^N瑩]^Z<^Ql^TD^@@^L56^Z^^Oܔdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>l^TD^A`^_W^E^@^@^@^T^CXG0E^B J^Mc7>^_:^Gh>^F^LN)^\0^B!^@U\l^TD^BJC^J`Wj^Nw^Jmo^I^CL^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 244 l^TD^@^@^AbidX@X^\^V^T^Y^HӜ^EE^]^Ys4}^^^N瑩]^Z<^Ql^TD^@@^L56^Z^^Oܔdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>l^TD^A`^_W^E^@^@^@^T^CXG0E^B J^Mc7>^_:^Gh>^F^LN)^\0^B!^@U\l^TD^BJC^J`Wj^Nw^Jmo^I^CL^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ad index 00063d72881..1c351bf72db 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ad @@ -24,4 +24,4 @@ r 289 C^G*ܻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 C^G*ܻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 C^G*ܻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 C^G*ܻ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 198 C^G*ܐ^@^@^AbidX@-USEP~/#^KM^B^\^O^Uhri{Z'8a"T^P^VrC^G*^@^WoU^N.)^IH3^Ldtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDC^G*^AA,K!^E^@^@^@^K^CXG0E^B JԄ^L^I^_^Vi^B4 o^E^C/T^G^C4^Rԡc^B!^@^CC^G*^Brס\'^T^Kr%\n^K$ڵ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 198 C^G*ܐ^@^@^AbidX@-USEP~/#^KM^B^\^O^Uhri{Z'8a"T^P^VrC^G*^@^WoU^N.)^IH3^Ldtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDC^G*^AA,K!^E^@^@^@^K^CXG0E^B JԄ^L^I^_^Vi^B4 o^E^C/T^G^C4^Rԡc^B!^@^CC^G*^Brס\'^T^Kr%\n^K$ڵ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ldap index 20d3295f175..3443d736475 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.ldap @@ -17,4 +17,4 @@ r 287 r 291 G1^K^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 G1^K^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 291 G1^K^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 78 G1^K^@^@^AbidX@Aw1y*5c^Fkr^[^Vtu~^MR0)ե ^P^XЊ9xʗvG1^K^@^U=Dlq'5Rdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,G1^K^A]l^U^J^H^E^@^@^@^M^CXG0E^B!^@j^[iڡ^X^BN7X^E:^`]+/-^B ^_*rG1^K^Bj^N1E^D^@^[0x|൙߆T^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 78 G1^K^@^@^AbidX@Aw1y*5c^Fkr^[^Vtu~^MR0)ե ^P^XЊ9xʗvG1^K^@^U=Dlq'5Rdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,G1^K^A]l^U^J^H^E^@^@^@^M^CXG0E^B!^@j^[iڡ^X^BN7X^E:^`]+/-^B ^_*rG1^K^Bj^N1E^D^@^[0x|൙߆T^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.samba index 3b3c7ee63a3..0a7f3bf7e37 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_add_with_ssh_key_and_mapping/umockdev.script.samba @@ -22,4 +22,4 @@ r 290 Z^F r 290 Z^F^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 291 Z^F^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 Z^F^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 174 Z^F^@^@^AbidX@W^O^Bl;^R8e^Y_^@(RA-`,(bSe^F͊@^O2JM;Z^F^@p^M^^o6] 9%^\^YOdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>Z^F^A`^_W^E^@^@^@^F^CXG0E^B 8^S=e5p^V^^)>`5*^B!^@f?Z^F^B4RLi^N^[˚^A^H]"ϩ:^^/s<^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 174 Z^F^@^@^AbidX@W^O^Bl;^R8e^Y_^@(RA-`,(bSe^F͊@^O2JM;Z^F^@p^M^^o6] 9%^\^YOdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>Z^F^A`^_W^E^@^@^@^F^CXG0E^B 8^S=e5p^V^^)>`5*^B!^@f?Z^F^B4RLi^N^[˚^A^H]"ϩ:^^/s<^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ad index e9864e7f2da..b76bae3ed35 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ad @@ -16,4 +16,4 @@ r 288 r 288 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 52 ^@^@^AbidX@Z;*?^O[u!^Z0=bUG^TqFp^O]^HחI7%^@Lb.Fm4m^Mcdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^AA,K!^E^@^@^@^X^CXF0D^B ^N^A^Zb;u.^S^_v}v{^K'Y{^B 4^H^BɩXû^DAe3A'bU_^M`[Ay^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ipa index 1bc651a4465..3be6a85a87c 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ipa @@ -19,4 +19,4 @@ r 288 r 290 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ldap index db026662951..96f6c76fc47 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.ldap @@ -18,4 +18,4 @@ r 288 ^S r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^S=^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.samba index 4c0b6e23e92..45f9af8373e 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_offline/umockdev.script.samba @@ -16,4 +16,4 @@ r 246 n r 289 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 n5Ż^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 n5Ż^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 75 n5Ő^@^@^AbidX@ŀn&X9T$HΚ'm^S^Ys^F$m7^Iksn5^@۬JL^Xqdtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>n5^A`^_W^E^@^@^@F^CXH0F^B!^@/2^_1,,0^ABd^FKZ@m^B!^@^S&n5^BO|FoзN$<ˣ!W\^V^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ipa index e529e2ee905..915689bd654 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ipa @@ -1 +1 @@ -passkey:NUZMRUXIb/W8Ij1GqwCDHSCWxt/SxWxckwtQjLYi/X6Y1qZFB+HI8WO6khzAjzsz248kHbaeAf9qfmqfCky1Jg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIasAa8ogjPCKXeA4KY3t0W3xBRmG+E4D+MNoRIAJrYuNLSYtAcOL7DCbIfgc+7c5Y4Mh/FzoEyeumKGYMoyTfg== \ No newline at end of file +passkey:NUZMRUXIb/W8Ij1GqwCDHSCWxt/SxWxckwtQjLYi/X6Y1qZFB+HI8WO6khzAjzsz248kHbaeAf9qfmqfCky1Jg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIasAa8ogjPCKXeA4KY3t0W3xBRmG+E4D+MNoRIAJrYuNLSYtAcOL7DCbIfgc+7c5Y4Mh/FzoEyeumKGYMoyTfg== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ldap index 27dbfd9af40..82d76d9b590 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/passkey-mapping.ldap @@ -1 +1 @@ -passkey:mQEUTWdtDJPELQNTDdxXNHlfIO1qXFf0LVZjWEfyDALFzvLZ4e4XD5bemqq+o3ThrzT6k1I1n3Z2N00GvLSmjQ==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqk7K5VAI7Evr4ar8X82L/sxm/Bnm5Ti31xnLfGO0BipwHucw8+/wT4+6T9j5gdMwZKUcXR4BILpmULEyrcZUfw== \ No newline at end of file +passkey:mQEUTWdtDJPELQNTDdxXNHlfIO1qXFf0LVZjWEfyDALFzvLZ4e4XD5bemqq+o3ThrzT6k1I1n3Z2N00GvLSmjQ==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqk7K5VAI7Evr4ar8X82L/sxm/Bnm5Ti31xnLfGO0BipwHucw8+/wT4+6T9j5gdMwZKUcXR4BILpmULEyrcZUfw== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ad index 35230af49bc..a8ff6b5e962 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ad @@ -16,4 +16,4 @@ r 288 r 290 ^Y^Zo^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^Y^Zo^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^Y^Zo^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 288 ^Y^Zo^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Y^Zo^@^@^AbidX@0؉^L^W̥M ^C)^N OC<^[~&^UFE)s^Y^Zo^@Y^H^J^N'^]^T/a'Zdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^Y^Zo^AA,K!^E^@^@^@^M^CXF0D^B CpQl^S];[(Ei#{"BY^Uܥ^B^B ;']>^Y^Zo^B^A^F^]?u;࿙^U߄9^O^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 288 ^Y^Zo^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Y^Zo^@^@^AbidX@0؉^L^W̥M ^C)^N OC<^[~&^UFE)s^Y^Zo^@Y^H^J^N'^]^T/a'Zdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^Y^Zo^AA,K!^E^@^@^@^M^CXF0D^B CpQl^S];[(Ei#{"BY^Uܥ^B^B ;']>^Y^Zo^B^A^F^]?u;࿙^U߄9^O^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ipa index 1bc651a4465..3be6a85a87c 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ipa @@ -19,4 +19,4 @@ r 288 r 290 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 174 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^E^@^@^@^\^CXG0E^B Eo]Wk%^H$-^W^BR^`x^P׀^B!^@ёqp^Bu9\^ZKR&>/͎[`t,^^eg^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ldap index db026662951..96f6c76fc47 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.ldap @@ -18,4 +18,4 @@ r 288 ^S r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^S=^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 28 ^S=^@^@^AbidX@^A^TMgm^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt^S=^@4R5vv7M^Fdtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^S=^A]l^U^J^H^E^@^@^@^G^CXF0D^B j8^M\:H^O@%qt(^\/Ǻ~$$!>;^B u^S=^B{9AbF6^Xs5^K*ywv^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.samba index c0e02fac1ba..65b4b610dc9 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_when_server_is_not_resolvable/umockdev.script.samba @@ -21,4 +21,4 @@ r 291 j r 287 j^J˻^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 j^J˻^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 j^J˻^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 246 j^Jː^@^@^AbidX@-^H&R ⦦{нy7VX!k^Rnx^G^ARų!wCtH^Ln^Rj^J^@^R(.H2Il&0dtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>j^J^A`^_W^E^@^@^@^L^CXF0D^B `Wo%^Q&-?g{^B_<@^V3@/l^B I^I&j^J^BH,\DW^^pEKb^Y%^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 246 j^Jː^@^@^AbidX@-^H&R ⦦{нy7VX!k^Rnx^G^ARų!wCtH^Ln^Rj^J^@^R(.H2Il&0dtypejpublic-key^BX% ^S@^_n1n;Qm\<ִ>j^J^A`^_W^E^@^@^@^L^CXF0D^B `Wo%^Q&-?g{^B_<@^V3@/l^B I^I&j^J^BH,\DW^^pEKb^Y%^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_failed_pin/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_with_failed_pin/umockdev.script.ad index 4283810b71d..7fefe1a2433 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_failed_pin/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_failed_pin/umockdev.script.ad @@ -9,4 +9,4 @@ r 82 ^H; w 7 ^@^H;^@^F^F^A^B^B^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 3 ^H;^@Q^@^A^A^B^C8^X ^A!X tV~EWpC~$z>Gqu|^W^Iw"X A^H;^@n^L}~2P浐^G|^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 7 ^@^H;^@x^F^A^B^B^E^C^A^B^C8^X ^A!X 3B1ˠ^S^\^Ev,^P)=0M^J^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 5 ^@^@x^F^A^B^B^E^C^A^B^C8^X ^A!X 3B1ˠ^S^\^Ev,^P^Rr^@^\k^A^Y^V7^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 315 ^\k^@^A1^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 315 ^\k^@^A1^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ad index 3f04d19aec5..5297e94bbfd 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ad @@ -5,4 +5,4 @@ r 3 w 3 ^@^[.^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 2 ^[.^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^[.^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^[.^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^[.^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 4 ^@^[.^@^B^Agad.test^BX ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^CbidX@ۜ^@^[.^@^CՒN^]}PDv<=^I^Z]^W$Z^W^A^B^_ՍؓӰUvh#HV^R^@^[.^A^@dtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 7 ^[.^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 7 ^[.^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ipa index 8f1039f7cc1..1fc0dff1536 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ipa @@ -5,4 +5,4 @@ r 2 w 2 ^@^LҐ^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 2 ^LҐ^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^L^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^L^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^L^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 1 ^@^LҐ^@^B^Ahipa.test^BX ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^CbidX@^@^L^@^CՒN^]}PDv<=^I^Z]^W$Z^W^A^B^_ՍؓӰUvh#HV^@^L^A^R^@dtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 6 ^LҐ^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 6 ^LҐ^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ldap index 4d9aa650c51..0074e6da8ee 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.ldap @@ -5,4 +5,4 @@ r 3 w 1 ^@^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 2 ^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 2 ^@^@^B^Adtest^BX ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^CbidX@hH^^Y^@^@:^Y5`,Mo~^ILGǧ~{WwX^X\I~]u#핷Md^@^Atypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 7 ^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 7 ^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.samba index dfff5d24fb5..385fed921dc 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_incorrect_mapping/umockdev.script.samba @@ -5,4 +5,4 @@ r 3 w 1 ^@+W^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 3 +W^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr+W^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM+W^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key+W^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ w 4 ^@+W^@^B^Ajsamba.test^BX ^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^A^CbidX@^@+W^@hH^^Y:^Y5`,Mo~^ILGǧ~{WwX^X\I~]u#^@+W^A핷Mdtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 7 +W^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 7 +W^@^A.^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ad index b07444bf4b1..642864c4d10 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ad +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ad @@ -18,4 +18,4 @@ r 288 r 288 Z^A^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 Z^A^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 Z^A^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 78 Z^A^@^@^AbidX@O^^,˵^TCv7!.!^Hb]Fm^I-o֢fjZ^A^@^Mo^HOLx),dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDZ^A^AA,K!^E^@^@^@^N^CXH0F^B!^@^Vt]u{p$Ծ^J,?5^GMeab5^B!^@Z^A^B^[<^GGc~JSP^L7^M^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 78 Z^A^@^@^AbidX@O^^,˵^TCv7!.!^Hb]Fm^I-o֢fjZ^A^@^Mo^HOLx),dtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YDZ^A^AA,K!^E^@^@^@^N^CXH0F^B!^@^Vt]u{p$Ծ^J,?5^GMeab5^B!^@Z^A^B^[<^GGc~JSP^L7^M^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ipa index 9ac4f1a1873..9054390298a 100755 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ipa @@ -18,4 +18,4 @@ r 288 r 288 'L^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 'L^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 'L^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 148 'L^@^@^AbidX@^EIl58EXZ3^Q^M^B^[M܁#6ve^I;Y^KlkV'L^@ǧY`1T^NNJ^Qdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o'L^AC}.[^E^@^@^@^_^CXG0E^B r_a"1[?kLF^I*h^B!^@^U'L^BjZ-^]^`M73It8;r6$W^L^H^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 148 'L^@^@^AbidX@^EIl58EXZ3^Q^M^B^[M܁#6ve^I;Y^KlkV'L^@ǧY`1T^NNJ^Qdtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o'L^AC}.[^E^@^@^@^_^CXG0E^B r_a"1[?kLF^I*h^B!^@^U'L^BjZ-^]^`M73It8;r6$W^L^H^L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ldap index 2ecea3a4298..c627356c396 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ldap +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.ldap @@ -20,4 +20,4 @@ r 289 ^FX r 289 ^FX^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 ^FX^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 287 ^FX^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 247 ^FX^@^@^AbidX@#TVVC3z'#]7 4P^^U# f.Y0!ߙ^^C5//y^FX^@!]^^^R^X(֛dtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^FX^A]l^U^J^H^E^@^@^@^^^CXG0E^B ^Dq)qFlb@Z^_%RY^B^N<^B!^@m.^FX^BؙM^`I:^`^F1^Ht^K\9'ȁ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 247 ^FX^@^@^AbidX@#TVVC3z'#]7 4P^^U# f.Y0!ߙ^^C5//y^FX^@!]^^^R^X(֛dtypejpublic-key^BX%ЁL}e/Z^UO^[+^K,^FX^A]l^U^J^H^E^@^@^@^^^CXG0E^B ^Dq)qFlb@Z^_%RY^B^N<^B!^@m.^FX^BؙM^`I:^`^F1^Ht^K\9'ȁ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.samba index 9ecebaa57d5..2047f695c00 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.samba +++ b/src/tests/system/data/test_passkey/test_passkey__su_user_with_multiple_keys/umockdev.script.samba @@ -17,4 +17,4 @@ r 287 r 289 C^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 C^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 289 C^@^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 29 C^@^@^AbidX@^Qso|4W^Gcp^PF^KA%ȃ#f^VeXx8]'X=uG8㶼C^@C^A`^_W^E^@^@^@^V^CXH0F^B!^@#Oq^BN6nօ*\-NNT^B!^@^@C^BV^Bg^EV^^v|&}^P^Jd~^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 29 C^@^@^AbidX@^Qso|4W^Gcp^PF^KA%ȃ#f^VeXx8]'X=uG8㶼C^@C^A`^_W^E^@^@^@^V^CXH0F^B!^@#Oq^BN6nօ*\-NNT^B!^@^@C^BV^Bg^EV^^v|&}^P^Jd~^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ diff --git a/src/tests/system/data/test_passkey/test_passkey__su_with_12_mappings/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_with_12_mappings/umockdev.script.ipa index ecabd8f9ec5..909b8d90cc7 100644 --- a/src/tests/system/data/test_passkey/test_passkey__su_with_12_mappings/umockdev.script.ipa +++ b/src/tests/system/data/test_passkey/test_passkey__su_with_12_mappings/umockdev.script.ipa @@ -29,4 +29,4 @@ r 288 r 290 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 288 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ r 290 ^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ -r 148 ^@^@^AbidX@S^K^T$ca2풫^S^`"Dv&6^E~Q%'1^P^P^Bϒ^M^@IMڸ^[^S{HAti^`dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o^AC}.[^E^@^@^@D^CXH0F^B!^@^DI^^#HUFҺ^KQeؕKfpW^]0Σ^B!^@^P^Bqs_fj&^]rĎS^Fc^\X{e^_^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file +r 148 ^@^@^AbidX@S^K^T$ca2풫^S^`"Dv&6^E~Q%'1^P^P^Bϒ^M^@IMڸ^[^S{HAti^`dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/o^AC}.[^E^@^@^@D^CXH0F^B!^@^DI^^#HUFҺ^KQeؕKfpW^]0Σ^B!^@^P^Bqs_fj&^]rĎS^Fc^\X{e^_^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@