Changeset View
Changeset View
Standalone View
Standalone View
src/pubkey.h
Show First 20 Lines • Show All 117 Lines • ▼ Show 20 Lines | template <typename Stream> void Serialize(Stream &s) const { | ||||
unsigned int len = size(); | unsigned int len = size(); | ||||
::WriteCompactSize(s, len); | ::WriteCompactSize(s, len); | ||||
s.write((char *)vch, len); | s.write((char *)vch, len); | ||||
} | } | ||||
template <typename Stream> void Unserialize(Stream &s) { | template <typename Stream> void Unserialize(Stream &s) { | ||||
unsigned int len = ::ReadCompactSize(s); | unsigned int len = ::ReadCompactSize(s); | ||||
if (len <= SIZE) { | if (len <= SIZE) { | ||||
s.read((char *)vch, len); | s.read((char *)vch, len); | ||||
if (len != size()) { | |||||
Invalidate(); | |||||
} | |||||
} else { | } else { | ||||
// invalid pubkey, skip available data | // invalid pubkey, skip available data | ||||
char dummy; | char dummy; | ||||
while (len--) { | while (len--) { | ||||
s.read(&dummy, 1); | s.read(&dummy, 1); | ||||
} | } | ||||
Invalidate(); | Invalidate(); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 100 Lines • Show Last 20 Lines |