Electroneum
Loading...
Searching...
No Matches
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

namespace  rct
namespace  cryptonote
 Holds cryptonote related classes and helpers.
namespace  std
 STL namespace.

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< keyVrct::keyM
typedef std::vector< ctkeyrct::ctkeyV
typedef std::vector< ctkeyVrct::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 (bool a)
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::boroSig )

◆ BLOB_SERIALIZER() [2/5]

BLOB_SERIALIZER ( rct::ctkey )

◆ BLOB_SERIALIZER() [3/5]

BLOB_SERIALIZER ( rct::key )

◆ BLOB_SERIALIZER() [4/5]

BLOB_SERIALIZER ( rct::key64 )

◆ BLOB_SERIALIZER() [5/5]

BLOB_SERIALIZER ( rct::multisig_kLRki )

◆ VARIANT_TAG() [1/45]

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

◆ VARIANT_TAG() [2/45]

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

◆ VARIANT_TAG() [3/45]

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

◆ VARIANT_TAG() [4/45]

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

◆ VARIANT_TAG() [5/45]

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

◆ VARIANT_TAG() [6/45]

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

◆ VARIANT_TAG() [7/45]

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

◆ VARIANT_TAG() [8/45]

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

◆ VARIANT_TAG() [9/45]

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

◆ VARIANT_TAG() [10/45]

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

◆ VARIANT_TAG() [11/45]

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

◆ VARIANT_TAG() [12/45]

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

◆ VARIANT_TAG() [13/45]

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

◆ VARIANT_TAG() [14/45]

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

◆ VARIANT_TAG() [15/45]

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

◆ VARIANT_TAG() [16/45]

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

◆ VARIANT_TAG() [17/45]

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

◆ VARIANT_TAG() [18/45]

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

◆ VARIANT_TAG() [19/45]

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

◆ VARIANT_TAG() [20/45]

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

◆ VARIANT_TAG() [21/45]

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

◆ VARIANT_TAG() [22/45]

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

◆ VARIANT_TAG() [23/45]

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

◆ VARIANT_TAG() [24/45]

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

◆ VARIANT_TAG() [25/45]

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

◆ VARIANT_TAG() [26/45]

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

◆ VARIANT_TAG() [27/45]

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

◆ VARIANT_TAG() [28/45]

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

◆ VARIANT_TAG() [29/45]

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

◆ VARIANT_TAG() [30/45]

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

◆ VARIANT_TAG() [31/45]

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

◆ VARIANT_TAG() [32/45]

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

◆ VARIANT_TAG() [33/45]

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

◆ VARIANT_TAG() [34/45]

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

◆ VARIANT_TAG() [35/45]

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

◆ VARIANT_TAG() [36/45]

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

◆ VARIANT_TAG() [37/45]

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

◆ VARIANT_TAG() [38/45]

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

◆ VARIANT_TAG() [39/45]

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

◆ VARIANT_TAG() [40/45]

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

◆ VARIANT_TAG() [41/45]

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

◆ VARIANT_TAG() [42/45]

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

◆ VARIANT_TAG() [43/45]

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

◆ VARIANT_TAG() [44/45]

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

◆ VARIANT_TAG() [45/45]

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