| @@ -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"); | |||