mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #1227 from wingyplus/remove_secure_vector
Removed 'secure_vector'
This commit is contained in:
commit
482807f60a
@ -87,47 +87,6 @@ using bytes = std::vector<byte>;
|
||||
using bytesRef = vector_ref<byte>;
|
||||
using bytesConstRef = vector_ref<byte const>;
|
||||
|
||||
template <class T>
|
||||
class secure_vector
|
||||
{
|
||||
public:
|
||||
secure_vector() {}
|
||||
secure_vector(secure_vector<T> const& /*_c*/) = default; // See https://github.com/ethereum/libweb3core/pull/44
|
||||
explicit secure_vector(unsigned _size): m_data(_size) {}
|
||||
explicit secure_vector(unsigned _size, T _item): m_data(_size, _item) {}
|
||||
explicit secure_vector(std::vector<T> const& _c): m_data(_c) {}
|
||||
explicit secure_vector(vector_ref<T> _c): m_data(_c.data(), _c.data() + _c.size()) {}
|
||||
explicit secure_vector(vector_ref<const T> _c): m_data(_c.data(), _c.data() + _c.size()) {}
|
||||
~secure_vector() { ref().cleanse(); }
|
||||
|
||||
secure_vector<T>& operator=(secure_vector<T> const& _c)
|
||||
{
|
||||
if (&_c == this)
|
||||
return *this;
|
||||
|
||||
ref().cleanse();
|
||||
m_data = _c.m_data;
|
||||
return *this;
|
||||
}
|
||||
std::vector<T>& writable() { clear(); return m_data; }
|
||||
std::vector<T> const& makeInsecure() const { return m_data; }
|
||||
|
||||
void clear() { ref().cleanse(); }
|
||||
|
||||
vector_ref<T> ref() { return vector_ref<T>(&m_data); }
|
||||
vector_ref<T const> ref() const { return vector_ref<T const>(&m_data); }
|
||||
|
||||
size_t size() const { return m_data.size(); }
|
||||
bool empty() const { return m_data.empty(); }
|
||||
|
||||
void swap(secure_vector<T>& io_other) { m_data.swap(io_other.m_data); }
|
||||
|
||||
private:
|
||||
std::vector<T> m_data;
|
||||
};
|
||||
|
||||
using bytesSec = secure_vector<byte>;
|
||||
|
||||
// Numeric types.
|
||||
using bigint = boost::multiprecision::number<boost::multiprecision::cpp_int_backend<>>;
|
||||
using u64 = boost::multiprecision::number<boost::multiprecision::cpp_int_backend<64, 64, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void>>;
|
||||
|
Loading…
Reference in New Issue
Block a user