Como corrigir tpm2_ptool tpm:parameter(2):curve not supported

Problema

Você está tentando criar uma chave usando tpm2_ptool usando um comando como

fix_tpm2_ptool.sh
tpm2_ptool addkey --label=ssh --userpin=zeigh6iraewich1aengip6Dee2bait --algorithm=ecc384

e recebe o erro tpm:parameter(2):curve not supported:

tpm2_ptool_curve_not_supported.txt
Traceback (most recent call last):
  File "/usr/bin/tpm2_ptool", line 33, in <module>
    sys.exit(load_entry_point('tpm2-pkcs11-tools==1.33.7', 'console_scripts', 'tpm2_ptool')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/tpm2_ptool.py", line 26, in main
    commandlet.init('A tool for manipulating the tpm2-pkcs11 database')
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/command.py", line 102, in init
    commandlet.get()[d['which']](d)
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/commandlets_keys.py", line 295, in __call__
    objects = super(AddKeyCommand, self).__call__(args)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/commandlets_keys.py", line 202, in __call__
    tertiarypriv, tertiarypub, tertiarypubdata = self.new_key_create(
                                                 ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/commandlets_keys.py", line 289, in new_key_create
    tertiarypriv, tertiarypub, tertiarypubdata = tpm2.create(
                                                 ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/tpm2_pkcs11/tpm2.py", line 226, in create
    raise RuntimeError("Could not execute tpm2_create: %s" %
RuntimeError: Could not execute tpm2_create: b'WARNING:esys:src/tss2-esys/api/Esys_Create.c:399:Esys_Create_Finish() Received TPM Error \nERROR:esys:src/tss2-esys/api/Esys_Create.c:134:Esys_Create() Esys Finish ErrorCode (0x000002e6) \nERROR: Esys_Create(0x2E6) - tpm:parameter(2):curve not supported\nERROR: Unable to run tpm2_create\n'

Solução

Sua implementação específica de TPM não suporta a curva que você está tentando usar. Você pode descobrir quais curvas (elípticas)

Enquanto tpm2_ptool suporta as seguintes curvas:

  • ecc224
  • ecc256
  • ecc384
  • ecc521

sua implementação de TPM (seja um TPM físico ou um TPM de software) pode não suportar todas elas.

Tipicamente, quando seu TPM não suporta por exemplo uma curva de 384 bit, ele também não suportará qualquer curva com uma contagem de bits maior. Portanto, eu recomendo tentar a próxima curva menor.

try_ecc256.sh
tpm2_ptool addkey --label=ssh --userpin=zeigh6iraewich1aengip6Dee2bait --algorithm=ecc256

De acordo com a Dell, TPMs compatíveis com TPM 2.0 devem suportar pelo menos ecc256.

Continue tentando curvas menores até encontrar uma que funcione. A melhor maneira de descobrir quais curvas são suportadas é tentar todas elas, tentar procurar documentação geralmente leva muito mais tempo e muitas vezes não é bem-sucedida.


Check out similar posts by category: Criptografia