Monero
src
device
log.hpp
Go to the documentation of this file.
1
// Copyright (c) 2017-2020, 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
30
#pragma once
31
32
#include <cstddef>
33
#include <string>
34
35
#include "
ringct/rctOps.h
"
36
#include "
crypto/crypto.h
"
37
#include "
cryptonote_basic/account.h
"
38
39
#include "
device.hpp
"
40
41
namespace
hw
{
42
43
/* Note about debug:
44
* To debug Device you can def the following :
45
* #define DEBUG_HWDEVICE
46
* Activate debug mechanism:
47
* - Add more trace
48
* - All computation done by device are checked by default device.
49
* Required IODUMMYCRYPT_HWDEVICE or IONOCRYPT_HWDEVICE for fully working
50
* #define IODUMMYCRYPT_HWDEVICE 1
51
* - It assumes sensitive data encryption is is off on device side. a XOR with 0x55. This allow Ledger Class to make check on clear value
52
* #define IONOCRYPT_HWDEVICE 1
53
* - It assumes sensitive data encryption is off on device side.
54
*/
55
56
void
buffer_to_str
(
char
*to_buff,
size_t
to_len,
const
char
*buff,
size_t
len) ;
57
void
log_hexbuffer
(
const
std::string &msg,
const
char
* buff,
size_t
len);
58
void
log_message
(
const
std::string &msg,
const
std::string &
info
);
59
60
#ifdef WITH_DEVICE_LEDGER
61
namespace
ledger {
62
63
#ifdef DEBUG_HWDEVICE
64
#define TRACK printf("file %s:%d\n",__FILE__, __LINE__)
65
//#define TRACK MCDEBUG("ledger"," At file " << __FILE__ << ":" << __LINE__)
66
//#define TRACK while(0);
67
68
void
decrypt
(
char
* buf,
size_t
len) ;
69
crypto::key_derivation
decrypt
(
const
crypto::key_derivation
&derivation) ;
70
cryptonote::account_keys
decrypt
(
const
cryptonote::account_keys
& keys) ;
71
crypto::secret_key
decrypt
(
const
crypto::secret_key
&sec) ;
72
rct::key
decrypt
(
const
rct::key
&sec);
73
crypto::ec_scalar
decrypt
(
const
crypto::ec_scalar
&res);
74
rct::keyV
decrypt
(
const
rct::keyV
&keys);
75
76
void
check32(
const
std::string &msg,
const
std::string &
info
,
const
char
*h,
const
char
*
d
,
bool
crypted=
false
);
77
void
check8(
const
std::string &msg,
const
std::string &
info
,
const
char
*h,
const
char
*
d
,
bool
crypted=
false
);
78
79
void
set_check_verbose(
bool
verbose);
80
#endif
81
}
82
#endif
83
}
account.h
device.hpp
rct::key
Definition:
rctTypes.h:79
crypto::secret_key
epee::mlocked< tools::scrubbed< ec_scalar > > secret_key
Definition:
crypto.h:67
crypto::key_derivation
POD_CLASS key_derivation
Definition:
crypto.h:83
crypto::ec_scalar
POD_CLASS ec_scalar
Definition:
crypto.h:59
rct::keyV
std::vector< key > keyV
Definition:
rctTypes.h:89
info
CXA_THROW_INFO_T * info
Definition:
stack_trace.cpp:90
cryptonote::account_keys
Definition:
account.h:41
hw::buffer_to_str
void buffer_to_str(char *to_buff, size_t to_len, const char *buff, size_t len)
Definition:
log.cpp:38
d
Definition:
d.py:1
hw
Definition:
device.cpp:38
decrypt
static std::string decrypt(const std::string &ciphertext, const crypto::key_image &key_image, const crypto::chacha_key &key, uint8_t field)
Definition:
ringdb.cpp:138
rctOps.h
hw::log_message
void log_message(const std::string &msg, const std::string &info)
Definition:
log.cpp:51
hw::log_hexbuffer
void log_hexbuffer(const std::string &msg, const char *buff, size_t len)
Definition:
log.cpp:45
crypto.h
Generated on Thu Nov 5 2020 00:00:00 for Monero by
1.8.20