From 6d62489d791ee12fe43b7bcbfa846493c9fb1c30 Mon Sep 17 00:00:00 2001 From: Madhuri Upadhye Date: Fri, 12 May 2023 12:34:26 +0530 Subject: [PATCH] Tests: Add passkey test cases for following scenario. Test cases are as follows: 4. Check auth deny for incorrect pin for LDAP, IPA, Ad and Samba. 5. Check auth deny for incorrect passkey mapping for LDAP, IPA, AD and Samba. 6. Check auth of user when server is not resolvable for IPA, LDAP, AD and Samba. First PR is under review, #6634 Signed-off-by: Madhuri Upadhye --- .../passkey-mapping.ad | 1 + .../passkey-mapping.ipa | 1 + .../passkey-mapping.ldap | 1 + .../passkey-mapping.samba | 1 + .../umockdev.script.ad | 8 + .../umockdev.script.ipa | 8 + .../umockdev.script.ldap | 8 + .../umockdev.script.samba | 8 + .../passkey-mapping.ad | 1 + .../passkey-mapping.ipa | 1 + .../passkey-mapping.ldap | 1 + .../passkey-mapping.samba | 1 + .../umockdev.script.ad | 12 + .../umockdev.script.ipa | 12 + .../umockdev.script.ldap | 12 + .../umockdev.script.samba | 12 + .../passkey-mapping.ad | 1 + .../passkey-mapping.ipa | 1 + .../passkey-mapping.ldap | 1 + .../passkey-mapping.samba | 1 + .../umockdev.script.ad | 19 ++ .../umockdev.script.ipa | 22 ++ .../umockdev.script.ldap | 21 ++ .../umockdev.script.samba | 24 ++ src/tests/system/tests/test_passkey.py | 256 ++++++++++++++++++ 25 files changed, 434 insertions(+) create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.samba create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.samba create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.samba create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.samba create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.samba create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ad create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ipa create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ldap create mode 100644 src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.samba create mode 100644 src/tests/system/tests/test_passkey.py diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ad b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ad new file mode 100644 index 00000000000..d3fd8436e84 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ad @@ -0,0 +1 @@ +passkey:oducA9WSTrzBHX2gUKylRNl2PD2XCb4a7V0XJOtahqIX7wGcAugflvrVjbWG2JPTsLlVf+j/dmia7SNIVhK5AA==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGEa7EktmUw4AOR6Y6r1W2zxXptQh3YaDNdvQEifZ3NpgRosVv+GS85uR3h6Ed1E7FtgfugwsZYeR8+9+GM6h8g== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ipa b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ipa new file mode 100644 index 00000000000..d3fd8436e84 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ipa @@ -0,0 +1 @@ +passkey:oducA9WSTrzBHX2gUKylRNl2PD2XCb4a7V0XJOtahqIX7wGcAugflvrVjbWG2JPTsLlVf+j/dmia7SNIVhK5AA==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGEa7EktmUw4AOR6Y6r1W2zxXptQh3YaDNdvQEifZ3NpgRosVv+GS85uR3h6Ed1E7FtgfugwsZYeR8+9+GM6h8g== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ldap b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ldap new file mode 100644 index 00000000000..e537dabdbcb --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.ldap @@ -0,0 +1 @@ +passkey:aEgemlnC6a/WOoEZ8qU1YMwsTW9+uwmMsJnrgOXwTID0qIBHirzHp6d+e1d3WBhcSf7t9Ji8fl3AdSPtlbdN5Q==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENwDQHwyZmnYaUEp0UNqqnw0tGOGnqOMBGdds6O3+JKbmmJGTn0vo7sKNNcDWDsFhJFU/RLWXmHXglxSo+yw9iQ== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.samba b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.samba new file mode 100644 index 00000000000..e537dabdbcb --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/passkey-mapping.samba @@ -0,0 +1 @@ +passkey:aEgemlnC6a/WOoEZ8qU1YMwsTW9+uwmMsJnrgOXwTID0qIBHirzHp6d+e1d3WBhcSf7t9Ji8fl3AdSPtlbdN5Q==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENwDQHwyZmnYaUEp0UNqqnw0tGOGnqOMBGdds6O3+JKbmmJGTn0vo7sKNNcDWDsFhJFU/RLWXmHXglxSo+yw9iQ== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ad new file mode 100644 index 00000000000..3f04d19aec5 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ad @@ -0,0 +1,8 @@ +d 0 /dev/hidraw1 + +w 4 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^@^Q^A^A^A^A^A^A^A^A^[.^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ipa new file mode 100644 index 00000000000..8f1039f7cc1 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ipa @@ -0,0 +1,8 @@ +d 0 /dev/hidraw1 + +w 5 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^@^Q^A^A^A^A^A^A^A^A^L^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ldap new file mode 100644 index 00000000000..4d9aa650c51 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.ldap @@ -0,0 +1,8 @@ +d 0 /dev/hidraw1 + +w 4 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^@^Q^A^A^A^A^A^A^A^A^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.samba new file mode 100644 index 00000000000..dfff5d24fb5 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_mapping/umockdev.script.samba @@ -0,0 +1,8 @@ +d 0 /dev/hidraw1 + +w 2 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^@^Q^A^A^A^A^A^A^A^A+W^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ad b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ad new file mode 100644 index 00000000000..1091d550c1f --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ad @@ -0,0 +1 @@ +passkey:KyF+ut3E2PHwuaQK/7fXo5ffpgp8IB1R+8WybEXhg9x9/Gl4T08CV5sT3FhaAN3HVJ3Jxren3mcg5fgwlKSlWA==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEO2opNUQmqFOGg5s7ONAvwuipDEnSVjqbuKAUS5wBgM8W5tUQACnIs3mNXoriBVNn4kfoyBy3lVHCNxiPh97IgA== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ipa b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ipa new file mode 100644 index 00000000000..915689bd654 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ipa @@ -0,0 +1 @@ +passkey:NUZMRUXIb/W8Ij1GqwCDHSCWxt/SxWxckwtQjLYi/X6Y1qZFB+HI8WO6khzAjzsz248kHbaeAf9qfmqfCky1Jg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIasAa8ogjPCKXeA4KY3t0W3xBRmG+E4D+MNoRIAJrYuNLSYtAcOL7DCbIfgc+7c5Y4Mh/FzoEyeumKGYMoyTfg== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ldap b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ldap new file mode 100644 index 00000000000..82d76d9b590 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.ldap @@ -0,0 +1 @@ +passkey:mQEUTWdtDJPELQNTDdxXNHlfIO1qXFf0LVZjWEfyDALFzvLZ4e4XD5bemqq+o3ThrzT6k1I1n3Z2N00GvLSmjQ==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqk7K5VAI7Evr4ar8X82L/sxm/Bnm5Ti31xnLfGO0BipwHucw8+/wT4+6T9j5gdMwZKUcXR4BILpmULEyrcZUfw== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.samba b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.samba new file mode 100644 index 00000000000..7c59d41c14b --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/passkey-mapping.samba @@ -0,0 +1 @@ +passkey:8Pob9IlseyKTRqxWtSB+4+nQmX/AioWH851f8u700UZhllaColWx5vCjfBBKuLORLKjbuW8OxCsSWFcPAUMvdA==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElOYokAR0Co/jZYxMDOywmZgQKJFvTRyPj19XRhZndOt7+QEqCFgwYt73XxQakVrWyO+TNQbhTMp3Q5saz3s0hA== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ad new file mode 100644 index 00000000000..4283810b71d --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_fail_pin/umockdev.script.ad @@ -0,0 +1,12 @@ +d 0 /dev/hidraw1 + +w 3 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^@^Q^A^A^A^A^A^A^A^A^H;^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@^H;^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^H;^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^H;^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^H;^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^H;^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@^H;^@^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@+!~^@^H;^@^Jףߦ^J| ^]QŲlE}ixOO^BW^SXZ^@TƷg 0^@^H;^AXdtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 82 ^H;^@^@^AbidX@+!~^Jףߦ^J| ^]QŲlE}ixOO^BW^SXZ^@^H;^@TƷg 0Xdtypejpublic-key^BX%fCȣ܀ɽ5~^G^A-YD^H;^AA,K!^@^@^@^@^N^CXF0D^B w'G9?^_H^O_.LӜوx".^Ps*^L^B eGqu|^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^\k^A`^_W^@^@^@^@^S^CXH0F^B!^@ݟD^D#yZ^WmT^`^`'/^X^B!^@@^\k^BGȰ^\nL}^Wi]~$^Q応-L^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 7 ^@^\k^@^F^F^A^B^B^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^\k^@Q^@^A^A^B^C8^X ^A!X ^H&I0n^Rr^@^\k^A^Y^V7^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 315 ^\k^@^A1^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ \ No newline at end of file diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ad b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ad new file mode 100644 index 00000000000..09d9143aa26 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ad @@ -0,0 +1 @@ +passkey:gTCY4fqy2IkM6hfMpU338SCmA5YpDpggvE/XQzwbv37wlyYVlkbLRSmBtaq9c72pWYgICpP2pQ4nHRSFL2EnWg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOtoQygv+wabIV8/48bdy5d0Wx9+q3kMrgd1buJVaM5XZqccQIC8CGr2pE3dPui9HgDiXrMH9Jp0W37hzHkoN0Q== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ipa b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ipa new file mode 100644 index 00000000000..e529e2ee905 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ipa @@ -0,0 +1 @@ +passkey:NUZMRUXIb/W8Ij1GqwCDHSCWxt/SxWxckwtQjLYi/X6Y1qZFB+HI8WO6khzAjzsz248kHbaeAf9qfmqfCky1Jg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIasAa8ogjPCKXeA4KY3t0W3xBRmG+E4D+MNoRIAJrYuNLSYtAcOL7DCbIfgc+7c5Y4Mh/FzoEyeumKGYMoyTfg== \ No newline at end of file diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ldap b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ldap new file mode 100644 index 00000000000..27dbfd9af40 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.ldap @@ -0,0 +1 @@ +passkey:mQEUTWdtDJPELQNTDdxXNHlfIO1qXFf0LVZjWEfyDALFzvLZ4e4XD5bemqq+o3ThrzT6k1I1n3Z2N00GvLSmjQ==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqk7K5VAI7Evr4ar8X82L/sxm/Bnm5Ti31xnLfGO0BipwHucw8+/wT4+6T9j5gdMwZKUcXR4BILpmULEyrcZUfw== \ No newline at end of file diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.samba b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.samba new file mode 100644 index 00000000000..dcb10169614 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/passkey-mapping.samba @@ -0,0 +1 @@ +passkey:hC0IJlIg4qam+vV70L15N1a8xVgha+0S6G7Z8HgHmIgB9lKqxbMhd0PRdEgMbhLDr7wSKIGXLqz+SDL0SWwmMA==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWSie9EywMxDpJFfZ0BxSTj6clviNWvRKTpBXS34TW+CtZnbYRBVmWTFX15gcNtyLI+tObWR0jcYmIoJGFy4oEQ== diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ad b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ad new file mode 100644 index 00000000000..35230af49bc --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ad @@ -0,0 +1,19 @@ +d 0 /dev/hidraw1 + +w 4 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^@^Q^A^A^A^A^A^A^A^A^Y^Zo^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@^Y^Zo^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^Y^Zo^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^Y^Zo^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^Y^Zo^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^Y^Zo^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 2 ^@^Y^Zo^@^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@0^@^Y^Zo^@؉^L^W̥M ^C)^N OC<^[~&^UFE)sY^H^J^N'^]^T/a^@^Y^Zo^A'Zdtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 82 ^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!^@^@^@^@^I^CXG0E^B!^@m\^C!t:Ý|^^QS#l=^J^B z'ǯ^Y^Zo^B[?^\[^R^FCB_>p^Te%õpj^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 5 ^@^Y^Zo^@^F^F^A^B^B^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^Y^Zo^@Q^@^A^A^B^C8^X ^A!X 44^X^K0@g(^T^OZQ7^Do"X &i^\df^Y^Zo^@^O^_^O^L*U.^Y1`oAw^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 5 ^@^Y^Zo^@x^F^A^B^B^E^C^A^B^C8^X ^A!X 3B1ˠ^S^\^Ev,^P^@^Y^Zo^B^G^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 244 ^Y^Zo^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^Y^Zo^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ipa b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ipa new file mode 100644 index 00000000000..1bc651a4465 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ipa @@ -0,0 +1,22 @@ +d 0 /dev/hidraw1 + +w 3 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 ^@^Q^A^A^A^A^A^A^A^Ap^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@p^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 p^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secrp^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialMp^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-keyp^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@p^@^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@5F^@p^@LEEo"=F^@^] l\^KP"~֦E^Gc^\;3ۏ$^]^Aj~j^J^@p^AL&dtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 83 p^@^@^AbidX@5FLEEo"=F^@^] l\^KP"~֦E^Gc^\;3p^@ۏ$^]^Aj~j^JL&dtypejpublic-key^BX%^@|Dږ^Qx??d^Q/N4/op^AC}.[^@^@^@^@^X^CXG0E^B!^@m$^MJ*;\^V=tjx9cа,^B kYp^B^_^GnrT": *^L^Rwr]!Zxf^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 5 ^@p^@^F^F^A^B^B^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 p^@Q^@^A^A^B^C8^X ^A!X ^_9;^CEBQ&(W3h^]F^A%"X ^^s5p^@o6^@izdF m+35^P^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 5 ^@p^@x^F^A^B^B^E^C^A^B^C8^X ^A!X 3B1ˠ^S^\^Ev,^P7DB1f_о*^@p^BL^G^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 285 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 290 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 p^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ldap b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ldap new file mode 100644 index 00000000000..db026662951 --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.ldap @@ -0,0 +1,21 @@ +d 0 /dev/hidraw1 + +w 4 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^@^Q^A^A^A^A^A^A^A^A^S=^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 2 ^@^S=^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^S=^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secr^S=^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialM^S=^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-key^S=^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 2 ^@^S=^@^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@^A^TMgm^@^S=^@^L-^CS^MW4y_ j\W-VcXG^L^B^W^Oޚt4R5vv7M^Fd^@^S=^Atypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 82 ^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^@^@^@^@^C^CXH0F^B!^@9}K:N^M^PraX^D^CxM^B!^@z^A^S=^B􊲳^P+q^@^P|^XM$Fw^]6P3^[wq^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 6 ^@^S=^@^F^F^A^B^B^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^S=^@Q^@^A^A^B^C8^X ^A!X H^GTd^Aڒ8X^T֞{^_uLd^S^G^B^@ +r 240 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 290 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 288 ^S=^@^A^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +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 diff --git a/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.samba b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.samba new file mode 100644 index 00000000000..c0e02fac1ba --- /dev/null +++ b/src/tests/system/data/test_passkey/test_passkey__su_srv_not_resolvable/umockdev.script.samba @@ -0,0 +1,24 @@ +d 0 /dev/hidraw1 + +w 4 ^@^@^H^A^A^A^A^A^A^A^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 2 ^@^Q^A^A^A^A^A^A^A^Aj^J^B^E^D^C^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 2 ^@j^Jː^@^A^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 3 j^Jː^@^@^AfU2F_V2hFIDO_2_0lFIDO_2_1_PRE^BkcredProtectkhmac-secrj^J^@et^CP/W^SG^VZ *^DbrkbupdplaticlientPinucredentialMj^J^AgmtPreview^E^Y^D^F^B^A^G^H^H^X^Icnfccusb^Jcalg&dtypejpublic-keyj^J^Bcalg'dtypejpublic-key^M^D^N^Z^@^E^D^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +w 1 ^@j^Jː^@^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@^@j^J^@-^H&R ⦦{нy7VX!k^Rnx^G^ARų!wCtH^Ln^Rï^R(.H2^@j^J^AIl&0dtypejpublic-key^Ebup^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ +r 82 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^@^@^@^@^I^CXF0D^B ^R^Q@^XvGB[9j+^C$^P/^V^Qdy^`^Bs7^B )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 diff --git a/src/tests/system/tests/test_passkey.py b/src/tests/system/tests/test_passkey.py new file mode 100644 index 00000000000..1510800f58b --- /dev/null +++ b/src/tests/system/tests/test_passkey.py @@ -0,0 +1,256 @@ +""" +Passkey Tests. + +:requirement: passkey +""" + +from __future__ import annotations + +import pytest +from sssd_test_framework.roles.client import Client +from sssd_test_framework.roles.generic import GenericProvider +from sssd_test_framework.roles.ipa import IPA +from sssd_test_framework.topology import KnownTopology + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.importance("high") +@pytest.mark.topology(KnownTopology.Client) +def test_passkey__register__sssctl(client: Client, moduledatadir: str, testdatadir: str): + """ + :title: Register a key with sssctl + :setup: + 1. Setup IDM client with FIDO and umockdev setup + :steps: + 1. Use sssctl to register a FIDO2 key. + 2. Check the output. + :expectedresults: + 1. New key is registered. + 2. Output contains key mapping data. + :customerscenario: False + """ + mapping = client.sssctl.passkey_register( + username="user1", + domain="ldap.test", + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script", + ) + + with open(f"{testdatadir}/passkey-mapping") as f: + assert mapping == f.read().strip(), "Failed to register a key with sssctl" + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.builtwith(KnownTopology.IPA, ipa="passkey") +@pytest.mark.importance("high") +@pytest.mark.topology(KnownTopology.IPA) +def test_passkey__register__ipa(ipa: IPA, moduledatadir: str, testdatadir: str): + """ + :title: Register a passkey with the IPA command + :setup: + 1. Setup IDM client with FIDO and umockdev setup. + :steps: + 1. Use ipa command to register a FIDO2 key. + 2. Check the output that contains the user key mapping data. + :expectedresults: + 1. New key is registered with IPA command. + 2. Output contains key mapping data. + :customerscenario: False + """ + mapping = ( + ipa.user("user1") + .add() + .passkey_add_register( + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script", + ) + ) + + with open(f"{testdatadir}/passkey-mapping") as f: + assert mapping == f.read().strip(), "Failed to register a key with the IPA command" + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.builtwith(KnownTopology.LDAP, ldap="passkey") +@pytest.mark.builtwith(KnownTopology.IPA, ipa="passkey") +@pytest.mark.importance("critical") +@pytest.mark.topology(KnownTopology.LDAP) +@pytest.mark.topology(KnownTopology.IPA) +@pytest.mark.topology(KnownTopology.AD) +@pytest.mark.topology(KnownTopology.Samba) +def test_passkey__su(client: Client, provider: GenericProvider, moduledatadir: str, testdatadir: str): + """ + :title: Check authentication of user with LDAP, IPA, AD and Samba + :setup: + 1. Add a user in LDAP, IPA, AD and Samba with passkey_mapping. + 2. Setup SSSD client with FIDO and umockdev, start SSSD service. + :steps: + 1. Check authentication of the user. + :expectedresults: + 1. User authenticates successfully. + :customerscenario: False + """ + suffix = type(provider).__name__.lower() + + if suffix == "ldap": + client.sssd.domain["local_auth_policy"] = "only" + + with open(f"{testdatadir}/passkey-mapping.{suffix}") as f: + provider.user("user1").add().passkey_add(f.read().strip()) + + client.sssd.start() + + assert client.auth.su.passkey( + username="user1", + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script.{suffix}", + ) + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.builtwith(KnownTopology.LDAP, ldap="passkey") +@pytest.mark.builtwith(KnownTopology.IPA, ipa="passkey") +@pytest.mark.importance("high") +@pytest.mark.topology(KnownTopology.LDAP) +@pytest.mark.topology(KnownTopology.IPA) +@pytest.mark.topology(KnownTopology.AD) +@pytest.mark.topology(KnownTopology.Samba) +def test_passkey__su_fail_pin(client: Client, provider: GenericProvider, moduledatadir: str, testdatadir: str): + """ + :title: Check authentication deny of user with LDAP, IPA, AD and Samba with incorrect pin + :setup: + 1. Add a LDAP, IPA, AD and Samba user with passkey_mapping. + 2. Setup SSSD client with FIDO and umockdev, start SSSD service. + :steps: + 1. Check authentication of the user with incorrect PIN. + :expectedresults: + 1. User failed to authenticate. + :customerscenario: False + """ + suffix = type(provider).__name__.lower() + + if suffix == "ldap": + client.sssd.domain["local_auth_policy"] = "only" + + with open(f"{testdatadir}/passkey-mapping.{suffix}") as f: + provider.user("user1").add().passkey_add(f.read().strip()) + + client.sssd.start() + + assert not client.auth.su.passkey( + username="user1", + pin=67890, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script.{suffix}", + ) + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.builtwith(KnownTopology.LDAP, ldap="passkey") +@pytest.mark.builtwith(KnownTopology.IPA, ipa="passkey") +@pytest.mark.importance("high") +@pytest.mark.topology(KnownTopology.LDAP) +@pytest.mark.topology(KnownTopology.IPA) +@pytest.mark.topology(KnownTopology.AD) +@pytest.mark.topology(KnownTopology.Samba) +def test_passkey__su_fail_mapping(client: Client, provider: GenericProvider, moduledatadir: str, testdatadir: str): + """ + :title: Check authentication deny of user with LDAP, IPA, AD and Samba with incorrect mapping + :setup: + 1. Add a LDAP, IPA, AD and Samba user with passkey_mapping. + 2. Setup SSSD client with FIDO and umockdev, start SSSD service. + :steps: + 1. Check authentication of the user with incorrect passkey mapping. + :expectedresults: + 1. User failed to authenticate. + :customerscenario: False + """ + suffix = type(provider).__name__.lower() + + if suffix == "ldap": + client.sssd.domain["local_auth_policy"] = "only" + + with open(f"{testdatadir}/passkey-mapping.{suffix}") as f: + provider.user("user1").add().passkey_add(f.read().strip()) + + client.sssd.start() + + assert not client.auth.su.passkey( + username="user1", + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script.{suffix}", + ) + + +@pytest.mark.builtwith(client="passkey") +@pytest.mark.builtwith(KnownTopology.LDAP, ldap="passkey") +@pytest.mark.builtwith(KnownTopology.IPA, ipa="passkey") +@pytest.mark.importance("high") +@pytest.mark.topology(KnownTopology.LDAP) +@pytest.mark.topology(KnownTopology.IPA) +@pytest.mark.topology(KnownTopology.AD) +@pytest.mark.topology(KnownTopology.Samba) +def test_passkey__su_srv_not_resolvable( + client: Client, provider: GenericProvider, moduledatadir: str, testdatadir: str +): + """ + :title: Check authentication of a user with LDAP, IPA, AD and Samba when server is not resolvable + :setup: + 1. Add a LDAP, IPA, AD and Samba user with passkey_mapping. + 2. Setup SSSD client with FIDO and umockdev, start SSSD service. + :steps: + 1. Check authentication of the user. + 2. Update the server url and restart the sssd service to reflect the changes. + 3. Check authentication of the user. + :expectedresults: + 1. User authenticates successfully. + 2. Successfully update the sssd.conf and restarted the sssd service. + 3. User authenticates successfully due to cached data. + :customerscenario: False + """ + suffix = type(provider).__name__.lower() + if suffix == "ipa": + server_url = "ipa_server" + elif suffix == "ldap": + server_url = "ldap_uri" + client.sssd.domain["local_auth_policy"] = "only" + elif suffix == "samba" or "ad": + server_url = "ad_server" + else: + assert False, "provider not found" + + with open(f"{testdatadir}/passkey-mapping.{suffix}") as f: + provider.user("user1").add().passkey_add(f.read().strip()) + + client.sssd.start() + + # First time check authentication to cache the user + assert client.auth.su.passkey( + username="user1", + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script.{suffix}", + ) + + # Here we are making server/backend offline but not deleting cache and logs. + client.sssd.config.remove_option("domain/test", server_url) + client.sssd.domain[server_url] = "ldap://new.server.test" + client.sssd.start() + + assert client.auth.su.passkey( + username="user1", + pin=123456, + device=f"{moduledatadir}/umockdev.device", + ioctl=f"{moduledatadir}/umockdev.ioctl", + script=f"{testdatadir}/umockdev.script.{suffix}", + )