Fedora 39 : unable to use OpenPGP SmartCard

Fedora 39, up to date.
Computer is Lenovo P16s AMD Gen2.

Fedora installs, by default, pcsc. I can use pcsc_scan to find my OpenPG smartcard, and it works fine :

PC/SC device scanner
V 1.6.2 (c) 2001-2022, Ludovic Rousseau ludovic.rousseau@free.fr
Using reader plug’n play mechanism
Scanning present readers…
0: Alcor Micro AU9540 00 00

Tue Dec 19 13:35:43 2023
Reader 0: Alcor Micro AU9540 00 00
Event number: 0
Card state: Card inserted,
ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 F5 73 C0 01 60 00 90 00 1C

ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 F5 73 C0 01 60 00 90 00 1C

  • TS = 3B → Direct Convention
  • T0 = DA, Y(1): 1101, K: 10 (historical bytes)
    TA(1) = 18 → Fi=372, Di=12, 31 cycles/ETU
    129032 bits/s at 4 MHz, fMax for Fi = 5 MHz => 161290 bits/s
    TC(1) = FF → Extra guard time: 255 (special value)
    TD(1) = 81 → Y(i+1) = 1000, Protocol T = 1

TD(2) = B1 → Y(i+1) = 1011, Protocol T = 1

TA(3) = FE → IFSC: 254
TB(3) = 75 → Block Waiting Integer: 7 - Character Waiting Integer: 5
TD(3) = 1F → Y(i+1) = 0001, Protocol T = 15 - Global interface bytes following

TA(4) = 03 → Clock stop: not supported - Class accepted by the card: (3G) A 5V B 3V

  • Historical bytes: 00 31 F5 73 C0 01 60 00 90 00
    Category indicator byte: 00 (compact TLV data object)
    Tag: 3, len: 1 (card service data byte)
    Card service data byte: F5
    - Application selection: by full DF name
    - Application selection: by partial DF name
    - BER-TLV data objects available in EF.DIR
    - BER-TLV data objects available in EF.ATR
    - EF.DIR and EF.ATR access services: by GET DATA command
    - Card without MF
    Tag: 7, len: 3 (card capabilities)
    Selection methods: C0
    - DF selection by full DF name
    - DF selection by partial DF name
    Data coding byte: 01
    - Behaviour of write functions: one-time write
    - Value ‘FF’ for the first byte of BER-TLV tag fields: invalid
    - Data unit in quartets: 2
    Command chaining, length fields and logical channels: 60
    - Extended Lc and Le fields
    - RFU (should not happen)
    - Logical channel number assignment: No logical channel
    - Maximum number of logical channels: 1
    Mandatory status indicator (3 last bytes)
    LCS (life card cycle): 00 (No information given)
    SW: 9000 (Normal processing.)
  • TCK = 1C (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B DA 18 FF 81 B1 FE 75 1F 03 00 31 F5 73 C0 01 60 00 90 00 1C

But I cannot use it with GnuPG :

gpg --card-status --expert
gpg: selecting card failed: No such device
gpg: OpenPGP card not available: No such device

I tried stopping pcscd.socket then pcscd so GnuPG can have access to the smartcard using ccid
But it doesn’t work either.

My gpg-agent is running. Tried restarting it, nothing.

Everything seems fine when I check with pcsc.
But can’t get this to work with GnuPG.

Any ideas ?

I have also tried to add the line :

disable-ccid

to the file :

~/.gnupg/scdaemon.conf

Then restarting gpg-agent and scda :

sudo service pcscd stop
sudo service pcscd start
sudo pkill scdaemon
gpg-connect-agent reloadagent /bye

which replies :

OK

I have scdaemon running
I have gpg-agent running
Card is inserted

pcsc_scan detects the card
but gnupg :

gf@aesir:/usr/lib64$ gpg --card-status
gpg: selecting card failed: No such device
gpg: OpenPGP card not available: No such device