Вопрос:

Google Cloud KMS: шифрование работает, но дешифрование не удается

google-cloud-kms

1258 просмотра

1 ответ

89 Репутация автора

Я пытаюсь расшифровать токен с помощью инструмента Google KMS. Запуск его локально, по некоторым причинам, шифрование работает, но не расшифровка.

Я запускаю следующий код:

import base64
import googleapiclient.discovery
kms_client = googleapiclient.discovery.build('cloudkms', 'v1')
crypto_keys = kms_client.projects().locations().keyRings().cryptoKeys()
name = "projects/my-project/locations/my-loc/keyRings/my-kr/cryptoKeys/my-key"
request = crypto_keys.decrypt(name=name, body={'ciphertext': base64.b64encode("my text").decode('ascii')})
response = request.execute()

Последняя строка возвращает ошибку 400:

HttpError: <HttpError 400 when requesting https://cloudkms.g[...]ion:decrypt?alt=json 
returned "Decryption failed: verify that 'name' refers to the correct CryptoKey.">

Название, однако, на самом деле кажется правильным. Как ни странно, заменив вызов decryptна encrypt, я получаю правильный выход.

Я пропустил очевидную ошибку или мне нужно открыть вопрос на github проекта?

РЕДАКТИРОВАТЬ: я пытался расшифровать простой текст, который, конечно, не имеет особого смысла (но сообщение об ошибке несколько вводило меня в заблуждение).

Автор: Pascal Delange Источник Размещён: 09.01.2018 03:34

Ответы (1)


1 плюс

1361 Репутация автора

Решение

Убедитесь, что зашифрованный текст, который вы пытаетесь расшифровать, был зашифрован с использованием того же ключа. В случае, если вы использовали другой ключ для шифрования, KMS сообщает вам, что не может найти ключ, хотя на самом деле ключ был найден, но не может быть использован для расшифровки шифра.

Я думаю, что сообщение об ошибке «немного» вводит в заблуждение.

Автор: soupdiver Размещён: 24.05.2019 09:53
Вопросы из категории :
32x32