|
|
@ -84,33 +84,17 @@ public: |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
static constexpr size_t SAPLING_ENC_CIPHERTEXT_SIZE = ( |
|
|
|
1 + // leading byte
|
|
|
|
11 + // d
|
|
|
|
8 + // value
|
|
|
|
32 + // rcm
|
|
|
|
ZC_MEMO_SIZE + // memo
|
|
|
|
NOTEENCRYPTION_AUTH_BYTES); |
|
|
|
|
|
|
|
static constexpr size_t SAPLING_OUT_CIPHERTEXT_SIZE = ( |
|
|
|
32 + // pkd_new
|
|
|
|
32 + // esk
|
|
|
|
NOTEENCRYPTION_AUTH_BYTES); |
|
|
|
|
|
|
|
/**
|
|
|
|
* A shielded output to a transaction. It contains data that describes an Output transfer. |
|
|
|
*/ |
|
|
|
class OutputDescription |
|
|
|
{ |
|
|
|
public: |
|
|
|
typedef std::array<unsigned char, SAPLING_ENC_CIPHERTEXT_SIZE> sapling_enc_ct_t; // TODO: Replace with actual type
|
|
|
|
typedef std::array<unsigned char, SAPLING_OUT_CIPHERTEXT_SIZE> sapling_out_ct_t; // TODO: Replace with actual type
|
|
|
|
|
|
|
|
uint256 cv; //!< A value commitment to the value of the output note.
|
|
|
|
uint256 cm; //!< The note commitment for the output note.
|
|
|
|
uint256 ephemeralKey; //!< A Jubjub public key.
|
|
|
|
sapling_enc_ct_t encCiphertext; //!< A ciphertext component for the encrypted output note.
|
|
|
|
sapling_out_ct_t outCiphertext; //!< A ciphertext component for the encrypted output note.
|
|
|
|
libzcash::SaplingEncCiphertext encCiphertext; //!< A ciphertext component for the encrypted output note.
|
|
|
|
libzcash::SaplingOutCiphertext outCiphertext; //!< A ciphertext component for the encrypted output note.
|
|
|
|
libzcash::GrothProof zkproof; //!< A zero-knowledge proof using the output circuit.
|
|
|
|
|
|
|
|
OutputDescription() { } |
|
|
|