Introdução #
Chaves sao usadas em toda comunicacao realizada com o Mastodon. Utilizando pares de chaves para assinar e verificar a autentidade das menssagens.
Gerar chaves #
Deve-se gerar um par de chaves ECDSA, uma privada e uma publica.
A chave privada deve ser guardade e preservada de forma segura.
A chave publica deve ser enviada para o time StarOne. Ela sera' usada para verificar a autencidade das menssagens envidadas para o Mastodon.
OpenSSL #
Partindo do princípio de que o terminal utilizado tem OpenSSL instalado e devidamente configurado:
Chave privada #
Para criar a chave privada, digite:
openssl ecparam -name prime256v1 -genkey -noout -out private.key
Vai gerar um arquivo chamado private.key. Ele é a chave privada. Guarde de forma segura e confiável. Pois ela vai ser responsável por garantir que o log guardado no Mastodon seja de seu sistema.
Chave pública #
Para gerar uma chave pública, digite apos ter criado a chave privada:
openssl ec -in private.key -pubout -out public.key
O arquivo gerado, public.key, é a chave pública que deve ser enviada para o e-mail devops@starone.one na troca de credenciais. Essa chave vai ser usada para verificar os logs enviados pelo seu sistema no Mastodon, garantindo a seguranca dos mesmos.
Erlang #
A partir do princípio de que o terminal utilizado tem Erlang instalado e devidamente configurado:
Gerando ambas as chaves #
{Pub, Prv} = crypto:generate_key(ecdh, prime256v1).
A chave pública e a privada são retornadas nesta ordem.
Como assinar o payload #
Devemos usar o digest como sha256 e a curva elíptica como prime256v1.
Erlang #
Processo completo de criação de chaves a sua assinatura e verificação da mesma:
Payload = <<"nosso log">>,
{Pub, Prv} = crypto:generate_key(ecdh, prime256v1),
Sign = crypto:sign(ecdsa, sha256, Payload, [Prv, prime256v1]),
true = crypto:verify(ecdsa, sha256, Payload, Sign, [Pub, prime256v1]).