Я использую командлет , который создает System.IO.MemoryStream
, который содержит ключ шифрования, который мне нужно использовать для шифрования некоторых файлов.Как я могу прочитать из потока памяти свойства «Plaintext», возвращаемого New-KMSDataKey?
Это документация для команды:
http://docs.aws.amazon.com/powershell/latest/reference/items/New-KMSDataKey.html
И это объект, который возвращается этого командлета:
Я пытаюсь получить имущество plaintext
. Как получить доступ к System.IO.MemoryStream
, чтобы получить ключ?
Это мой пример сценария:
$KMSKeyS3 = New-KMSDataKey -KeyId $KMSKeySource -KeySpec AES_256 -Region "ap-southeast-2"
Это дает мне:
CiphertextBlob KeyId Plaintext
-------------- ----- ---------
System.IO.MemoryStream arn:aws:kms:ap-southeast-2:<Customer>:key/<Key> System.IO.MemoryStream
Вы можете прочитать [System.IO.MemoryStream] с помощью StreamReader '$ reader = new-object System.IO.StreamReader ($ KMSKeyS3.plaintext); $ reader.Readline() 'Но это всего лишь половина ответа, потому что я понятия не имею, что такое кодировка в этом MemoryStream. –
Документация о том, как обращаться с этим свойством, в частности, кажется довольно скудной. Вы можете захотеть отбросить это на форумах AWS Powershell, чтобы получить конкретное слово об использовании от сотрудника AWS. –
Убрал вопрос и проголосовал за повторное открытие. Этот вопрос очень специфичен и отвечает тем, у кого есть опыт работы с командлетами KMS. Я не думаю, что это просто широкий вопрос о потоках памяти, но особенно это использование одного. @Chris, вы можете отредактировать сообщение, чтобы включить некоторую релевантную информацию, такую как командлеты KMS, которые вы использовали для создания любых связанных ключей, псевдонимов и т. Д. –