aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core/account.cpp
diff options
context:
space:
mode:
authorkenshi84 <kenshi84@protonmail.ch>2017-01-27 00:07:23 +0900
committerkenshi84 <kenshi84@protonmail.ch>2017-02-08 22:45:15 +0900
commit8027ce0c75f882de0523e668defa0bc3c8564e96 (patch)
tree40066ffa7c7afb28907291c93863d8cfdb14920c /src/cryptonote_core/account.cpp
parentMerge pull request #1679 (diff)
downloadmonero-8027ce0c75f882de0523e668defa0bc3c8564e96.tar.xz
extract some basic code from libcryptonote_core into libcryptonote_basic
Diffstat (limited to 'src/cryptonote_core/account.cpp')
-rw-r--r--src/cryptonote_core/account.cpp143
1 files changed, 0 insertions, 143 deletions
diff --git a/src/cryptonote_core/account.cpp b/src/cryptonote_core/account.cpp
deleted file mode 100644
index 8f2db6863..000000000
--- a/src/cryptonote_core/account.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (c) 2014-2016, The Monero Project
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification, are
-// permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this list of
-// conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice, this list
-// of conditions and the following disclaimer in the documentation and/or other
-// materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be
-// used to endorse or promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
-
-#include <fstream>
-
-#include "include_base_utils.h"
-#include "account.h"
-#include "warnings.h"
-#include "crypto/crypto.h"
-extern "C"
-{
-#include "crypto/keccak.h"
-}
-#include "cryptonote_core/cryptonote_basic_impl.h"
-#include "cryptonote_core/cryptonote_format_utils.h"
-
-#undef MONERO_DEFAULT_LOG_CATEGORY
-#define MONERO_DEFAULT_LOG_CATEGORY "account"
-
-using namespace std;
-
-DISABLE_VS_WARNINGS(4244 4345)
-
- namespace cryptonote
-{
- //-----------------------------------------------------------------
- account_base::account_base()
- {
- set_null();
- }
- //-----------------------------------------------------------------
- void account_base::set_null()
- {
- m_keys = account_keys();
- }
- //-----------------------------------------------------------------
- void account_base::forget_spend_key()
- {
- m_keys.m_spend_secret_key = crypto::secret_key();
- }
- //-----------------------------------------------------------------
- crypto::secret_key account_base::generate(const crypto::secret_key& recovery_key, bool recover, bool two_random)
- {
- crypto::secret_key first = generate_keys(m_keys.m_account_address.m_spend_public_key, m_keys.m_spend_secret_key, recovery_key, recover);
-
- // rng for generating second set of keys is hash of first rng. means only one set of electrum-style words needed for recovery
- crypto::secret_key second;
- keccak((uint8_t *)&m_keys.m_spend_secret_key, sizeof(crypto::secret_key), (uint8_t *)&second, sizeof(crypto::secret_key));
-
- generate_keys(m_keys.m_account_address.m_view_public_key, m_keys.m_view_secret_key, second, two_random ? false : true);
-
- struct tm timestamp = {0};
- timestamp.tm_year = 2014 - 1900; // year 2014
- timestamp.tm_mon = 6 - 1; // month june
- timestamp.tm_mday = 8; // 8th of june
- timestamp.tm_hour = 0;
- timestamp.tm_min = 0;
- timestamp.tm_sec = 0;
-
- if (recover)
- {
- m_creation_timestamp = mktime(&timestamp);
- if (m_creation_timestamp == (uint64_t)-1) // failure
- m_creation_timestamp = 0; // lowest value
- }
- else
- {
- m_creation_timestamp = time(NULL);
- }
- return first;
- }
- //-----------------------------------------------------------------
- void account_base::create_from_keys(const cryptonote::account_public_address& address, const crypto::secret_key& spendkey, const crypto::secret_key& viewkey)
- {
- m_keys.m_account_address = address;
- m_keys.m_spend_secret_key = spendkey;
- m_keys.m_view_secret_key = viewkey;
-
- struct tm timestamp = {0};
- timestamp.tm_year = 2014 - 1900; // year 2014
- timestamp.tm_mon = 4 - 1; // month april
- timestamp.tm_mday = 15; // 15th of april
- timestamp.tm_hour = 0;
- timestamp.tm_min = 0;
- timestamp.tm_sec = 0;
-
- m_creation_timestamp = mktime(&timestamp);
- if (m_creation_timestamp == (uint64_t)-1) // failure
- m_creation_timestamp = 0; // lowest value
- }
- //-----------------------------------------------------------------
- void account_base::create_from_viewkey(const cryptonote::account_public_address& address, const crypto::secret_key& viewkey)
- {
- crypto::secret_key fake;
- memset(&fake, 0, sizeof(fake));
- create_from_keys(address, fake, viewkey);
- }
- //-----------------------------------------------------------------
- const account_keys& account_base::get_keys() const
- {
- return m_keys;
- }
- //-----------------------------------------------------------------
- std::string account_base::get_public_address_str(bool testnet) const
- {
- //TODO: change this code into base 58
- return get_account_address_as_str(testnet, m_keys.m_account_address);
- }
- //-----------------------------------------------------------------
- std::string account_base::get_public_integrated_address_str(const crypto::hash8 &payment_id, bool testnet) const
- {
- //TODO: change this code into base 58
- return get_account_integrated_address_as_str(testnet, m_keys.m_account_address, payment_id);
- }
- //-----------------------------------------------------------------
-}