diff --git a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md index e691abb56..793814a6d 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md +++ b/sdk/keyvault/azure-security-keyvault-keys/CHANGELOG.md @@ -5,6 +5,7 @@ ### Features Added - Added `GetIv()` to `EncryptParameters` and `DecryptParameters`. +- Added `BackupKeyResult` for `BackupKey()` return type. ### Breaking Changes @@ -17,6 +18,7 @@ - Removed `Decrypt(DecryptAlgorithm, std::vector, context)`. - Removed the `MaxPageResults` field from `GetPropertiesOfKeysOptions`, `GetPropertiesOfKeyVersionsOptions`, and `GetDeletedKeysOptions`. - Renamed header `list_keys_single_page_result.hpp` to `list_keys_responses.hpp`. +- Updated `BackupKey()` API return type to `BackupKeyResult` model type. ## 4.0.0-beta.3 (2021-06-08) diff --git a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt index 415576796..beaf4eca1 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt @@ -46,6 +46,7 @@ set( inc/azure/keyvault/keys/internal/cryptography/local_cryptography_provider.hpp inc/azure/keyvault/keys/internal/cryptography/remote_cryptography_client.hpp inc/azure/keyvault/keys/internal/cryptography/rsa_cryptography_provider.hpp + inc/azure/keyvault/keys/backup_key_result.hpp inc/azure/keyvault/keys/delete_key_operation.hpp inc/azure/keyvault/keys/deleted_key.hpp inc/azure/keyvault/keys/import_key_options.hpp diff --git a/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/backup_key_result.hpp b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/backup_key_result.hpp new file mode 100644 index 000000000..9d73f167b --- /dev/null +++ b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/backup_key_result.hpp @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: MIT + +/** + * @file + * @brief Defines the BackupKey model type. + * + */ + +#pragma once + +#include + +namespace Azure { namespace Security { namespace KeyVault { namespace Keys { + + /** + * @brief The BackupKeyResult type containing the backup key of bytes. + * + */ + struct BackupKeyResult final + { + /** + * @brief The backup key array data. + * + */ + std::vector BackupKey; + }; + +}}}} // namespace Azure::Security::KeyVault::Keys diff --git a/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp index 52313d933..19930861e 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp +++ b/sdk/keyvault/azure-security-keyvault-keys/inc/azure/keyvault/keys/key_client.hpp @@ -11,6 +11,7 @@ #include +#include "azure/keyvault/keys/backup_key_result.hpp" #include "azure/keyvault/keys/delete_key_operation.hpp" #include "azure/keyvault/keys/import_key_options.hpp" #include "azure/keyvault/keys/key_client_options.hpp" @@ -341,7 +342,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { * @param name The name of the key. * @param context A #Azure::Core::Context controlling the request lifetime. */ - Azure::Response> BackupKey( + Azure::Response BackupKey( std::string const& name, Azure::Core::Context const& context = Azure::Core::Context()) const; diff --git a/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp b/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp index 8883898a2..aef67191b 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/src/key_client.cpp @@ -320,7 +320,7 @@ Azure::Response KeyClient::UpdateKeyProperties( {_detail::KeysPath, properties.Name, properties.Version}); } -Azure::Response> KeyClient::BackupKey( +Azure::Response KeyClient::BackupKey( std::string const& name, Azure::Core::Context const& context) const { @@ -334,8 +334,9 @@ Azure::Response> KeyClient::BackupKey( {_detail::KeysPath, name, "backup"}); // Convert the internal KeyBackup model to a raw vector. - return Azure::Response>( - response.Value.Value, std::move(response.RawResponse)); + return Azure::Response( + Azure::Security::KeyVault::Keys::BackupKeyResult{response.Value.Value}, + std::move(response.RawResponse)); } Azure::Response KeyClient::RestoreKeyBackup( diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/sample2_backup_and_restore.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/sample2_backup_and_restore.cpp index 63696f5d5..fc6512eb8 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/sample2_backup_and_restore.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/sample2_backup_and_restore.cpp @@ -54,7 +54,7 @@ int main() size_t backUpSize = 0; { std::cout << "\t-Backup Key" << std::endl; - std::vector backupKey(keyClient.BackupKey(rsaKeyName).Value); + std::vector backupKey(keyClient.BackupKey(rsaKeyName).Value.BackupKey); backUpSize = backupKey.size(); // save data to file diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_backup_test_live.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_backup_test_live.cpp index 7ccfde99e..bb767466d 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_backup_test_live.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_backup_test_live.cpp @@ -61,7 +61,7 @@ TEST_F(KeyVaultClientTest, BackupKey) { // Restore std::cout << std::endl << "- Restore key"; - auto respone = keyClient.RestoreKeyBackup(backUpResponse.Value); + auto respone = keyClient.RestoreKeyBackup(backUpResponse.Value.BackupKey); CheckValidResponse(backUpResponse); } {