Skip to content

Commit 60d2b3f

Browse files
committed
#15: In addition to --skip-all-non-security-key-options skipping other options such as "This Windows device" on the "Sign in with your passkey" dialog, make it also skip local Windows Hello TPM options like Fingerprint and PIN on the "Making sure it's you" dialog, because this is actually a different prompt that appears first if the TPM contains a credential for the relying party, and we need to click "Use another device" to get to the Security key option in the next dialog.
1 parent 7dbd0d2 commit 60d2b3f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+5203
-369
lines changed

AuthenticatorChooser/I18N.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,36 @@ public static partial class I18N {
1313

1414
public enum Key {
1515

16+
/// <summary>
17+
/// Security key
18+
/// </summary>
1619
SECURITY_KEY,
20+
21+
/// <summary>
22+
/// iPhone, iPad, or Android device
23+
/// </summary>
1724
SMARTPHONE,
25+
26+
/// <summary>
27+
/// This Windows device
28+
/// </summary>
1829
WINDOWS,
30+
31+
/// <summary>
32+
/// Sign in with your passkey
33+
/// </summary>
1934
SIGN_IN_WITH_YOUR_PASSKEY,
2035

36+
/// <summary>
37+
/// Use another device
38+
/// </summary>
39+
USE_ANOTHER_DEVICE,
40+
41+
/// <summary>
42+
/// Making sure it’s you
43+
/// </summary>
44+
MAKING_SURE_ITS_YOU
45+
2146
}
2247

2348
public static readonly IReadOnlyList<string> LOCALE_NAMES = getCurrentSystemLocaleNames().Prepend(CultureInfo.CurrentUICulture.Name).Prepend(CultureInfo.CurrentCulture.Name)
@@ -37,6 +62,8 @@ static I18N() {
3762
[Key.SMARTPHONE] = getStrings(nameof(LocalizedStrings.smartphone), fidoCredProvMuiPath, 15, 231), // Smartphone; also appears in webauthn.dll.mui string table 4 entries 50 and 56
3863
[Key.WINDOWS] = getStrings(nameof(LocalizedStrings.windows), fidoCredProvMuiPath, 15, 232), // Windows
3964
[Key.SIGN_IN_WITH_YOUR_PASSKEY] = getStrings(nameof(LocalizedStrings.signInWithYourPasskey), webAuthnMuiPath, 4, 53), // Sign In With Your Passkey title; entry 63 has the same value
65+
[Key.USE_ANOTHER_DEVICE] = getStrings(nameof(LocalizedStrings.useAnotherDevice), fidoCredProvMuiPath, 15, 234), // Use another device
66+
[Key.MAKING_SURE_ITS_YOU] = getStrings(nameof(LocalizedStrings.makingSureItsYou), ngcCredProvMuiPath, 35, 554), // Making sure it’s you
4067
}.ToFrozenDictionary();
4168

4269
foreach (PortableExecutableImage? dllFile in DLL_CACHE.Values) {
@@ -48,6 +75,7 @@ static I18N() {
4875

4976
string fidoCredProvMuiPath(string locale) => Path.Combine(systemRoot, "System32", locale, "fidocredprov.dll.mui");
5077
string webAuthnMuiPath(string locale) => Path.Combine(systemRoot, "System32", locale, "webauthn.dll.mui");
78+
string ngcCredProvMuiPath(string locale) => Path.Combine(systemRoot, "System32", locale, "ngccredprov.dll.mui");
5179
}
5280

5381
public static IEnumerable<string> getStrings(Key key) => STRINGS[key];

AuthenticatorChooser/Resources/LocalizedStrings.Designer.cs

Lines changed: 117 additions & 99 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)