Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
account.cpp
Go to the documentation of this file.
1
// Copyright (c) 2014-2019, The Monero Project
2
//
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without modification, are
6
// permitted provided that the following conditions are met:
7
//
8
// 1. Redistributions of source code must retain the above copyright notice, this list of
9
// conditions and the following disclaimer.
10
//
11
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
12
// of conditions and the following disclaimer in the documentation and/or other
13
// materials provided with the distribution.
14
//
15
// 3. Neither the name of the copyright holder nor the names of its contributors may be
16
// used to endorse or promote products derived from this software without specific
17
// prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
27
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29
#include "gtest/gtest.h"
30
31
#include "
cryptonote_basic/account.h
"
32
33
TEST
(account, encrypt_keys)
34
{
35
cryptonote::keypair
recovery_key =
cryptonote::keypair::generate
(
hw::get_device
(
"default"
));
36
cryptonote::account_base
account;
37
crypto::secret_key
key
= account.
generate
(recovery_key.
sec
);
38
const
cryptonote::account_keys
keys = account.
get_keys
();
39
40
ASSERT_EQ
(account.
get_keys
().
m_account_address
, keys.
m_account_address
);
41
ASSERT_EQ
(account.
get_keys
().
m_spend_secret_key
, keys.
m_spend_secret_key
);
42
ASSERT_EQ
(account.
get_keys
().
m_view_secret_key
, keys.
m_view_secret_key
);
43
ASSERT_EQ
(account.
get_keys
().
m_multisig_keys
, keys.
m_multisig_keys
);
44
45
crypto::chacha_key chacha_key;
46
crypto::generate_chacha_key(&recovery_key,
sizeof
(recovery_key), chacha_key, 1);
47
48
account.
encrypt_keys
(chacha_key);
49
50
ASSERT_EQ
(account.
get_keys
().
m_account_address
, keys.
m_account_address
);
51
ASSERT_NE
(account.
get_keys
().
m_spend_secret_key
, keys.
m_spend_secret_key
);
52
ASSERT_NE
(account.
get_keys
().
m_view_secret_key
, keys.
m_view_secret_key
);
53
54
account.
decrypt_viewkey
(chacha_key);
55
56
ASSERT_EQ
(account.
get_keys
().
m_account_address
, keys.
m_account_address
);
57
ASSERT_NE
(account.
get_keys
().
m_spend_secret_key
, keys.
m_spend_secret_key
);
58
ASSERT_EQ
(account.
get_keys
().
m_view_secret_key
, keys.
m_view_secret_key
);
59
60
account.
encrypt_viewkey
(chacha_key);
61
62
ASSERT_EQ
(account.
get_keys
().
m_account_address
, keys.
m_account_address
);
63
ASSERT_NE
(account.
get_keys
().
m_spend_secret_key
, keys.
m_spend_secret_key
);
64
ASSERT_NE
(account.
get_keys
().
m_view_secret_key
, keys.
m_view_secret_key
);
65
66
account.
decrypt_keys
(chacha_key);
67
68
ASSERT_EQ
(account.
get_keys
().
m_account_address
, keys.
m_account_address
);
69
ASSERT_EQ
(account.
get_keys
().
m_spend_secret_key
, keys.
m_spend_secret_key
);
70
ASSERT_EQ
(account.
get_keys
().
m_view_secret_key
, keys.
m_view_secret_key
);
71
}
account.h
cryptonote::account_base
Definition
account.h:77
cryptonote::account_base::encrypt_viewkey
void encrypt_viewkey(const crypto::chacha_key &key)
Definition
account.h:106
cryptonote::account_base::decrypt_viewkey
void decrypt_viewkey(const crypto::chacha_key &key)
Definition
account.h:107
cryptonote::account_base::generate
crypto::secret_key generate(const crypto::secret_key &recovery_key=crypto::secret_key(), bool recover=false, bool two_random=false)
Definition
account.cpp:158
cryptonote::account_base::encrypt_keys
void encrypt_keys(const crypto::chacha_key &key)
Definition
account.h:104
cryptonote::account_base::decrypt_keys
void decrypt_keys(const crypto::chacha_key &key)
Definition
account.h:105
cryptonote::account_base::get_keys
const account_keys & get_keys() const
Definition
account.cpp:264
ASSERT_EQ
#define ASSERT_EQ(val1, val2)
Definition
gtest.h:1956
ASSERT_NE
#define ASSERT_NE(val1, val2)
Definition
gtest.h:1960
TEST
#define TEST(test_case_name, test_name)
Definition
gtest.h:2187
key
const char * key
Definition
hmac_keccak.cpp:39
crypto::secret_key
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition
crypto.h:82
hw::get_device
device & get_device(const std::string &device_descriptor)
Definition
device.cpp:95
cryptonote::account_keys
Definition
account.h:42
cryptonote::account_keys::m_view_secret_key
crypto::secret_key m_view_secret_key
Definition
account.h:45
cryptonote::account_keys::m_spend_secret_key
crypto::secret_key m_spend_secret_key
Definition
account.h:44
cryptonote::account_keys::m_multisig_keys
std::vector< crypto::secret_key > m_multisig_keys
Definition
account.h:46
cryptonote::account_keys::m_account_address
account_public_address m_account_address
Definition
account.h:43
cryptonote::keypair
Definition
cryptonote_basic.h:509
cryptonote::keypair::sec
crypto::secret_key sec
Definition
cryptonote_basic.h:511
cryptonote::keypair::generate
static keypair generate(hw::device &hwdev)
Definition
cryptonote_basic.h:513
tests
unit_tests
account.cpp
Generated on
for Electroneum by
1.17.0