Change Private Key Usage retroactivly?

Normally you cannot change them.

But you might be lucky if you do a low-level manipulation of files on the card, you might succeed in changing the private key information object, which looks roughly like this:

radziecki> /usr/local/bin/opensc-explorer
OpenSC Explorer version 0.23.0
Using reader with a card: Nitrokey Nitrokey HSM (DENK01045710000         ) 00 00
OpenSC [3F00]> cd aid:E82B0601040181C31F0201
OpenSC [E82B/0601/0401/81C3/1F02/01]> cat C401
00000000: A0 2F 30 04 0C 02 45 31 30 1B 04 14 CD 0A 6B 4D ./0...E10.....kM
00000010: C6 2D 12 D8 FF AD 08 CC E8 D0 5D 00 CC 53 7D C7 .-........]..S}.
00000020: 03 03 07 20 80 A1 0A 30 08 30 02 04 00 02 02 01 ... ...0.0......
00000030: 00                                              .
OpenSC [E82B/0601/0401/81C3/1F02/01]> asn1 C401
A0 Context 0  (47 bytes)
   30 SEQUENCE (4 bytes)
      0C UTF8String (2 bytes): E1
   30 SEQUENCE (27 bytes)
      04 OCTET STRING (20 bytes)
         CD 0A 6B 4D C6 2D 12 D8 FF AD 08 CC E8 D0 5D 00 ..kM.-........].
         CC 53 7D C7                                     .S}.
      03 BIT STRING (3 bytes): 100000100
   A1 Context 1  (10 bytes)
      30 SEQUENCE (8 bytes)
         30 SEQUENCE (2 bytes)
            04 OCTET STRING (0 bytes)
         02 INTEGER (2 bytes): 256

A similar low-level problem has been discussed in the thread linked below, but the solution was a JavaScript code to simplify the update, you might check this out as well: