diff --git a/cpp/src/vereign/identity/provider.cc b/cpp/src/vereign/identity/provider.cc
index 94f761b13126efb50a16b4c279bb1fd6dbd35416..e69494ad66845c3fdd56216b20559ffffb887942 100644
--- a/cpp/src/vereign/identity/provider.cc
+++ b/cpp/src/vereign/identity/provider.cc
@@ -17,10 +17,10 @@ Provider::Provider(kvstore::CryptoStorage& storage)
 
 Provider::~Provider() = default;
 
-auto Provider::ResetIdentity(const std::string& pin) -> std::string {
+auto Provider::RecreateIdentity(const std::string& pin) -> std::string {
   std::lock_guard<std::mutex> l{mu_};
 
-  storage_.Reset(pin);
+  storage_.Recreate(pin);
 
   auto rsa = crypto::rsa::GenerateKey(rsaKeySizeBits);
 
diff --git a/cpp/src/vereign/identity/provider.hh b/cpp/src/vereign/identity/provider.hh
index 60003b4afef49775a37c94d17943213b995b9ac2..c526e41fa0e2353ca8dc2258609e9076a6a3f17a 100644
--- a/cpp/src/vereign/identity/provider.hh
+++ b/cpp/src/vereign/identity/provider.hh
@@ -33,14 +33,14 @@ public:
   auto operator=(const kvstore::Storage&) -> Provider& = delete;
 
   /**
-   * Replaces the current identity.
+   * Recreates the current identity.
    *
    * @param pin Required only under Linux. The pin code used for derivation of the crypto storage
    *    master key.
    *
    * @returns The base64 encoded PEM encoded identity public key.
    */
-  auto ResetIdentity(const std::string& pin) -> std::string;
+  auto RecreateIdentity(const std::string& pin) -> std::string;
 
   /**
    * Loads the local identity.
diff --git a/cpp/src/vereign/kvstore/crypto_storage.cc b/cpp/src/vereign/kvstore/crypto_storage.cc
index d4c1bbc0329a53fa9b18ed2ace887f396accf5c7..7db16463cd4b0cc9947ff11dc2e9e56c54fb5a6c 100644
--- a/cpp/src/vereign/kvstore/crypto_storage.cc
+++ b/cpp/src/vereign/kvstore/crypto_storage.cc
@@ -14,8 +14,8 @@ CryptoStorage::CryptoStorage(Storage& storage, bool disable_key_protection)
 
 CryptoStorage::~CryptoStorage() = default;
 
-void CryptoStorage::Reset(const std::string& pin) {
-  impl_->Reset(pin);
+void CryptoStorage::Recreate(const std::string& pin) {
+  impl_->Recreate(pin);
 }
 
 void CryptoStorage::Open(const std::string& pin) {
diff --git a/cpp/src/vereign/kvstore/crypto_storage.hh b/cpp/src/vereign/kvstore/crypto_storage.hh
index 671e9abe3d82ba51723c03401a94db82c95d66a7..f0c03648c9d2afe06e7fde140157c691f66d954a 100644
--- a/cpp/src/vereign/kvstore/crypto_storage.hh
+++ b/cpp/src/vereign/kvstore/crypto_storage.hh
@@ -46,7 +46,7 @@ public:
   auto operator=(const CryptoStorage&) -> CryptoStorage& = delete;
 
   /**
-   * Reset the storage, by effectively initializing a new empty storage.
+   * Reinitializes the storage, by effectively initializing a new empty storage.
    *
    * Although the resulting storage is empty it will include some internal data needed for the
    * master key management.
@@ -57,7 +57,7 @@ public:
    *
    * @throws Error on failure.
    */
-  void Reset(const std::string& pin);
+  void Recreate(const std::string& pin);
 
   /**
    * Open the storage.
diff --git a/cpp/src/vereign/kvstore/detail/linux_crypto_storage.cc b/cpp/src/vereign/kvstore/detail/linux_crypto_storage.cc
index 6a19e57500e6b570ae2ce181891618351ec335b4..1d59144d03098d016c2d7d1c29942fb7e95bac07 100644
--- a/cpp/src/vereign/kvstore/detail/linux_crypto_storage.cc
+++ b/cpp/src/vereign/kvstore/detail/linux_crypto_storage.cc
@@ -77,7 +77,7 @@ void CryptoStorageImpl::Open(const std::string& pin) {
   }
 }
 
-void CryptoStorageImpl::Reset(const std::string& pin) {
+void CryptoStorageImpl::Recreate(const std::string& pin) {
   if (pin.empty()) {
     throw InvalidPinCodeError{};
   }
diff --git a/cpp/src/vereign/kvstore/detail/linux_crypto_storage.hh b/cpp/src/vereign/kvstore/detail/linux_crypto_storage.hh
index e1675e44cf4c63132e560832847016c762eeae46..fcc3e1fc0b67664ede137622c8ac79a7c765a6f6 100644
--- a/cpp/src/vereign/kvstore/detail/linux_crypto_storage.hh
+++ b/cpp/src/vereign/kvstore/detail/linux_crypto_storage.hh
@@ -14,7 +14,7 @@ public:
   CryptoStorageImpl(const CryptoStorageImpl&) = delete;
   auto operator=(const CryptoStorageImpl&) -> CryptoStorageImpl& = delete;
 
-  void Reset(const std::string& pin);
+  void Recreate(const std::string& pin);
   void Open(const std::string& pin);
 };
 
diff --git a/cpp/src/vereign/kvstore/detail/win_crypto_storage.cc b/cpp/src/vereign/kvstore/detail/win_crypto_storage.cc
index 4e910cb5eb1ba4147670efb7184cce99be06518e..6d8651f38261282aa1de180d208e1a3506df1b94 100644
--- a/cpp/src/vereign/kvstore/detail/win_crypto_storage.cc
+++ b/cpp/src/vereign/kvstore/detail/win_crypto_storage.cc
@@ -67,7 +67,7 @@ void CryptoStorageImpl::Open(const std::string& pin) {
   }
 }
 
-void CryptoStorageImpl::Reset(const std::string& pin) {
+void CryptoStorageImpl::Recreate(const std::string& pin) {
   boost::ignore_unused(pin);
   kvstore::Lock l{storage_, lockRetryCount, lockRetrySleep};
 
diff --git a/cpp/src/vereign/kvstore/detail/win_crypto_storage.hh b/cpp/src/vereign/kvstore/detail/win_crypto_storage.hh
index cc88a31589d2a717aa4b579e81db7b62159cf50a..48150ac4ff6068fbe79b3abffd257f508b89e907 100644
--- a/cpp/src/vereign/kvstore/detail/win_crypto_storage.hh
+++ b/cpp/src/vereign/kvstore/detail/win_crypto_storage.hh
@@ -14,7 +14,7 @@ public:
   CryptoStorageImpl(const CryptoStorageImpl&) = delete;
   auto operator=(const CryptoStorageImpl&) -> CryptoStorageImpl& = delete;
 
-  void Reset(const std::string& pin);
+  void Recreate(const std::string& pin);
   void Open(const std::string& pin);
 
 private:
diff --git a/cpp/src/vereign/service/identity_service.cc b/cpp/src/vereign/service/identity_service.cc
index 488c2f3363de4c0b5af480f15bdc968305b030af..fe39c2be506f67faa36dff971006e9780f35a641 100644
--- a/cpp/src/vereign/service/identity_service.cc
+++ b/cpp/src/vereign/service/identity_service.cc
@@ -35,7 +35,7 @@ void IdentityService::LoginWithNewDevice(
   const client_library::LoginFormNewDevice* req,
   client_library::LoginFormNewDeviceResponse* resp
 ) {
-  auto public_key = identity_provider_.ResetIdentity(req->pin());
+  auto public_key = identity_provider_.RecreateIdentity(req->pin());
 
   auto result = client_session_.GetClient().Post(
     client_session_.BasePath() + gen::IdentityService::ServicePath + loginWithNewDevicePath,
diff --git a/cpp/tests/vereign/identity/provider_test.cc b/cpp/tests/vereign/identity/provider_test.cc
index d090554e6385a4c4647fb87e42507d7ad95d01c8..f34a8450b557e96bbf996aca0e2e43bf6d1481a4 100644
--- a/cpp/tests/vereign/identity/provider_test.cc
+++ b/cpp/tests/vereign/identity/provider_test.cc
@@ -11,7 +11,7 @@
 
 using namespace vereign;
 
-TEST_CASE("Provider::ResetIdentity", "[vereign/identity]") {
+TEST_CASE("Provider::RecreateIdentity", "[vereign/identity]") {
   auto storage_path = fs::TempFilePath("test_db_");
   fs::RemoveFileGuard rm{storage_path};
 
@@ -23,7 +23,7 @@ TEST_CASE("Provider::ResetIdentity", "[vereign/identity]") {
     kvstore::CryptoStorage storage{kvstorage, true};
 
     identity::Provider provider{storage};
-    expected = provider.ResetIdentity("foo");
+    expected = provider.RecreateIdentity("foo");
   }
 
   {
diff --git a/cpp/tests/vereign/kvstore/crypto_storage_test.cc b/cpp/tests/vereign/kvstore/crypto_storage_test.cc
index 57e3e2945f9cecb97e84656379190f641256e486..8f9d305d0488004739afe3ae142e982ab7405630 100644
--- a/cpp/tests/vereign/kvstore/crypto_storage_test.cc
+++ b/cpp/tests/vereign/kvstore/crypto_storage_test.cc
@@ -14,7 +14,7 @@
 
 using namespace vereign;
 
-TEST_CASE("kvstore::CryptoStorage::Reset", "[vereign/kvstore]") {
+TEST_CASE("kvstore::CryptoStorage::Recreate", "[vereign/kvstore]") {
   auto storage_path = fs::TempFilePath("test_db_");
   fs::RemoveFileGuard rm{storage_path};
 
@@ -23,7 +23,7 @@ TEST_CASE("kvstore::CryptoStorage::Reset", "[vereign/kvstore]") {
     auto kvstorage = kvstore::SqliteStorage(storage_path);
     kvstore::CryptoStorage storage{kvstorage, true};
 
-    storage.Reset("foo");
+    storage.Recreate("foo");
     std::string v{"test value"};
     storage.PutBytes("test", bytes::View(v));
   }
@@ -49,7 +49,7 @@ TEST_CASE("kvstore::CryptoStorage::PutBytes", "[vereign/kvstore]") {
   auto kvstorage = kvstore::SqliteStorage(storage_path);
   kvstore::CryptoStorage storage{kvstorage, true};
 
-  storage.Reset("foo");
+  storage.Recreate("foo");
   storage.PutBytes("test", big_value.View());
 
   bytes::Buffer v;
@@ -68,7 +68,7 @@ TEST_CASE("kvstore::CryptoStorage::GetBytes", "[vereign/kvstore]") {
   auto kvstorage = kvstore::SqliteStorage(storage_path);
   kvstore::CryptoStorage storage{kvstorage, true};
 
-  storage.Reset("foo");
+  storage.Recreate("foo");
 
   SECTION("when the value does not exists, it must throw ValueNotFoundError") {
     bytes::Buffer v;