Carregar chave “ec256.pem”: formato inválido é gerado ao tentar gerar chave pública a partir de chave privada

Carregar chave “ec256.pem”: formato inválido é gerado ao tentar gerar chave pública a partir de chave privada

Estou tentando gerar um par de chaves pública/privada usando a curva ECDSA secp256k1

Ao gerar a chave pública de ec256.pem (chave privada), o seguinte erro é gerado

"Carregar chave "ec256.pem": formato inválido"

Comandos usados ​​para gerar chave privada:

openssl ecparam -name secp256k1 -out secp256k1.pem

openssl ecparam -in secp256k1.pem -genkey -noout -out ec256.pem

chmod 400 ec256.pem

Comando usado para gerar chave pública:

ssh-keygen -y -f  ec256.pem

Below is the error thrown on running the above cmd ,

Load key "ec256.pem": invalid format

A versão que está sendo usada é

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

Preciso gerar uma chave pública no formato ssh para a chave privada ec256.pem

Responder1

Se eu olhar para as curvas que precisam ser apoiadas nopadrão, RFC 5656: "Integração de algoritmo de curva elíptica na camada de transporte seguro Shell" (seção 10)então não vejo nenhum suporte listado para secp256k1. É claro que as implementações ainda poderiam implementá-lo, mas isso custaria a incompatibilidade com outras implementações.

Então acho que a simples razão pela qual a chave privada não pode ser analisada é porque seu formato não é suportado. Se você apenas substituir a curva por secp256r1 (uma curva primária aleatória em vez da curva secp256k1 Koblitz, observe o "r" em vez do "k" ali), então tudo funcionará perfeitamente e no mesmo nível de segurança ou superior. A estrutura da chave privada é idêntica à curva secp256k1, portanto isso mostra claramente que o problema está na curva e não no formato do arquivo.

Alternativamente, você pode optar por algo mais sofisticadoCurva Ed25519, provavelmente ao custo de compatibilidade com versões anteriores e mais problemas. Isso pode não ser compatível com a linha de comando OpenSSL,veja o comentário abaixo.

informação relacionada