Yubikey 在 Ubuntu 20.04 上的 Qt 应用程序中将密码的小写字母转换为大写字母

Yubikey converts lower case letter of password into capital in Qt applications on Ubuntu 20.04

我们有一个带有静态 OTP 密码的 yubikey 5 NFC,其中第一个字母是小写字母。在 Ubuntu 20.04.2 LTS 设备上的 Qt5 应用程序 运行 中使用此密码时,第一个字母会转换为大写字母。做了一些快速测试后,看起来如果第一个字母后面的两个字母是大写,只有当触摸 yubikey 时第一个字母才会转换为大写字母。

重现步骤:

  1. 将插槽 1 OTP 静态密码配置为 'vVV'(第一个字母小写,后面两个字母大写)
  2. 打开一个 QT 应用程序(在我们的例子中,我们使用 QtCreator 4.11.0、Qt 5.12.8)
  3. 打开任何文本字段(例如通过“帮助”->“索引”找到的那个)
  4. 当字段为空时,在该字段中按几次退格键,然后立即触摸yubi键输入密码
  5. 输入的密码将是 'VVV' 而不是 'vVV'
  6. 如果你现在再按一次yubi键,将输入'vVV'(所以该字段的内容将是'VVVvVV' 为了获得 100% 的再现性,在触摸 yubi 键之前按下退格键几次是很重要的。如果没有,那么我们有时只能触发此问题。 这种行为发生在我们系统上的任何 Qt5 应用程序 运行 中。在 Windows.
  7. 上不可重现

其他人过去也遇到过类似的行为吗?或者任何人都可以确认这种行为吗?更好的是,是否有某种可用的修复方法?

对于遇到相同问题的任何人,这是由 Qt QPA X11/XCB 层中的错误引起的。参见 https://bugreports.qt.io/browse/QTBUG-95933