Eu tento criptografar um arquivo com meu Yubkey e openssl no linux. Meu YubiKey é um
idProduct 0x0407 Yubikey 4/5 OTP+U2F+CCID
bcdDevice 5.24
Primeiro eu extraio minha chave pública do meu yubikey:
pkcs15-tool --read-public-key 01 -o pubkey
Recebo um arquivo que diz algo assim:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZ[...]WpqK
qezLU6KBlk9[...]eRDFZEkvptllFFkw==
-----END PUBLIC KEY-----
Quando tento criptografar um arquivo com esta chave pública, recebo um erro:
openssl pkeyutl -encrypt -pubin -inkey pubkey -in file -out file.enc
pkeyutl: Error initializing context
40A7F0A3DA720000:error:03000096:digital envelope routines:evp_pkey_asym_cipher_init:operation not supported for this keytype:../crypto/evp/asymcipher.c:189:
Recentemente troquei para um yubikey. Antes eu tinha um epass2000 que funcionava dessa forma. Não consigo encontrar nenhuma documentação adequada para o yubikey online.
Como criptografar um arquivo com openssl e yubikey?
Parece que a chave armazenada na sua YubiKey não suporta criptografia.
Por exemplo, chaves EC são usadas com ECDSA, mas esse algoritmo só pode ser usado para gerar/verificar assinaturas digitais, não para criptografia/descriptografia.
Verifique usando
pkcs15-tool --list-public-keys
quais chaves estão armazenadas no seu Yubikey. Se a chave com ID 01 for uma "Public EC Key", você não poderá usá-la para criptografia.Em vez disso, use um slot com uma chave RSA.