@@ -70,7 +70,7 @@ private: | |||
template<class T, Prehashed Ph> friend class Signing; | |||
template<class T, Prehashed Ph> friend class Verification; | |||
void init() throw(LengthException) { | |||
void init() /*throw(LengthException)*/ { | |||
Super::reset(); | |||
if (context_.size() > 255) { | |||
@@ -85,7 +85,7 @@ public: | |||
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; | |||
/** Create the prehash */ | |||
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) { | |||
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ { | |||
context_ = context; | |||
init(); | |||
} | |||
@@ -94,14 +94,14 @@ public: | |||
void reset() DECAF_NOEXCEPT { init(); } | |||
/** Output from this hash */ | |||
SecureBuffer final() throw(std::bad_alloc) { | |||
SecureBuffer final() /*throw(std::bad_alloc)*/ { | |||
SecureBuffer ret = Super::final(OUTPUT_BYTES); | |||
reset(); | |||
return ret; | |||
} | |||
/** Output from this hash */ | |||
void final(Buffer &b) throw(LengthException) { | |||
void final(Buffer &b) /*throw(LengthException)*/ { | |||
if (b.size() != OUTPUT_BYTES) throw LengthException(); | |||
Super::final(b); | |||
reset(); | |||
@@ -70,7 +70,7 @@ private: | |||
template<class T, Prehashed Ph> friend class Signing; | |||
template<class T, Prehashed Ph> friend class Verification; | |||
void init() throw(LengthException) { | |||
void init() /*throw(LengthException)*/ { | |||
Super::reset(); | |||
if (context_.size() > 255) { | |||
@@ -85,7 +85,7 @@ public: | |||
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; | |||
/** Create the prehash */ | |||
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) { | |||
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ { | |||
context_ = context; | |||
init(); | |||
} | |||
@@ -94,14 +94,14 @@ public: | |||
void reset() DECAF_NOEXCEPT { init(); } | |||
/** Output from this hash */ | |||
SecureBuffer final() throw(std::bad_alloc) { | |||
SecureBuffer final() /*throw(std::bad_alloc)*/ { | |||
SecureBuffer ret = Super::final(OUTPUT_BYTES); | |||
reset(); | |||
return ret; | |||
} | |||
/** Output from this hash */ | |||
void final(Buffer &b) throw(LengthException) { | |||
void final(Buffer &b) /*throw(LengthException)*/ { | |||
if (b.size() != OUTPUT_BYTES) throw LengthException(); | |||
Super::final(b); | |||
reset(); | |||
@@ -186,7 +186,7 @@ public: | |||
/** Invert with Fermat's Little Theorem (slow!). If *this == 0, | |||
* throw CryptoException. */ | |||
inline Scalar inverse() const throw(CryptoException) { | |||
inline Scalar inverse() const /*throw(CryptoException)*/ { | |||
Scalar r; | |||
if (DECAF_SUCCESS != decaf_255_scalar_invert(r.s,s)) { | |||
throw CryptoException(); | |||
@@ -202,10 +202,10 @@ public: | |||
} | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar operator/ (const Scalar &q) const throw(CryptoException) { return *this * q.inverse(); } | |||
inline Scalar operator/ (const Scalar &q) const /*throw(CryptoException)*/ { return *this * q.inverse(); } | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar &operator/=(const Scalar &q) throw(CryptoException) { return *this *= q.inverse(); } | |||
inline Scalar &operator/=(const Scalar &q) /*throw(CryptoException)*/ { return *this *= q.inverse(); } | |||
/** Return half this scalar. Much faster than /2. */ | |||
inline Scalar half() const { Scalar out; decaf_255_scalar_halve(out.s,s); return out; } | |||
@@ -227,7 +227,7 @@ public: | |||
const Block &in, | |||
decaf_bool_t allow_identity=DECAF_FALSE, | |||
decaf_bool_t short_circuit=DECAF_TRUE | |||
) const throw(CryptoException); | |||
) const /*throw(CryptoException)*/; | |||
}; | |||
/** | |||
@@ -300,7 +300,7 @@ public: | |||
* or was the identity and allow_identity was DECAF_FALSE. | |||
*/ | |||
inline explicit Point(const FixedBlock<SER_BYTES> &buffer, decaf_bool_t allow_identity=DECAF_TRUE) | |||
throw(CryptoException) { | |||
/*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode(buffer,allow_identity)) { | |||
throw CryptoException(); | |||
} | |||
@@ -336,7 +336,7 @@ public: | |||
inline void decode_like_eddsa_and_ignore_cofactor ( | |||
const FixedBlock<DECAF_EDDSA_25519_PUBLIC_BYTES> &buffer | |||
) throw(CryptoException) { | |||
) /*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode_like_eddsa_and_ignore_cofactor_noexcept(buffer)) throw(CryptoException()); | |||
} | |||
@@ -430,10 +430,10 @@ public: | |||
inline Point &operator*=(const Scalar &s) DECAF_NOEXCEPT { decaf_255_point_scalarmul(p,p,s.s); return *this; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point &operator/=(const Scalar &s) throw(CryptoException) { return (*this) *= s.inverse(); } | |||
inline Point &operator/=(const Scalar &s) /*throw(CryptoException)*/ { return (*this) *= s.inverse(); } | |||
/** Validate / sanity check */ | |||
inline bool validate() const DECAF_NOEXCEPT { return decaf_255_point_valid(p); } | |||
@@ -518,7 +518,7 @@ public: | |||
} | |||
/** Steganographically encode this */ | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const /*throw(std::bad_alloc, LengthException)*/ { | |||
if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException(); | |||
SecureBuffer out(STEG_BYTES); | |||
decaf_error_t done; | |||
@@ -596,7 +596,7 @@ public: | |||
/** | |||
* Initilaize from point. Must allocate memory, and may throw. | |||
*/ | |||
inline Precomputed &operator=(const Point &it) throw(std::bad_alloc) { | |||
inline Precomputed &operator=(const Point &it) /*throw(std::bad_alloc)*/ { | |||
alloc(); | |||
decaf_255_precompute(ours.mine,it.p); | |||
return *this; | |||
@@ -605,20 +605,20 @@ public: | |||
/** | |||
* Copy constructor. | |||
*/ | |||
inline Precomputed(const Precomputed &it) throw(std::bad_alloc) | |||
inline Precomputed(const Precomputed &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** | |||
* Constructor which initializes from point. | |||
*/ | |||
inline explicit Precomputed(const Point &it) throw(std::bad_alloc) | |||
inline explicit Precomputed(const Point &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** Fixed base scalarmul. */ | |||
inline Point operator* (const Scalar &s) const DECAF_NOEXCEPT { Point r; decaf_255_precomputed_scalarmul(r.p,get(),s.s); return r; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Return the table for the base point. */ | |||
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } | |||
@@ -649,7 +649,7 @@ public: | |||
static inline SecureBuffer shared_secret( | |||
const FixedBlock<PUBLIC_BYTES> &pk, | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc,CryptoException) { | |||
) /*throw(std::bad_alloc,CryptoException)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
if (DECAF_SUCCESS != decaf_x25519(out.data(), pk.data(), scalar.data())) { | |||
throw CryptoException(); | |||
@@ -674,7 +674,7 @@ public: | |||
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") | |||
generate_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x25519_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -685,7 +685,7 @@ public: | |||
*/ | |||
static inline SecureBuffer derive_public_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x25519_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -722,7 +722,7 @@ inline SecureBuffer IsoEd25519::Scalar::direct_scalarmul ( | |||
const Block &in, | |||
decaf_bool_t allow_identity, | |||
decaf_bool_t short_circuit | |||
) const throw(CryptoException) { | |||
) const /*throw(CryptoException)*/ { | |||
SecureBuffer out(IsoEd25519::Point::SER_BYTES); | |||
if (DECAF_SUCCESS != | |||
decaf_255_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) | |||
@@ -186,7 +186,7 @@ public: | |||
/** Invert with Fermat's Little Theorem (slow!). If *this == 0, | |||
* throw CryptoException. */ | |||
inline Scalar inverse() const throw(CryptoException) { | |||
inline Scalar inverse() const /*throw(CryptoException)*/ { | |||
Scalar r; | |||
if (DECAF_SUCCESS != decaf_448_scalar_invert(r.s,s)) { | |||
throw CryptoException(); | |||
@@ -202,10 +202,10 @@ public: | |||
} | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar operator/ (const Scalar &q) const throw(CryptoException) { return *this * q.inverse(); } | |||
inline Scalar operator/ (const Scalar &q) const /*throw(CryptoException)*/ { return *this * q.inverse(); } | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar &operator/=(const Scalar &q) throw(CryptoException) { return *this *= q.inverse(); } | |||
inline Scalar &operator/=(const Scalar &q) /*throw(CryptoException)*/ { return *this *= q.inverse(); } | |||
/** Return half this scalar. Much faster than /2. */ | |||
inline Scalar half() const { Scalar out; decaf_448_scalar_halve(out.s,s); return out; } | |||
@@ -227,7 +227,7 @@ public: | |||
const Block &in, | |||
decaf_bool_t allow_identity=DECAF_FALSE, | |||
decaf_bool_t short_circuit=DECAF_TRUE | |||
) const throw(CryptoException); | |||
) const /*throw(CryptoException)*/; | |||
}; | |||
/** | |||
@@ -300,7 +300,7 @@ public: | |||
* or was the identity and allow_identity was DECAF_FALSE. | |||
*/ | |||
inline explicit Point(const FixedBlock<SER_BYTES> &buffer, decaf_bool_t allow_identity=DECAF_TRUE) | |||
throw(CryptoException) { | |||
/*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode(buffer,allow_identity)) { | |||
throw CryptoException(); | |||
} | |||
@@ -336,7 +336,7 @@ public: | |||
inline void decode_like_eddsa_and_ignore_cofactor ( | |||
const FixedBlock<DECAF_EDDSA_448_PUBLIC_BYTES> &buffer | |||
) throw(CryptoException) { | |||
) /*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode_like_eddsa_and_ignore_cofactor_noexcept(buffer)) throw(CryptoException()); | |||
} | |||
@@ -430,10 +430,10 @@ public: | |||
inline Point &operator*=(const Scalar &s) DECAF_NOEXCEPT { decaf_448_point_scalarmul(p,p,s.s); return *this; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point &operator/=(const Scalar &s) throw(CryptoException) { return (*this) *= s.inverse(); } | |||
inline Point &operator/=(const Scalar &s) /*throw(CryptoException)*/ { return (*this) *= s.inverse(); } | |||
/** Validate / sanity check */ | |||
inline bool validate() const DECAF_NOEXCEPT { return decaf_448_point_valid(p); } | |||
@@ -518,7 +518,7 @@ public: | |||
} | |||
/** Steganographically encode this */ | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const /*throw(std::bad_alloc, LengthException)*/ { | |||
if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException(); | |||
SecureBuffer out(STEG_BYTES); | |||
decaf_error_t done; | |||
@@ -596,7 +596,7 @@ public: | |||
/** | |||
* Initilaize from point. Must allocate memory, and may throw. | |||
*/ | |||
inline Precomputed &operator=(const Point &it) throw(std::bad_alloc) { | |||
inline Precomputed &operator=(const Point &it) /*throw(std::bad_alloc)*/ { | |||
alloc(); | |||
decaf_448_precompute(ours.mine,it.p); | |||
return *this; | |||
@@ -605,20 +605,20 @@ public: | |||
/** | |||
* Copy constructor. | |||
*/ | |||
inline Precomputed(const Precomputed &it) throw(std::bad_alloc) | |||
inline Precomputed(const Precomputed &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** | |||
* Constructor which initializes from point. | |||
*/ | |||
inline explicit Precomputed(const Point &it) throw(std::bad_alloc) | |||
inline explicit Precomputed(const Point &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** Fixed base scalarmul. */ | |||
inline Point operator* (const Scalar &s) const DECAF_NOEXCEPT { Point r; decaf_448_precomputed_scalarmul(r.p,get(),s.s); return r; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Return the table for the base point. */ | |||
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } | |||
@@ -649,7 +649,7 @@ public: | |||
static inline SecureBuffer shared_secret( | |||
const FixedBlock<PUBLIC_BYTES> &pk, | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc,CryptoException) { | |||
) /*throw(std::bad_alloc,CryptoException)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
if (DECAF_SUCCESS != decaf_x448(out.data(), pk.data(), scalar.data())) { | |||
throw CryptoException(); | |||
@@ -674,7 +674,7 @@ public: | |||
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") | |||
generate_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x448_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -685,7 +685,7 @@ public: | |||
*/ | |||
static inline SecureBuffer derive_public_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x448_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -722,7 +722,7 @@ inline SecureBuffer Ed448Goldilocks::Scalar::direct_scalarmul ( | |||
const Block &in, | |||
decaf_bool_t allow_identity, | |||
decaf_bool_t short_circuit | |||
) const throw(CryptoException) { | |||
) const /*throw(CryptoException)*/ { | |||
SecureBuffer out(Ed448Goldilocks::Point::SER_BYTES); | |||
if (DECAF_SUCCESS != | |||
decaf_448_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) | |||
@@ -60,7 +60,7 @@ public: | |||
inline T* allocate ( | |||
size_type cnt, | |||
typename std::allocator<void>::const_pointer = 0 | |||
) throw(std::bad_alloc); | |||
) /*throw(std::bad_alloc)*/; | |||
inline void deallocate(T* p, size_t size) DECAF_NOEXCEPT; | |||
inline size_t max_size() const DECAF_NOEXCEPT { return std::numeric_limits<size_t>::max() / sizeof(T); } | |||
inline void construct(T* p, const T& t) { new(p) T(t); } | |||
@@ -93,7 +93,7 @@ public: | |||
} | |||
/** @brief Serialize this object into a SecureBuffer and return it */ | |||
inline SecureBuffer serialize() const throw(std::bad_alloc) { | |||
inline SecureBuffer serialize() const /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(ser_size()); | |||
serialize_into(out.data()); | |||
return out; | |||
@@ -101,7 +101,7 @@ public: | |||
/** Cast operator */ | |||
#if __cplusplus >= 201103L | |||
explicit inline operator SecureBuffer() const throw(std::bad_alloc) { | |||
explicit inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ { | |||
return serialize(); | |||
} | |||
#endif | |||
@@ -147,7 +147,7 @@ public: | |||
virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0; | |||
/** @brief Read into a SecureBuffer. */ | |||
inline SecureBuffer read(size_t length) throw(std::bad_alloc); | |||
inline SecureBuffer read(size_t length) /*throw(std::bad_alloc)*/; | |||
}; | |||
@@ -189,7 +189,7 @@ public: | |||
inline const unsigned char *data() const DECAF_NOEXCEPT { return data_; } | |||
/** Subscript */ | |||
inline const unsigned char &operator[](size_t off) const throw(std::out_of_range) { | |||
inline const unsigned char &operator[](size_t off) const /*throw(std::out_of_range)*/ { | |||
if (off >= size()) throw(std::out_of_range("decaf::Block")); | |||
return data_[off]; | |||
} | |||
@@ -203,7 +203,7 @@ public: | |||
} | |||
/** Slice the buffer*/ | |||
inline Block slice(size_t off, size_t length) const throw(LengthException) { | |||
inline Block slice(size_t off, size_t length) const /*throw(LengthException)*/ { | |||
if (off > size() || length > size() - off) throw LengthException(); | |||
return Block(data()+off, length); | |||
} | |||
@@ -215,7 +215,7 @@ public: | |||
} | |||
/** Create new block from this */ | |||
inline operator SecureBuffer() const throw(std::bad_alloc) { | |||
inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ { | |||
return SecureBuffer(data_,data_+size_); | |||
} | |||
@@ -243,7 +243,7 @@ private: | |||
template<size_t Size> class FixedBlock : public Block { | |||
public: | |||
/** Check a block's length. */ | |||
inline FixedBlock(const Block &b) throw(LengthException) : Block(b.data(),Size) { | |||
inline FixedBlock(const Block &b) /*throw(LengthException)*/ : Block(b.data(),Size) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
@@ -275,16 +275,16 @@ public: | |||
inline unsigned char* data() DECAF_NOEXCEPT { return data_; } | |||
/** Slice the buffer*/ | |||
inline Buffer slice(size_t off, size_t length) throw(LengthException); | |||
inline Buffer slice(size_t off, size_t length) /*throw(LengthException)*/; | |||
/** Subscript */ | |||
inline unsigned char &operator[](size_t off) throw(std::out_of_range) { | |||
inline unsigned char &operator[](size_t off) /*throw(std::out_of_range)*/ { | |||
if (off >= size()) throw(std::out_of_range("decaf::Buffer")); | |||
return data_[off]; | |||
} | |||
/** Copy from another block */ | |||
inline void assign(const Block b) throw(LengthException) { | |||
inline void assign(const Block b) /*throw(LengthException)*/ { | |||
if (b.size() != size()) throw LengthException(); | |||
memmove(data(),b.data(),size()); | |||
} | |||
@@ -300,12 +300,12 @@ private: | |||
template<size_t Size> class FixedBuffer : public Buffer { | |||
public: | |||
/** Check a block's length. */ | |||
inline FixedBuffer(Buffer b) throw(LengthException) : Buffer(b) { | |||
inline FixedBuffer(Buffer b) /*throw(LengthException)*/ : Buffer(b) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
/** Check a block's length. */ | |||
inline FixedBuffer(SecureBuffer &b) throw(LengthException) : Buffer(b) { | |||
inline FixedBuffer(SecureBuffer &b) /*throw(LengthException)*/ : Buffer(b) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
@@ -355,12 +355,12 @@ public: | |||
} | |||
/** Copy operator */ | |||
inline FixedArrayBuffer& operator=(const Block &b) throw(LengthException) { | |||
inline FixedArrayBuffer& operator=(const Block &b) /*throw(LengthException)*/ { | |||
*this = FixedBlock<Size>(b); | |||
} | |||
/** Copy constructor */ | |||
inline explicit FixedArrayBuffer(const Block &b) throw(LengthException) : FixedBuffer<Size>(storage,true) { | |||
inline explicit FixedArrayBuffer(const Block &b) /*throw(LengthException)*/ : FixedBuffer<Size>(storage,true) { | |||
if (b.size() != Size) throw LengthException(); | |||
memcpy(storage,b.data(),Size); | |||
} | |||
@@ -375,12 +375,12 @@ public: | |||
}; | |||
/** @cond internal */ | |||
Buffer Buffer::slice(size_t off, size_t length) throw(LengthException) { | |||
Buffer Buffer::slice(size_t off, size_t length) /*throw(LengthException)*/ { | |||
if (off > size() || length > size() - off) throw LengthException(); | |||
return Buffer(data()+off, length); | |||
} | |||
inline SecureBuffer Rng::read(size_t length) throw(std::bad_alloc) { | |||
inline SecureBuffer Rng::read(size_t length) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(length); read(out); return out; | |||
} | |||
/** @endcond */ | |||
@@ -406,7 +406,7 @@ protected: | |||
is_mine = false; | |||
} | |||
} | |||
inline void alloc() throw(std::bad_alloc) { | |||
inline void alloc() /*throw(std::bad_alloc)*/ { | |||
if (is_mine) return; | |||
int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size()); | |||
if (ret || !ours.mine) { | |||
@@ -427,7 +427,7 @@ protected: | |||
/** | |||
* @brief Assign. This may require an allocation and memcpy. | |||
*/ | |||
inline T &operator=(const OwnedOrUnowned &it) throw(std::bad_alloc) { | |||
inline T &operator=(const OwnedOrUnowned &it) /*throw(std::bad_alloc)*/ { | |||
if (this == &it) return *(T*)this; | |||
if (it.is_mine) { | |||
alloc(); | |||
@@ -463,7 +463,7 @@ template<typename T, size_t alignment> | |||
T* SanitizingAllocator<T,alignment>::allocate ( | |||
size_type cnt, | |||
typename std::allocator<void>::const_pointer | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
void *v; | |||
int ret = 0; | |||
@@ -59,7 +59,7 @@ public: | |||
inline SHA512 &operator+=(const Block &s) { return *this << s; } | |||
/** @brief Output bytes from the SHA context, and resets it. */ | |||
inline void final(Buffer b) throw(LengthException) { | |||
inline void final(Buffer b) /*throw(LengthException)*/ { | |||
if (b.size() > OUTPUT_BYTES) throw LengthException(); | |||
decaf_sha512_final(wrapped,b.data(),b.size()); | |||
} | |||
@@ -68,7 +68,7 @@ public: | |||
inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); } | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer final(size_t len = OUTPUT_BYTES) throw(LengthException) { | |||
inline SecureBuffer final(size_t len = OUTPUT_BYTES) /*throw(LengthException)*/ { | |||
if (len > OUTPUT_BYTES) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
decaf_sha512_final(wrapped,buffer.data(),len); | |||
@@ -85,7 +85,7 @@ public: | |||
static inline SecureBuffer hash ( | |||
const Block &message, | |||
size_t outlen = OUTPUT_BYTES | |||
) throw(LengthException, std::bad_alloc) { | |||
) /*throw(LengthException, std::bad_alloc)*/ { | |||
if (outlen > OUTPUT_BYTES) throw LengthException(); | |||
SecureBuffer buffer(outlen); | |||
decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size()); | |||
@@ -55,7 +55,7 @@ public: | |||
inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; } | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer output(size_t len) throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer output(size_t len) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (len > max_output_size()) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) { | |||
@@ -65,7 +65,7 @@ public: | |||
} | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer final(size_t len) throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer final(size_t len) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (len > max_output_size()) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,buffer.data(),len)) { | |||
@@ -77,7 +77,7 @@ public: | |||
/** @brief Output bytes from the sponge. Throw LengthException if you've | |||
* output too many bytes from a SHA-3 instance. | |||
*/ | |||
inline void output(Buffer b) throw(LengthException) { | |||
inline void output(Buffer b) /*throw(LengthException)*/ { | |||
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,b.data(),b.size())) { | |||
throw LengthException(); | |||
} | |||
@@ -86,7 +86,7 @@ public: | |||
/** @brief Output bytes from the sponge and reinitialize it. Throw | |||
* LengthException if you've output too many bytes from a SHA3 instance. | |||
*/ | |||
inline void final(Buffer b) throw(LengthException) { | |||
inline void final(Buffer b) /*throw(LengthException)*/ { | |||
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,b.data(),b.size())) { | |||
throw LengthException(); | |||
} | |||
@@ -103,12 +103,12 @@ public: | |||
} | |||
/** Output the default number of bytes. */ | |||
inline SecureBuffer output() throw(std::bad_alloc,LengthException) { | |||
inline SecureBuffer output() /*throw(std::bad_alloc,LengthException)*/ { | |||
return output(default_output_size()); | |||
} | |||
/** Output the default number of bytes, and reset hash. */ | |||
inline SecureBuffer final() throw(std::bad_alloc,LengthException) { | |||
inline SecureBuffer final() /*throw(std::bad_alloc,LengthException)*/ { | |||
return final(default_output_size()); | |||
} | |||
@@ -138,7 +138,7 @@ public: | |||
/** Hash bytes with this SHA3 instance. | |||
* @throw LengthException if nbytes > MAX_OUTPUT_BYTES | |||
*/ | |||
static inline SecureBuffer hash(const Block &b, size_t nbytes = MAX_OUTPUT_BYTES) throw(std::bad_alloc, LengthException) { | |||
static inline SecureBuffer hash(const Block &b, size_t nbytes = MAX_OUTPUT_BYTES) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (nbytes > MAX_OUTPUT_BYTES) { | |||
throw LengthException(); | |||
} | |||
@@ -168,7 +168,7 @@ public: | |||
inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {} | |||
/** Hash bytes with this SHAKE instance */ | |||
static inline SecureBuffer hash(const Block &b, size_t outlen) throw(std::bad_alloc) { | |||
static inline SecureBuffer hash(const Block &b, size_t outlen) /*throw(std::bad_alloc)*/ { | |||
SHAKE s; s += b; return s.output(outlen); | |||
} | |||
}; | |||
@@ -66,7 +66,7 @@ public: | |||
/** Initialize, non-deterministically by default, from C/C++ filename */ | |||
inline SpongeRng( const std::string &in = "/dev/urandom", size_t len = 32, Deterministic det = RANDOM ) | |||
throw(RngException) { | |||
/*throw(RngException)*/ { | |||
decaf_error_t ret = decaf_spongerng_init_from_file(sp,in.c_str(),len,det); | |||
if (!decaf_successful(ret)) { | |||
throw RngException(errno, "Couldn't load from file"); | |||
@@ -54,7 +54,7 @@ private: | |||
template<class T, Prehashed Ph> friend class Signing; | |||
template<class T, Prehashed Ph> friend class Verification; | |||
void init() throw(LengthException) { | |||
void init() /*throw(LengthException)*/ { | |||
Super::reset(); | |||
if (context_.size() > 255) { | |||
@@ -69,7 +69,7 @@ public: | |||
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; | |||
/** Create the prehash */ | |||
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) { | |||
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ { | |||
context_ = context; | |||
init(); | |||
} | |||
@@ -78,14 +78,14 @@ public: | |||
void reset() DECAF_NOEXCEPT { init(); } | |||
/** Output from this hash */ | |||
SecureBuffer final() throw(std::bad_alloc) { | |||
SecureBuffer final() /*throw(std::bad_alloc)*/ { | |||
SecureBuffer ret = Super::final(OUTPUT_BYTES); | |||
reset(); | |||
return ret; | |||
} | |||
/** Output from this hash */ | |||
void final(Buffer &b) throw(LengthException) { | |||
void final(Buffer &b) /*throw(LengthException)*/ { | |||
if (b.size() != OUTPUT_BYTES) throw LengthException(); | |||
Super::final(b); | |||
reset(); | |||
@@ -173,7 +173,7 @@ public: | |||
/** Invert with Fermat's Little Theorem (slow!). If *this == 0, | |||
* throw CryptoException. */ | |||
inline Scalar inverse() const throw(CryptoException) { | |||
inline Scalar inverse() const /*throw(CryptoException)*/ { | |||
Scalar r; | |||
if (DECAF_SUCCESS != $(c_ns)_scalar_invert(r.s,s)) { | |||
throw CryptoException(); | |||
@@ -189,10 +189,10 @@ public: | |||
} | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar operator/ (const Scalar &q) const throw(CryptoException) { return *this * q.inverse(); } | |||
inline Scalar operator/ (const Scalar &q) const /*throw(CryptoException)*/ { return *this * q.inverse(); } | |||
/** Divide by inverting q. If q == 0, return 0. */ | |||
inline Scalar &operator/=(const Scalar &q) throw(CryptoException) { return *this *= q.inverse(); } | |||
inline Scalar &operator/=(const Scalar &q) /*throw(CryptoException)*/ { return *this *= q.inverse(); } | |||
/** Return half this scalar. Much faster than /2. */ | |||
inline Scalar half() const { Scalar out; $(c_ns)_scalar_halve(out.s,s); return out; } | |||
@@ -214,7 +214,7 @@ public: | |||
const Block &in, | |||
decaf_bool_t allow_identity=DECAF_FALSE, | |||
decaf_bool_t short_circuit=DECAF_TRUE | |||
) const throw(CryptoException); | |||
) const /*throw(CryptoException)*/; | |||
}; | |||
/** | |||
@@ -287,7 +287,7 @@ public: | |||
* or was the identity and allow_identity was DECAF_FALSE. | |||
*/ | |||
inline explicit Point(const FixedBlock<SER_BYTES> &buffer, decaf_bool_t allow_identity=DECAF_TRUE) | |||
throw(CryptoException) { | |||
/*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode(buffer,allow_identity)) { | |||
throw CryptoException(); | |||
} | |||
@@ -323,7 +323,7 @@ public: | |||
inline void decode_like_eddsa_and_ignore_cofactor ( | |||
const FixedBlock<DECAF_EDDSA_$(gf_shortname)_PUBLIC_BYTES> &buffer | |||
) throw(CryptoException) { | |||
) /*throw(CryptoException)*/ { | |||
if (DECAF_SUCCESS != decode_like_eddsa_and_ignore_cofactor_noexcept(buffer)) throw(CryptoException()); | |||
} | |||
@@ -417,10 +417,10 @@ public: | |||
inline Point &operator*=(const Scalar &s) DECAF_NOEXCEPT { $(c_ns)_point_scalarmul(p,p,s.s); return *this; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point &operator/=(const Scalar &s) throw(CryptoException) { return (*this) *= s.inverse(); } | |||
inline Point &operator/=(const Scalar &s) /*throw(CryptoException)*/ { return (*this) *= s.inverse(); } | |||
/** Validate / sanity check */ | |||
inline bool validate() const DECAF_NOEXCEPT { return $(c_ns)_point_valid(p); } | |||
@@ -505,7 +505,7 @@ public: | |||
} | |||
/** Steganographically encode this */ | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer steg_encode(Rng &rng, size_t size=STEG_BYTES) const /*throw(std::bad_alloc, LengthException)*/ { | |||
if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException(); | |||
SecureBuffer out(STEG_BYTES); | |||
decaf_error_t done; | |||
@@ -583,7 +583,7 @@ public: | |||
/** | |||
* Initilaize from point. Must allocate memory, and may throw. | |||
*/ | |||
inline Precomputed &operator=(const Point &it) throw(std::bad_alloc) { | |||
inline Precomputed &operator=(const Point &it) /*throw(std::bad_alloc)*/ { | |||
alloc(); | |||
$(c_ns)_precompute(ours.mine,it.p); | |||
return *this; | |||
@@ -592,20 +592,20 @@ public: | |||
/** | |||
* Copy constructor. | |||
*/ | |||
inline Precomputed(const Precomputed &it) throw(std::bad_alloc) | |||
inline Precomputed(const Precomputed &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** | |||
* Constructor which initializes from point. | |||
*/ | |||
inline explicit Precomputed(const Point &it) throw(std::bad_alloc) | |||
inline explicit Precomputed(const Point &it) /*throw(std::bad_alloc)*/ | |||
: OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; } | |||
/** Fixed base scalarmul. */ | |||
inline Point operator* (const Scalar &s) const DECAF_NOEXCEPT { Point r; $(c_ns)_precomputed_scalarmul(r.p,get(),s.s); return r; } | |||
/** Multiply by s.inverse(). If s=0, maps to the identity. */ | |||
inline Point operator/ (const Scalar &s) const throw(CryptoException) { return (*this) * s.inverse(); } | |||
inline Point operator/ (const Scalar &s) const /*throw(CryptoException)*/ { return (*this) * s.inverse(); } | |||
/** Return the table for the base point. */ | |||
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } | |||
@@ -636,7 +636,7 @@ public: | |||
static inline SecureBuffer shared_secret( | |||
const FixedBlock<PUBLIC_BYTES> &pk, | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc,CryptoException) { | |||
) /*throw(std::bad_alloc,CryptoException)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
if (DECAF_SUCCESS != decaf_x$(gf_shortname)(out.data(), pk.data(), scalar.data())) { | |||
throw CryptoException(); | |||
@@ -661,7 +661,7 @@ public: | |||
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") | |||
generate_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -672,7 +672,7 @@ public: | |||
*/ | |||
static inline SecureBuffer derive_public_key( | |||
const FixedBlock<PRIVATE_BYTES> &scalar | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(PUBLIC_BYTES); | |||
decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data()); | |||
return out; | |||
@@ -709,7 +709,7 @@ inline SecureBuffer $(cxx_ns)::Scalar::direct_scalarmul ( | |||
const Block &in, | |||
decaf_bool_t allow_identity, | |||
decaf_bool_t short_circuit | |||
) const throw(CryptoException) { | |||
) const /*throw(CryptoException)*/ { | |||
SecureBuffer out($(cxx_ns)::Point::SER_BYTES); | |||
if (DECAF_SUCCESS != | |||
$(c_ns)_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) | |||
@@ -60,7 +60,7 @@ public: | |||
inline T* allocate ( | |||
size_type cnt, | |||
typename std::allocator<void>::const_pointer = 0 | |||
) throw(std::bad_alloc); | |||
) /*throw(std::bad_alloc)*/; | |||
inline void deallocate(T* p, size_t size) DECAF_NOEXCEPT; | |||
inline size_t max_size() const DECAF_NOEXCEPT { return std::numeric_limits<size_t>::max() / sizeof(T); } | |||
inline void construct(T* p, const T& t) { new(p) T(t); } | |||
@@ -93,7 +93,7 @@ public: | |||
} | |||
/** @brief Serialize this object into a SecureBuffer and return it */ | |||
inline SecureBuffer serialize() const throw(std::bad_alloc) { | |||
inline SecureBuffer serialize() const /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(ser_size()); | |||
serialize_into(out.data()); | |||
return out; | |||
@@ -101,7 +101,7 @@ public: | |||
/** Cast operator */ | |||
#if __cplusplus >= 201103L | |||
explicit inline operator SecureBuffer() const throw(std::bad_alloc) { | |||
explicit inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ { | |||
return serialize(); | |||
} | |||
#endif | |||
@@ -147,7 +147,7 @@ public: | |||
virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0; | |||
/** @brief Read into a SecureBuffer. */ | |||
inline SecureBuffer read(size_t length) throw(std::bad_alloc); | |||
inline SecureBuffer read(size_t length) /*throw(std::bad_alloc)*/; | |||
}; | |||
@@ -189,7 +189,7 @@ public: | |||
inline const unsigned char *data() const DECAF_NOEXCEPT { return data_; } | |||
/** Subscript */ | |||
inline const unsigned char &operator[](size_t off) const throw(std::out_of_range) { | |||
inline const unsigned char &operator[](size_t off) const /*throw(std::out_of_range)*/ { | |||
if (off >= size()) throw(std::out_of_range("decaf::Block")); | |||
return data_[off]; | |||
} | |||
@@ -203,7 +203,7 @@ public: | |||
} | |||
/** Slice the buffer*/ | |||
inline Block slice(size_t off, size_t length) const throw(LengthException) { | |||
inline Block slice(size_t off, size_t length) const /*throw(LengthException)*/ { | |||
if (off > size() || length > size() - off) throw LengthException(); | |||
return Block(data()+off, length); | |||
} | |||
@@ -215,7 +215,7 @@ public: | |||
} | |||
/** Create new block from this */ | |||
inline operator SecureBuffer() const throw(std::bad_alloc) { | |||
inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ { | |||
return SecureBuffer(data_,data_+size_); | |||
} | |||
@@ -243,7 +243,7 @@ private: | |||
template<size_t Size> class FixedBlock : public Block { | |||
public: | |||
/** Check a block's length. */ | |||
inline FixedBlock(const Block &b) throw(LengthException) : Block(b.data(),Size) { | |||
inline FixedBlock(const Block &b) /*throw(LengthException)*/ : Block(b.data(),Size) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
@@ -275,16 +275,16 @@ public: | |||
inline unsigned char* data() DECAF_NOEXCEPT { return data_; } | |||
/** Slice the buffer*/ | |||
inline Buffer slice(size_t off, size_t length) throw(LengthException); | |||
inline Buffer slice(size_t off, size_t length) /*throw(LengthException)*/; | |||
/** Subscript */ | |||
inline unsigned char &operator[](size_t off) throw(std::out_of_range) { | |||
inline unsigned char &operator[](size_t off) /*throw(std::out_of_range)*/ { | |||
if (off >= size()) throw(std::out_of_range("decaf::Buffer")); | |||
return data_[off]; | |||
} | |||
/** Copy from another block */ | |||
inline void assign(const Block b) throw(LengthException) { | |||
inline void assign(const Block b) /*throw(LengthException)*/ { | |||
if (b.size() != size()) throw LengthException(); | |||
memmove(data(),b.data(),size()); | |||
} | |||
@@ -300,12 +300,12 @@ private: | |||
template<size_t Size> class FixedBuffer : public Buffer { | |||
public: | |||
/** Check a block's length. */ | |||
inline FixedBuffer(Buffer b) throw(LengthException) : Buffer(b) { | |||
inline FixedBuffer(Buffer b) /*throw(LengthException)*/ : Buffer(b) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
/** Check a block's length. */ | |||
inline FixedBuffer(SecureBuffer &b) throw(LengthException) : Buffer(b) { | |||
inline FixedBuffer(SecureBuffer &b) /*throw(LengthException)*/ : Buffer(b) { | |||
if (Size != b.size()) throw LengthException(); | |||
} | |||
@@ -355,12 +355,12 @@ public: | |||
} | |||
/** Copy operator */ | |||
inline FixedArrayBuffer& operator=(const Block &b) throw(LengthException) { | |||
inline FixedArrayBuffer& operator=(const Block &b) /*throw(LengthException)*/ { | |||
*this = FixedBlock<Size>(b); | |||
} | |||
/** Copy constructor */ | |||
inline explicit FixedArrayBuffer(const Block &b) throw(LengthException) : FixedBuffer<Size>(storage,true) { | |||
inline explicit FixedArrayBuffer(const Block &b) /*throw(LengthException)*/ : FixedBuffer<Size>(storage,true) { | |||
if (b.size() != Size) throw LengthException(); | |||
memcpy(storage,b.data(),Size); | |||
} | |||
@@ -375,12 +375,12 @@ public: | |||
}; | |||
/** @cond internal */ | |||
Buffer Buffer::slice(size_t off, size_t length) throw(LengthException) { | |||
Buffer Buffer::slice(size_t off, size_t length) /*throw(LengthException)*/ { | |||
if (off > size() || length > size() - off) throw LengthException(); | |||
return Buffer(data()+off, length); | |||
} | |||
inline SecureBuffer Rng::read(size_t length) throw(std::bad_alloc) { | |||
inline SecureBuffer Rng::read(size_t length) /*throw(std::bad_alloc)*/ { | |||
SecureBuffer out(length); read(out); return out; | |||
} | |||
/** @endcond */ | |||
@@ -406,7 +406,7 @@ protected: | |||
is_mine = false; | |||
} | |||
} | |||
inline void alloc() throw(std::bad_alloc) { | |||
inline void alloc() /*throw(std::bad_alloc)*/ { | |||
if (is_mine) return; | |||
int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size()); | |||
if (ret || !ours.mine) { | |||
@@ -427,7 +427,7 @@ protected: | |||
/** | |||
* @brief Assign. This may require an allocation and memcpy. | |||
*/ | |||
inline T &operator=(const OwnedOrUnowned &it) throw(std::bad_alloc) { | |||
inline T &operator=(const OwnedOrUnowned &it) /*throw(std::bad_alloc)*/ { | |||
if (this == &it) return *(T*)this; | |||
if (it.is_mine) { | |||
alloc(); | |||
@@ -463,7 +463,7 @@ template<typename T, size_t alignment> | |||
T* SanitizingAllocator<T,alignment>::allocate ( | |||
size_type cnt, | |||
typename std::allocator<void>::const_pointer | |||
) throw(std::bad_alloc) { | |||
) /*throw(std::bad_alloc)*/ { | |||
void *v; | |||
int ret = 0; | |||
@@ -59,7 +59,7 @@ public: | |||
inline SHA512 &operator+=(const Block &s) { return *this << s; } | |||
/** @brief Output bytes from the SHA context, and resets it. */ | |||
inline void final(Buffer b) throw(LengthException) { | |||
inline void final(Buffer b) /*throw(LengthException)*/ { | |||
if (b.size() > OUTPUT_BYTES) throw LengthException(); | |||
decaf_sha512_final(wrapped,b.data(),b.size()); | |||
} | |||
@@ -68,7 +68,7 @@ public: | |||
inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); } | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer final(size_t len = OUTPUT_BYTES) throw(LengthException) { | |||
inline SecureBuffer final(size_t len = OUTPUT_BYTES) /*throw(LengthException)*/ { | |||
if (len > OUTPUT_BYTES) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
decaf_sha512_final(wrapped,buffer.data(),len); | |||
@@ -85,7 +85,7 @@ public: | |||
static inline SecureBuffer hash ( | |||
const Block &message, | |||
size_t outlen = OUTPUT_BYTES | |||
) throw(LengthException, std::bad_alloc) { | |||
) /*throw(LengthException, std::bad_alloc)*/ { | |||
if (outlen > OUTPUT_BYTES) throw LengthException(); | |||
SecureBuffer buffer(outlen); | |||
decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size()); | |||
@@ -55,7 +55,7 @@ public: | |||
inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; } | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer output(size_t len) throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer output(size_t len) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (len > max_output_size()) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) { | |||
@@ -65,7 +65,7 @@ public: | |||
} | |||
/** @brief Output bytes from the sponge. */ | |||
inline SecureBuffer final(size_t len) throw(std::bad_alloc, LengthException) { | |||
inline SecureBuffer final(size_t len) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (len > max_output_size()) throw LengthException(); | |||
SecureBuffer buffer(len); | |||
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,buffer.data(),len)) { | |||
@@ -77,7 +77,7 @@ public: | |||
/** @brief Output bytes from the sponge. Throw LengthException if you've | |||
* output too many bytes from a SHA-3 instance. | |||
*/ | |||
inline void output(Buffer b) throw(LengthException) { | |||
inline void output(Buffer b) /*throw(LengthException)*/ { | |||
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,b.data(),b.size())) { | |||
throw LengthException(); | |||
} | |||
@@ -86,7 +86,7 @@ public: | |||
/** @brief Output bytes from the sponge and reinitialize it. Throw | |||
* LengthException if you've output too many bytes from a SHA3 instance. | |||
*/ | |||
inline void final(Buffer b) throw(LengthException) { | |||
inline void final(Buffer b) /*throw(LengthException)*/ { | |||
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,b.data(),b.size())) { | |||
throw LengthException(); | |||
} | |||
@@ -103,12 +103,12 @@ public: | |||
} | |||
/** Output the default number of bytes. */ | |||
inline SecureBuffer output() throw(std::bad_alloc,LengthException) { | |||
inline SecureBuffer output() /*throw(std::bad_alloc,LengthException)*/ { | |||
return output(default_output_size()); | |||
} | |||
/** Output the default number of bytes, and reset hash. */ | |||
inline SecureBuffer final() throw(std::bad_alloc,LengthException) { | |||
inline SecureBuffer final() /*throw(std::bad_alloc,LengthException)*/ { | |||
return final(default_output_size()); | |||
} | |||
@@ -138,7 +138,7 @@ public: | |||
/** Hash bytes with this SHA3 instance. | |||
* @throw LengthException if nbytes > MAX_OUTPUT_BYTES | |||
*/ | |||
static inline SecureBuffer hash(const Block &b, size_t nbytes = MAX_OUTPUT_BYTES) throw(std::bad_alloc, LengthException) { | |||
static inline SecureBuffer hash(const Block &b, size_t nbytes = MAX_OUTPUT_BYTES) /*throw(std::bad_alloc, LengthException)*/ { | |||
if (nbytes > MAX_OUTPUT_BYTES) { | |||
throw LengthException(); | |||
} | |||
@@ -168,7 +168,7 @@ public: | |||
inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {} | |||
/** Hash bytes with this SHAKE instance */ | |||
static inline SecureBuffer hash(const Block &b, size_t outlen) throw(std::bad_alloc) { | |||
static inline SecureBuffer hash(const Block &b, size_t outlen) /*throw(std::bad_alloc)*/ { | |||
SHAKE s; s += b; return s.output(outlen); | |||
} | |||
}; | |||
@@ -66,7 +66,7 @@ public: | |||
/** Initialize, non-deterministically by default, from C/C++ filename */ | |||
inline SpongeRng( const std::string &in = "/dev/urandom", size_t len = 32, Deterministic det = RANDOM ) | |||
throw(RngException) { | |||
/*throw(RngException)*/ { | |||
decaf_error_t ret = decaf_spongerng_init_from_file(sp,in.c_str(),len,det); | |||
if (!decaf_successful(ret)) { | |||
throw RngException(errno, "Couldn't load from file"); | |||