Skip to main content

Assinatura

Passe a mensagem bruta, não um resumo. O serviço faz o hash com SHA-256 do lado do servidor, então uma entrada pré-hash é hash duas vezes e produz uma assinatura que nada irá verificar.
signing_algorithm é opcional; omitido, o padrão para a especificação é usado, e o algoritmo realmente aplicado retorna na resposta. Um algoritmo que não corresponde à especificação é rejeitado com 400 KMS_UNSUPPORTED_SIGNING_ALGORITHM em vez de ser tentado. As assinaturas retornam nas codificações padrão, então nada downstream precisa de manuseio especial: RSA-PSS usa saltLen = hashLen = 32, e ECDSA retorna a sequência ASN.1 DER (r, s) do ANSI X9.62. POST /v1/keys/{key_id}/verify responde {"signature_valid": false} para uma assinatura que simplesmente não corresponde. Isso é um 200, não um erro — um erro significa que a solicitação ou o backend estava errado, não que a assinatura estava errada.
A API não expõe a metade pública de uma chave assimétrica, então a verificação passa por verify ao invés de offline contra uma chave publicada. Planeje uma chamada por verificação — e note que verify é uma ação separada do IAM, então uma parte que deve apenas verificar assinaturas nunca precisa de kms:Sign.