Electroneum
rctTypes.h File Reference
#include <cstddef>
#include <vector>
#include <iostream>
#include <cinttypes>
#include <sodium/crypto_verify_32.h>
#include "crypto/crypto-ops.h"
#include "crypto/random.h"
#include "crypto/keccak.h"
#include "crypto/generic-ops.h"
#include "crypto/crypto.h"
#include "hex.h"
#include "span.h"
#include "serialization/vector.h"
#include "serialization/debug_archive.h"
#include "serialization/binary_archive.h"
#include "serialization/json_archive.h"
Include dependency graph for rctTypes.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rct::key
 
struct  rct::ctkey
 
struct  rct::multisig_kLRki
 
struct  rct::multisig_out
 
struct  rct::ecdhTuple
 
struct  rct::boroSig
 
struct  rct::geDsmp
 
struct  rct::mgSig
 
struct  rct::rangeSig
 
struct  rct::Bulletproof
 
struct  rct::RCTConfig
 
struct  rct::rctSigBase
 
struct  rct::rctSigPrunable
 
struct  rct::rctSig
 
struct  std::hash< rct::key >
 

Namespaces

 rct
 
 cryptonote
 Holds cryptonote related classes and helpers.
 

Macros

#define RCT_TYPES_H
 
#define DP(x)
 
#define ATOMS   64
 

Typedefs

typedef unsigned char * rct::Bytes
 
typedef std::vector< keyrct::keyV
 
typedef std::vector< keyV > rct::keyM
 
typedef std::vector< ctkey > rct::ctkeyV
 
typedef std::vector< ctkeyV > rct::ctkeyM
 
typedef uint64_t rct::etn_amount
 
typedef unsigned int rct::bits[ATOMS]
 
typedef key rct::key64[64]
 

Enumerations

enum  {
  rct::RCTTypeNull = 0, rct::RCTTypeFull = 1, rct::RCTTypeSimple = 2, rct::RCTTypeBulletproof = 3,
  rct::RCTTypeBulletproof2 = 4
}
 
enum  rct::RangeProofType { rct::RangeProofBorromean, rct::RangeProofBulletproof, rct::RangeProofMultiOutputBulletproof, rct::RangeProofPaddedBulletproof }
 

Functions

size_t rct::n_bulletproof_amounts (const Bulletproof &proof)
 
size_t rct::n_bulletproof_max_amounts (const Bulletproof &proof)
 
size_t rct::n_bulletproof_amounts (const std::vector< Bulletproof > &proofs)
 
size_t rct::n_bulletproof_max_amounts (const std::vector< Bulletproof > &proofs)
 
void rct::dp (key a)
 
void rct::dp (bool a)
 
void rct::dp (const char *a, int l)
 
void rct::dp (keyV a)
 
void rct::dp (keyM a)
 
void rct::dp (etn_amount vali)
 
void rct::dp (bits amountb)
 
void rct::dp (const char *st)
 
void rct::d2h (key &amounth, const etn_amount in)
 
key rct::d2h (const etn_amount in)
 
void rct::d2b (bits amountb, etn_amount val)
 
etn_amount rct::h2d (const key &test)
 
void rct::h2b (bits amountb2, const key &test)
 
void rct::b2h (key &amountdh, const bits amountb2)
 
etn_amount rct::b2d (bits amountb)
 
bool rct::is_rct_simple (int type)
 
bool rct::is_rct_bulletproof (int type)
 
bool rct::is_rct_borromean (int type)
 
std::ostream & rct::operator<< (std::ostream &o, const rct::key &v)
 
 BLOB_SERIALIZER (rct::key)
 
 BLOB_SERIALIZER (rct::key64)
 
 BLOB_SERIALIZER (rct::ctkey)
 
 BLOB_SERIALIZER (rct::multisig_kLRki)
 
 BLOB_SERIALIZER (rct::boroSig)
 
 VARIANT_TAG (debug_archive, rct::key, "rct::key")
 
 VARIANT_TAG (debug_archive, rct::key64, "rct::key64")
 
 VARIANT_TAG (debug_archive, rct::keyV, "rct::keyV")
 
 VARIANT_TAG (debug_archive, rct::keyM, "rct::keyM")
 
 VARIANT_TAG (debug_archive, rct::ctkey, "rct::ctkey")
 
 VARIANT_TAG (debug_archive, rct::ctkeyV, "rct::ctkeyV")
 
 VARIANT_TAG (debug_archive, rct::ctkeyM, "rct::ctkeyM")
 
 VARIANT_TAG (debug_archive, rct::ecdhTuple, "rct::ecdhTuple")
 
 VARIANT_TAG (debug_archive, rct::mgSig, "rct::mgSig")
 
 VARIANT_TAG (debug_archive, rct::rangeSig, "rct::rangeSig")
 
 VARIANT_TAG (debug_archive, rct::boroSig, "rct::boroSig")
 
 VARIANT_TAG (debug_archive, rct::rctSig, "rct::rctSig")
 
 VARIANT_TAG (debug_archive, rct::Bulletproof, "rct::bulletproof")
 
 VARIANT_TAG (debug_archive, rct::multisig_kLRki, "rct::multisig_kLRki")
 
 VARIANT_TAG (debug_archive, rct::multisig_out, "rct::multisig_out")
 
 VARIANT_TAG (binary_archive, rct::key, 0x90)
 
 VARIANT_TAG (binary_archive, rct::key64, 0x91)
 
 VARIANT_TAG (binary_archive, rct::keyV, 0x92)
 
 VARIANT_TAG (binary_archive, rct::keyM, 0x93)
 
 VARIANT_TAG (binary_archive, rct::ctkey, 0x94)
 
 VARIANT_TAG (binary_archive, rct::ctkeyV, 0x95)
 
 VARIANT_TAG (binary_archive, rct::ctkeyM, 0x96)
 
 VARIANT_TAG (binary_archive, rct::ecdhTuple, 0x97)
 
 VARIANT_TAG (binary_archive, rct::mgSig, 0x98)
 
 VARIANT_TAG (binary_archive, rct::rangeSig, 0x99)
 
 VARIANT_TAG (binary_archive, rct::boroSig, 0x9a)
 
 VARIANT_TAG (binary_archive, rct::rctSig, 0x9b)
 
 VARIANT_TAG (binary_archive, rct::Bulletproof, 0x9c)
 
 VARIANT_TAG (binary_archive, rct::multisig_kLRki, 0x9d)
 
 VARIANT_TAG (binary_archive, rct::multisig_out, 0x9e)
 
 VARIANT_TAG (json_archive, rct::key, "rct_key")
 
 VARIANT_TAG (json_archive, rct::key64, "rct_key64")
 
 VARIANT_TAG (json_archive, rct::keyV, "rct_keyV")
 
 VARIANT_TAG (json_archive, rct::keyM, "rct_keyM")
 
 VARIANT_TAG (json_archive, rct::ctkey, "rct_ctkey")
 
 VARIANT_TAG (json_archive, rct::ctkeyV, "rct_ctkeyV")
 
 VARIANT_TAG (json_archive, rct::ctkeyM, "rct_ctkeyM")
 
 VARIANT_TAG (json_archive, rct::ecdhTuple, "rct_ecdhTuple")
 
 VARIANT_TAG (json_archive, rct::mgSig, "rct_mgSig")
 
 VARIANT_TAG (json_archive, rct::rangeSig, "rct_rangeSig")
 
 VARIANT_TAG (json_archive, rct::boroSig, "rct_boroSig")
 
 VARIANT_TAG (json_archive, rct::rctSig, "rct_rctSig")
 
 VARIANT_TAG (json_archive, rct::Bulletproof, "rct_bulletproof")
 
 VARIANT_TAG (json_archive, rct::multisig_kLRki, "rct_multisig_kLR")
 
 VARIANT_TAG (json_archive, rct::multisig_out, "rct_multisig_out")
 

Macro Definition Documentation

◆ ATOMS

#define ATOMS   64

Definition at line 65 of file rctTypes.h.

◆ DP

#define DP (   x)

Definition at line 61 of file rctTypes.h.

◆ RCT_TYPES_H

#define RCT_TYPES_H

Definition at line 33 of file rctTypes.h.

Function Documentation

◆ BLOB_SERIALIZER() [1/5]

BLOB_SERIALIZER ( rct::key  )

◆ BLOB_SERIALIZER() [2/5]

BLOB_SERIALIZER ( rct::key64  )

◆ BLOB_SERIALIZER() [3/5]

BLOB_SERIALIZER ( rct::ctkey  )

◆ BLOB_SERIALIZER() [4/5]

BLOB_SERIALIZER ( rct::multisig_kLRki  )

◆ BLOB_SERIALIZER() [5/5]

BLOB_SERIALIZER ( rct::boroSig  )

◆ VARIANT_TAG() [1/45]

VARIANT_TAG ( debug_archive  ,
rct::key  ,
"rct::key"   
)

◆ VARIANT_TAG() [2/45]

VARIANT_TAG ( debug_archive  ,
rct::key64  ,
"rct::key64"   
)

◆ VARIANT_TAG() [3/45]

VARIANT_TAG ( debug_archive  ,
rct::keyV  ,
"rct::keyV"   
)

◆ VARIANT_TAG() [4/45]

VARIANT_TAG ( debug_archive  ,
rct::keyM  ,
"rct::keyM"   
)

◆ VARIANT_TAG() [5/45]

VARIANT_TAG ( debug_archive  ,
rct::ctkey  ,
"rct::ctkey"   
)

◆ VARIANT_TAG() [6/45]

VARIANT_TAG ( debug_archive  ,
rct::ctkeyV  ,
"rct::ctkeyV"   
)

◆ VARIANT_TAG() [7/45]

VARIANT_TAG ( debug_archive  ,
rct::ctkeyM  ,
"rct::ctkeyM"   
)

◆ VARIANT_TAG() [8/45]

VARIANT_TAG ( debug_archive  ,
rct::ecdhTuple  ,
"rct::ecdhTuple"   
)

◆ VARIANT_TAG() [9/45]

VARIANT_TAG ( debug_archive  ,
rct::mgSig  ,
"rct::mgSig"   
)

◆ VARIANT_TAG() [10/45]

VARIANT_TAG ( debug_archive  ,
rct::rangeSig  ,
"rct::rangeSig"   
)

◆ VARIANT_TAG() [11/45]

VARIANT_TAG ( debug_archive  ,
rct::boroSig  ,
"rct::boroSig"   
)

◆ VARIANT_TAG() [12/45]

VARIANT_TAG ( debug_archive  ,
rct::rctSig  ,
"rct::rctSig"   
)

◆ VARIANT_TAG() [13/45]

VARIANT_TAG ( debug_archive  ,
rct::Bulletproof  ,
"rct::bulletproof"   
)

◆ VARIANT_TAG() [14/45]

VARIANT_TAG ( debug_archive  ,
rct::multisig_kLRki  ,
"rct::multisig_kLRki"   
)

◆ VARIANT_TAG() [15/45]

VARIANT_TAG ( debug_archive  ,
rct::multisig_out  ,
"rct::multisig_out"   
)

◆ VARIANT_TAG() [16/45]

VARIANT_TAG ( binary_archive  ,
rct::key  ,
0x90   
)

◆ VARIANT_TAG() [17/45]

VARIANT_TAG ( binary_archive  ,
rct::key64  ,
0x91   
)

◆ VARIANT_TAG() [18/45]

VARIANT_TAG ( binary_archive  ,
rct::keyV  ,
0x92   
)

◆ VARIANT_TAG() [19/45]

VARIANT_TAG ( binary_archive  ,
rct::keyM  ,
0x93   
)

◆ VARIANT_TAG() [20/45]

VARIANT_TAG ( binary_archive  ,
rct::ctkey  ,
0x94   
)

◆ VARIANT_TAG() [21/45]

VARIANT_TAG ( binary_archive  ,
rct::ctkeyV  ,
0x95   
)

◆ VARIANT_TAG() [22/45]

VARIANT_TAG ( binary_archive  ,
rct::ctkeyM  ,
0x96   
)

◆ VARIANT_TAG() [23/45]

VARIANT_TAG ( binary_archive  ,
rct::ecdhTuple  ,
0x97   
)

◆ VARIANT_TAG() [24/45]

VARIANT_TAG ( binary_archive  ,
rct::mgSig  ,
0x98   
)

◆ VARIANT_TAG() [25/45]

VARIANT_TAG ( binary_archive  ,
rct::rangeSig  ,
0x99   
)

◆ VARIANT_TAG() [26/45]

VARIANT_TAG ( binary_archive  ,
rct::boroSig  ,
0x9a   
)

◆ VARIANT_TAG() [27/45]

VARIANT_TAG ( binary_archive  ,
rct::rctSig  ,
0x9b   
)

◆ VARIANT_TAG() [28/45]

VARIANT_TAG ( binary_archive  ,
rct::Bulletproof  ,
0x9c   
)

◆ VARIANT_TAG() [29/45]

VARIANT_TAG ( binary_archive  ,
rct::multisig_kLRki  ,
0x9d   
)

◆ VARIANT_TAG() [30/45]

VARIANT_TAG ( binary_archive  ,
rct::multisig_out  ,
0x9e   
)

◆ VARIANT_TAG() [31/45]

VARIANT_TAG ( json_archive  ,
rct::key  ,
"rct_key"   
)

◆ VARIANT_TAG() [32/45]

VARIANT_TAG ( json_archive  ,
rct::key64  ,
"rct_key64"   
)

◆ VARIANT_TAG() [33/45]

VARIANT_TAG ( json_archive  ,
rct::keyV  ,
"rct_keyV"   
)

◆ VARIANT_TAG() [34/45]

VARIANT_TAG ( json_archive  ,
rct::keyM  ,
"rct_keyM"   
)

◆ VARIANT_TAG() [35/45]

VARIANT_TAG ( json_archive  ,
rct::ctkey  ,
"rct_ctkey"   
)

◆ VARIANT_TAG() [36/45]

VARIANT_TAG ( json_archive  ,
rct::ctkeyV  ,
"rct_ctkeyV"   
)

◆ VARIANT_TAG() [37/45]

VARIANT_TAG ( json_archive  ,
rct::ctkeyM  ,
"rct_ctkeyM"   
)

◆ VARIANT_TAG() [38/45]

VARIANT_TAG ( json_archive  ,
rct::ecdhTuple  ,
"rct_ecdhTuple"   
)

◆ VARIANT_TAG() [39/45]

VARIANT_TAG ( json_archive  ,
rct::mgSig  ,
"rct_mgSig"   
)

◆ VARIANT_TAG() [40/45]

VARIANT_TAG ( json_archive  ,
rct::rangeSig  ,
"rct_rangeSig"   
)

◆ VARIANT_TAG() [41/45]

VARIANT_TAG ( json_archive  ,
rct::boroSig  ,
"rct_boroSig"   
)

◆ VARIANT_TAG() [42/45]

VARIANT_TAG ( json_archive  ,
rct::rctSig  ,
"rct_rctSig"   
)

◆ VARIANT_TAG() [43/45]

VARIANT_TAG ( json_archive  ,
rct::Bulletproof  ,
"rct_bulletproof"   
)

◆ VARIANT_TAG() [44/45]

VARIANT_TAG ( json_archive  ,
rct::multisig_kLRki  ,
"rct_multisig_kLR"   
)

◆ VARIANT_TAG() [45/45]

VARIANT_TAG ( json_archive  ,
rct::multisig_out  ,
"rct_multisig_out"   
)