forked from lthn/blockchain
crypto serialization code re-arranged, bpp_signature_serialized introduced
This commit is contained in:
parent
10ed5dc433
commit
d692c83d14
6 changed files with 66 additions and 74 deletions
|
|
@ -1,11 +1,9 @@
|
|||
// Copyright (c) 2014-2018 Zano Project
|
||||
// Copyright (c) 2014-2022 Zano Project
|
||||
// Copyright (c) 2014-2018 The Louisdor Project
|
||||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <boost/serialization/vector.hpp>
|
||||
#include <boost/serialization/utility.hpp>
|
||||
#include <boost/serialization/variant.hpp>
|
||||
|
|
@ -13,7 +11,65 @@
|
|||
#include <boost/serialization/map.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/serialization/is_bitwise_serializable.hpp>
|
||||
|
||||
#include "serialization/serialization.h"
|
||||
#include "serialization/debug_archive.h"
|
||||
#include "crypto/chacha8.h"
|
||||
#include "crypto/crypto.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "crypto/range_proofs.h"
|
||||
#include "boost_serialization_maps.h"
|
||||
|
||||
//
|
||||
// binary serialization
|
||||
//
|
||||
|
||||
namespace crypto
|
||||
{
|
||||
struct bpp_signature_serialized : public crypto::bppe_signature
|
||||
{
|
||||
BEGIN_SERIALIZE_OBJECT()
|
||||
FIELD(L)
|
||||
FIELD(R)
|
||||
FIELD(A0)
|
||||
FIELD(A)
|
||||
FIELD(B)
|
||||
FIELD(r)
|
||||
FIELD(s)
|
||||
FIELD(delta)
|
||||
END_SERIALIZE()
|
||||
|
||||
BEGIN_BOOST_SERIALIZATION()
|
||||
BOOST_SERIALIZE(L)
|
||||
BOOST_SERIALIZE(R)
|
||||
BOOST_SERIALIZE(A0)
|
||||
BOOST_SERIALIZE(A)
|
||||
BOOST_SERIALIZE(B)
|
||||
BOOST_SERIALIZE(r)
|
||||
BOOST_SERIALIZE(s)
|
||||
BOOST_SERIALIZE(delta)
|
||||
END_BOOST_SERIALIZATION()
|
||||
};
|
||||
}
|
||||
|
||||
BLOB_SERIALIZER(crypto::chacha8_iv);
|
||||
BLOB_SERIALIZER(crypto::hash);
|
||||
BLOB_SERIALIZER(crypto::public_key);
|
||||
BLOB_SERIALIZER(crypto::secret_key);
|
||||
BLOB_SERIALIZER(crypto::key_derivation);
|
||||
BLOB_SERIALIZER(crypto::key_image);
|
||||
BLOB_SERIALIZER(crypto::signature);
|
||||
VARIANT_TAG(debug_archive, crypto::hash, "hash");
|
||||
VARIANT_TAG(debug_archive, crypto::public_key, "public_key");
|
||||
VARIANT_TAG(debug_archive, crypto::secret_key, "secret_key");
|
||||
VARIANT_TAG(debug_archive, crypto::key_derivation, "key_derivation");
|
||||
VARIANT_TAG(debug_archive, crypto::key_image, "key_image");
|
||||
VARIANT_TAG(debug_archive, crypto::signature, "signature");
|
||||
|
||||
|
||||
//
|
||||
// Boost serialization
|
||||
//
|
||||
|
||||
namespace boost
|
||||
{
|
||||
|
|
@ -51,7 +107,5 @@ namespace boost
|
|||
{
|
||||
a & reinterpret_cast<char (&)[sizeof(crypto::hash)]>(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//}
|
||||
} // namespace serialization
|
||||
} // namespace boost
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
#include <boost/foreach.hpp>
|
||||
#include <boost/serialization/is_bitwise_serializable.hpp>
|
||||
#include "common/unordered_containers_boost_serialization.h"
|
||||
#include "common/crypto_boost_serialization.h"
|
||||
#include "common/crypto_serialization.h"
|
||||
#include "offers_service_basics.h"
|
||||
#include "offers_services_helpers.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
#include "include_base_utils.h"
|
||||
|
||||
#include "serialization/binary_archive.h"
|
||||
#include "serialization/crypto.h"
|
||||
#include "serialization/stl_containers.h"
|
||||
#include "serialization/serialization.h"
|
||||
#include "serialization/variant.h"
|
||||
|
|
@ -37,9 +36,11 @@
|
|||
#include "currency_config.h"
|
||||
#include "crypto/crypto.h"
|
||||
#include "crypto/hash.h"
|
||||
#include "crypto/range_proofs.h"
|
||||
#include "misc_language.h"
|
||||
#include "block_flags.h"
|
||||
#include "etc_custom_serialization.h"
|
||||
#include "common/crypto_serialization.h"
|
||||
|
||||
namespace currency
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include <boost/serialization/is_bitwise_serializable.hpp>
|
||||
#include "currency_basic.h"
|
||||
#include "common/unordered_containers_boost_serialization.h"
|
||||
#include "common/crypto_boost_serialization.h"
|
||||
#include "common/crypto_serialization.h"
|
||||
#include "offers_services_helpers.h"
|
||||
|
||||
#define CURRENT_BLOCK_ARCHIVE_VER 2
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#pragma once
|
||||
#include "p2p_protocol_defs.h"
|
||||
#include "common/crypto_boost_serialization.h"
|
||||
#include "common/crypto_serialization.h"
|
||||
|
||||
namespace boost
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,63 +0,0 @@
|
|||
// Copyright (c) 2014-2017 The The Louisdor Project
|
||||
// Copyright (c) 2012-2013 The Cryptonote developers
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include "serialization.h"
|
||||
#include "debug_archive.h"
|
||||
#include "crypto/chacha8.h"
|
||||
#include "crypto/crypto.h"
|
||||
#include "crypto/hash.h"
|
||||
|
||||
/*// read
|
||||
template <template <bool> class Archive>
|
||||
bool do_serialize(Archive<false> &ar, std::vector<crypto::signature> &v)
|
||||
{
|
||||
size_t cnt = v.size();
|
||||
v.clear();
|
||||
|
||||
// very basic sanity check
|
||||
if (ar.remaining_bytes() < cnt*sizeof(crypto::signature)) {
|
||||
ar.stream().setstate(std::ios::failbit);
|
||||
return false;
|
||||
}
|
||||
|
||||
v.reserve(cnt);
|
||||
for (size_t i = 0; i < cnt; i++) {
|
||||
v.resize(i+1);
|
||||
ar.serialize_blob(&(v[i]), sizeof(crypto::signature), "");
|
||||
if (!ar.stream().good())
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// write
|
||||
template <template <bool> class Archive>
|
||||
bool do_serialize(Archive<true> &ar, std::vector<crypto::signature> &v)
|
||||
{
|
||||
if (0 == v.size()) return true;
|
||||
ar.begin_string();
|
||||
size_t cnt = v.size();
|
||||
for (size_t i = 0; i < cnt; i++) {
|
||||
ar.serialize_blob(&(v[i]), sizeof(crypto::signature), "");
|
||||
if (!ar.stream().good())
|
||||
return false;
|
||||
}
|
||||
ar.end_string();
|
||||
return true;
|
||||
}*/
|
||||
|
||||
BLOB_SERIALIZER(crypto::chacha8_iv);
|
||||
BLOB_SERIALIZER(crypto::hash);
|
||||
BLOB_SERIALIZER(crypto::public_key);
|
||||
BLOB_SERIALIZER(crypto::secret_key);
|
||||
BLOB_SERIALIZER(crypto::key_derivation);
|
||||
BLOB_SERIALIZER(crypto::key_image);
|
||||
BLOB_SERIALIZER(crypto::signature);
|
||||
VARIANT_TAG(debug_archive, crypto::hash, "hash");
|
||||
VARIANT_TAG(debug_archive, crypto::public_key, "public_key");
|
||||
VARIANT_TAG(debug_archive, crypto::secret_key, "secret_key");
|
||||
VARIANT_TAG(debug_archive, crypto::key_derivation, "key_derivation");
|
||||
VARIANT_TAG(debug_archive, crypto::key_image, "key_image");
|
||||
VARIANT_TAG(debug_archive, crypto::signature, "signature");
|
||||
Loading…
Add table
Reference in a new issue