/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include #include #include #include #include #include #include #include using namespace Aws::KMS::Model; using namespace Aws::Utils::Json; using namespace Aws::Utils; using namespace Aws; GetPublicKeyResult::GetPublicKeyResult() : m_keySpec(KeySpec::NOT_SET), m_keyUsage(KeyUsageType::NOT_SET) { } GetPublicKeyResult::GetPublicKeyResult(const Aws::AmazonWebServiceResult& result) : m_keySpec(KeySpec::NOT_SET), m_keyUsage(KeyUsageType::NOT_SET) { *this = result; } GetPublicKeyResult& GetPublicKeyResult::operator =(const Aws::AmazonWebServiceResult& result) { JsonView jsonValue = result.GetPayload().View(); if(jsonValue.ValueExists("KeyId")) { m_keyId = jsonValue.GetString("KeyId"); } if(jsonValue.ValueExists("PublicKey")) { m_publicKey = HashingUtils::Base64Decode(jsonValue.GetString("PublicKey")); } if(jsonValue.ValueExists("KeySpec")) { m_keySpec = KeySpecMapper::GetKeySpecForName(jsonValue.GetString("KeySpec")); } if(jsonValue.ValueExists("KeyUsage")) { m_keyUsage = KeyUsageTypeMapper::GetKeyUsageTypeForName(jsonValue.GetString("KeyUsage")); } if(jsonValue.ValueExists("EncryptionAlgorithms")) { Aws::Utils::Array encryptionAlgorithmsJsonList = jsonValue.GetArray("EncryptionAlgorithms"); for(unsigned encryptionAlgorithmsIndex = 0; encryptionAlgorithmsIndex < encryptionAlgorithmsJsonList.GetLength(); ++encryptionAlgorithmsIndex) { m_encryptionAlgorithms.push_back(EncryptionAlgorithmSpecMapper::GetEncryptionAlgorithmSpecForName(encryptionAlgorithmsJsonList[encryptionAlgorithmsIndex].AsString())); } } if(jsonValue.ValueExists("SigningAlgorithms")) { Aws::Utils::Array signingAlgorithmsJsonList = jsonValue.GetArray("SigningAlgorithms"); for(unsigned signingAlgorithmsIndex = 0; signingAlgorithmsIndex < signingAlgorithmsJsonList.GetLength(); ++signingAlgorithmsIndex) { m_signingAlgorithms.push_back(SigningAlgorithmSpecMapper::GetSigningAlgorithmSpecForName(signingAlgorithmsJsonList[signingAlgorithmsIndex].AsString())); } } const auto& headers = result.GetHeaderValueCollection(); const auto& requestIdIter = headers.find("x-amzn-requestid"); if(requestIdIter != headers.end()) { m_requestId = requestIdIter->second; } return *this; }