Я работаю над потоком контактов в Amazon Connect, который шифрует набранную информацию клиента, на самом деле я не могу расшифровать строку результата на лямбда на основе Python
Я уже просматриваю некоторую доступную документацию на форуме разработчиков AWS, также пытался изменить сертификаты на моей лямбде и на Connect
import base64
import boto3
import aws_encryption_sdk
from aws_encryption_sdk.internal.crypto import WrappingKey
from aws_encryption_sdk.key_providers.raw import RawMasterKeyProvider
from aws_encryption_sdk.identifiers import WrappingAlgorithm, EncryptionKeyType
import logging
class StaticMasterKeyProvider(RawMasterKeyProvider):
provider_id = 'AmazonConnect'
def __init__(self, **kwargs):
self._static_keys = {}
def _get_raw_key(self, key_id):
try:
static_key = self._static_keys[key_id]
except KeyError:
# X.509 private key file
static_key = open('blog.connect.private.key', 'rb').read()
self._static_keys[key_id] = static_key
return WrappingKey(
wrapping_algorithm=WrappingAlgorithm.RSA_OAEP_SHA256_MGF1,
wrapping_key=static_key,
wrapping_key_type=EncryptionKeyType.PRIVATE
)
def decrypt_string(encrypted_text):
encrypted_text = base64.b64decode(encrypted_text)
# key id specified in amazon connect
static_key_id = 'KEY Provided By AWS Connect after upload the Public Key'
static_master_key_provider = StaticMasterKeyProvider()
static_master_key_provider.add_master_key(static_key_id)
plaintext, decrypted_header = aws_encryption_sdk.decrypt(
source=encrypted_text,
key_provider=static_master_key_provider
)
log = logging.getLogger('test')
logging.basicConfig(level=logging.DEBUG)
log.setLevel(logging.DEBUG)
log.root.setLevel(logging.DEBUG)
encrypted_text = 'Encrypted Text'
print(decrypt_string(encrypted_text))
Когда я пытаюсь выполнить этот код, я получаю следующую ошибку: ValueError: расшифровка не удалась вместо незашифрованного значения
Может ли кто-нибудь помочь мне с этим? Я уже провожу около 5 часов, проверяя документацию Python SDK, и не могу правильно расшифровать информацию.