Browse Source

remove dynamic throw lists, since theyre deprecated

master
Michael Hamburg 7 years ago
parent
commit
dd9bcf2355
14 changed files with 127 additions and 127 deletions
  1. +4
    -4
      src/GENERATED/include/decaf/ed255.hxx
  2. +4
    -4
      src/GENERATED/include/decaf/ed448.hxx
  3. +17
    -17
      src/GENERATED/include/decaf/point_255.hxx
  4. +17
    -17
      src/GENERATED/include/decaf/point_448.hxx
  5. +20
    -20
      src/GENERATED/include/decaf/secure_buffer.hxx
  6. +3
    -3
      src/GENERATED/include/decaf/sha512.hxx
  7. +8
    -8
      src/GENERATED/include/decaf/shake.hxx
  8. +1
    -1
      src/GENERATED/include/decaf/spongerng.hxx
  9. +4
    -4
      src/per_curve/eddsa.tmpl.hxx
  10. +17
    -17
      src/per_curve/point.tmpl.hxx
  11. +20
    -20
      src/public_include/decaf/secure_buffer.hxx
  12. +3
    -3
      src/public_include/decaf/sha512.hxx
  13. +8
    -8
      src/public_include/decaf/shake.hxx
  14. +1
    -1
      src/public_include/decaf/spongerng.hxx

+ 4
- 4
src/GENERATED/include/decaf/ed255.hxx View File

@@ -70,7 +70,7 @@ private:
template<class T, Prehashed Ph> friend class Signing; template<class T, Prehashed Ph> friend class Signing;
template<class T, Prehashed Ph> friend class Verification; template<class T, Prehashed Ph> friend class Verification;
void init() throw(LengthException) {
void init() /*throw(LengthException)*/ {
Super::reset(); Super::reset();
if (context_.size() > 255) { if (context_.size() > 255) {
@@ -85,7 +85,7 @@ public:
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES;
/** Create the prehash */ /** Create the prehash */
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) {
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ {
context_ = context; context_ = context;
init(); init();
} }
@@ -94,14 +94,14 @@ public:
void reset() DECAF_NOEXCEPT { init(); } void reset() DECAF_NOEXCEPT { init(); }
/** Output from this hash */ /** Output from this hash */
SecureBuffer final() throw(std::bad_alloc) {
SecureBuffer final() /*throw(std::bad_alloc)*/ {
SecureBuffer ret = Super::final(OUTPUT_BYTES); SecureBuffer ret = Super::final(OUTPUT_BYTES);
reset(); reset();
return ret; return ret;
} }
/** Output from this hash */ /** Output from this hash */
void final(Buffer &b) throw(LengthException) {
void final(Buffer &b) /*throw(LengthException)*/ {
if (b.size() != OUTPUT_BYTES) throw LengthException(); if (b.size() != OUTPUT_BYTES) throw LengthException();
Super::final(b); Super::final(b);
reset(); reset();


+ 4
- 4
src/GENERATED/include/decaf/ed448.hxx View File

@@ -70,7 +70,7 @@ private:
template<class T, Prehashed Ph> friend class Signing; template<class T, Prehashed Ph> friend class Signing;
template<class T, Prehashed Ph> friend class Verification; template<class T, Prehashed Ph> friend class Verification;
void init() throw(LengthException) {
void init() /*throw(LengthException)*/ {
Super::reset(); Super::reset();
if (context_.size() > 255) { if (context_.size() > 255) {
@@ -85,7 +85,7 @@ public:
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES;
/** Create the prehash */ /** Create the prehash */
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) {
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ {
context_ = context; context_ = context;
init(); init();
} }
@@ -94,14 +94,14 @@ public:
void reset() DECAF_NOEXCEPT { init(); } void reset() DECAF_NOEXCEPT { init(); }
/** Output from this hash */ /** Output from this hash */
SecureBuffer final() throw(std::bad_alloc) {
SecureBuffer final() /*throw(std::bad_alloc)*/ {
SecureBuffer ret = Super::final(OUTPUT_BYTES); SecureBuffer ret = Super::final(OUTPUT_BYTES);
reset(); reset();
return ret; return ret;
} }
/** Output from this hash */ /** Output from this hash */
void final(Buffer &b) throw(LengthException) {
void final(Buffer &b) /*throw(LengthException)*/ {
if (b.size() != OUTPUT_BYTES) throw LengthException(); if (b.size() != OUTPUT_BYTES) throw LengthException();
Super::final(b); Super::final(b);
reset(); reset();


+ 17
- 17
src/GENERATED/include/decaf/point_255.hxx View File

@@ -186,7 +186,7 @@ public:


/** Invert with Fermat's Little Theorem (slow!). If *this == 0, /** Invert with Fermat's Little Theorem (slow!). If *this == 0,
* throw CryptoException. */ * throw CryptoException. */
inline Scalar inverse() const throw(CryptoException) {
inline Scalar inverse() const /*throw(CryptoException)*/ {
Scalar r; Scalar r;
if (DECAF_SUCCESS != decaf_255_scalar_invert(r.s,s)) { if (DECAF_SUCCESS != decaf_255_scalar_invert(r.s,s)) {
throw CryptoException(); throw CryptoException();
@@ -202,10 +202,10 @@ public:
} }


/** Divide by inverting q. If q == 0, return 0. */ /** 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. */ /** 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. */ /** Return half this scalar. Much faster than /2. */
inline Scalar half() const { Scalar out; decaf_255_scalar_halve(out.s,s); return out; } inline Scalar half() const { Scalar out; decaf_255_scalar_halve(out.s,s); return out; }
@@ -227,7 +227,7 @@ public:
const Block &in, const Block &in,
decaf_bool_t allow_identity=DECAF_FALSE, decaf_bool_t allow_identity=DECAF_FALSE,
decaf_bool_t short_circuit=DECAF_TRUE 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. * 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) 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)) { if (DECAF_SUCCESS != decode(buffer,allow_identity)) {
throw CryptoException(); throw CryptoException();
} }
@@ -336,7 +336,7 @@ public:


inline void decode_like_eddsa_and_ignore_cofactor ( inline void decode_like_eddsa_and_ignore_cofactor (
const FixedBlock<DECAF_EDDSA_25519_PUBLIC_BYTES> &buffer 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()); 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; } 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. */ /** 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. */ /** 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 */ /** Validate / sanity check */
inline bool validate() const DECAF_NOEXCEPT { return decaf_255_point_valid(p); } inline bool validate() const DECAF_NOEXCEPT { return decaf_255_point_valid(p); }
@@ -518,7 +518,7 @@ public:
} }


/** Steganographically encode this */ /** 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(); if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException();
SecureBuffer out(STEG_BYTES); SecureBuffer out(STEG_BYTES);
decaf_error_t done; decaf_error_t done;
@@ -596,7 +596,7 @@ public:
/** /**
* Initilaize from point. Must allocate memory, and may throw. * 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(); alloc();
decaf_255_precompute(ours.mine,it.p); decaf_255_precompute(ours.mine,it.p);
return *this; return *this;
@@ -605,20 +605,20 @@ public:
/** /**
* Copy constructor. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** /**
* Constructor which initializes from point. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** Fixed base scalarmul. */ /** 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; } 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. */ /** 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. */ /** Return the table for the base point. */
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); }
@@ -649,7 +649,7 @@ public:
static inline SecureBuffer shared_secret( static inline SecureBuffer shared_secret(
const FixedBlock<PUBLIC_BYTES> &pk, const FixedBlock<PUBLIC_BYTES> &pk,
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc,CryptoException) {
) /*throw(std::bad_alloc,CryptoException)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
if (DECAF_SUCCESS != decaf_x25519(out.data(), pk.data(), scalar.data())) { if (DECAF_SUCCESS != decaf_x25519(out.data(), pk.data(), scalar.data())) {
throw CryptoException(); throw CryptoException();
@@ -674,7 +674,7 @@ public:
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key")
generate_key( generate_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x25519_derive_public_key(out.data(), scalar.data()); decaf_x25519_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -685,7 +685,7 @@ public:
*/ */
static inline SecureBuffer derive_public_key( static inline SecureBuffer derive_public_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x25519_derive_public_key(out.data(), scalar.data()); decaf_x25519_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -722,7 +722,7 @@ inline SecureBuffer IsoEd25519::Scalar::direct_scalarmul (
const Block &in, const Block &in,
decaf_bool_t allow_identity, decaf_bool_t allow_identity,
decaf_bool_t short_circuit decaf_bool_t short_circuit
) const throw(CryptoException) {
) const /*throw(CryptoException)*/ {
SecureBuffer out(IsoEd25519::Point::SER_BYTES); SecureBuffer out(IsoEd25519::Point::SER_BYTES);
if (DECAF_SUCCESS != if (DECAF_SUCCESS !=
decaf_255_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) decaf_255_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit)


+ 17
- 17
src/GENERATED/include/decaf/point_448.hxx View File

@@ -186,7 +186,7 @@ public:


/** Invert with Fermat's Little Theorem (slow!). If *this == 0, /** Invert with Fermat's Little Theorem (slow!). If *this == 0,
* throw CryptoException. */ * throw CryptoException. */
inline Scalar inverse() const throw(CryptoException) {
inline Scalar inverse() const /*throw(CryptoException)*/ {
Scalar r; Scalar r;
if (DECAF_SUCCESS != decaf_448_scalar_invert(r.s,s)) { if (DECAF_SUCCESS != decaf_448_scalar_invert(r.s,s)) {
throw CryptoException(); throw CryptoException();
@@ -202,10 +202,10 @@ public:
} }


/** Divide by inverting q. If q == 0, return 0. */ /** 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. */ /** 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. */ /** Return half this scalar. Much faster than /2. */
inline Scalar half() const { Scalar out; decaf_448_scalar_halve(out.s,s); return out; } inline Scalar half() const { Scalar out; decaf_448_scalar_halve(out.s,s); return out; }
@@ -227,7 +227,7 @@ public:
const Block &in, const Block &in,
decaf_bool_t allow_identity=DECAF_FALSE, decaf_bool_t allow_identity=DECAF_FALSE,
decaf_bool_t short_circuit=DECAF_TRUE 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. * 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) 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)) { if (DECAF_SUCCESS != decode(buffer,allow_identity)) {
throw CryptoException(); throw CryptoException();
} }
@@ -336,7 +336,7 @@ public:


inline void decode_like_eddsa_and_ignore_cofactor ( inline void decode_like_eddsa_and_ignore_cofactor (
const FixedBlock<DECAF_EDDSA_448_PUBLIC_BYTES> &buffer 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()); 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; } 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. */ /** 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. */ /** 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 */ /** Validate / sanity check */
inline bool validate() const DECAF_NOEXCEPT { return decaf_448_point_valid(p); } inline bool validate() const DECAF_NOEXCEPT { return decaf_448_point_valid(p); }
@@ -518,7 +518,7 @@ public:
} }


/** Steganographically encode this */ /** 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(); if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException();
SecureBuffer out(STEG_BYTES); SecureBuffer out(STEG_BYTES);
decaf_error_t done; decaf_error_t done;
@@ -596,7 +596,7 @@ public:
/** /**
* Initilaize from point. Must allocate memory, and may throw. * 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(); alloc();
decaf_448_precompute(ours.mine,it.p); decaf_448_precompute(ours.mine,it.p);
return *this; return *this;
@@ -605,20 +605,20 @@ public:
/** /**
* Copy constructor. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** /**
* Constructor which initializes from point. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** Fixed base scalarmul. */ /** 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; } 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. */ /** 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. */ /** Return the table for the base point. */
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); }
@@ -649,7 +649,7 @@ public:
static inline SecureBuffer shared_secret( static inline SecureBuffer shared_secret(
const FixedBlock<PUBLIC_BYTES> &pk, const FixedBlock<PUBLIC_BYTES> &pk,
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc,CryptoException) {
) /*throw(std::bad_alloc,CryptoException)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
if (DECAF_SUCCESS != decaf_x448(out.data(), pk.data(), scalar.data())) { if (DECAF_SUCCESS != decaf_x448(out.data(), pk.data(), scalar.data())) {
throw CryptoException(); throw CryptoException();
@@ -674,7 +674,7 @@ public:
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key")
generate_key( generate_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x448_derive_public_key(out.data(), scalar.data()); decaf_x448_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -685,7 +685,7 @@ public:
*/ */
static inline SecureBuffer derive_public_key( static inline SecureBuffer derive_public_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x448_derive_public_key(out.data(), scalar.data()); decaf_x448_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -722,7 +722,7 @@ inline SecureBuffer Ed448Goldilocks::Scalar::direct_scalarmul (
const Block &in, const Block &in,
decaf_bool_t allow_identity, decaf_bool_t allow_identity,
decaf_bool_t short_circuit decaf_bool_t short_circuit
) const throw(CryptoException) {
) const /*throw(CryptoException)*/ {
SecureBuffer out(Ed448Goldilocks::Point::SER_BYTES); SecureBuffer out(Ed448Goldilocks::Point::SER_BYTES);
if (DECAF_SUCCESS != if (DECAF_SUCCESS !=
decaf_448_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) decaf_448_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit)


+ 20
- 20
src/GENERATED/include/decaf/secure_buffer.hxx View File

@@ -60,7 +60,7 @@ public:
inline T* allocate ( inline T* allocate (
size_type cnt, size_type cnt,
typename std::allocator<void>::const_pointer = 0 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 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 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); } 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 */ /** @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()); SecureBuffer out(ser_size());
serialize_into(out.data()); serialize_into(out.data());
return out; return out;
@@ -101,7 +101,7 @@ public:
/** Cast operator */ /** Cast operator */
#if __cplusplus >= 201103L #if __cplusplus >= 201103L
explicit inline operator SecureBuffer() const throw(std::bad_alloc) {
explicit inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ {
return serialize(); return serialize();
} }
#endif #endif
@@ -147,7 +147,7 @@ public:
virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0; virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0;


/** @brief Read into a SecureBuffer. */ /** @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_; } inline const unsigned char *data() const DECAF_NOEXCEPT { return data_; }
/** Subscript */ /** 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")); if (off >= size()) throw(std::out_of_range("decaf::Block"));
return data_[off]; return data_[off];
} }
@@ -203,7 +203,7 @@ public:
} }


/** Slice the buffer*/ /** 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(); if (off > size() || length > size() - off) throw LengthException();
return Block(data()+off, length); return Block(data()+off, length);
} }
@@ -215,7 +215,7 @@ public:
} }
/** Create new block from this */ /** 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_); return SecureBuffer(data_,data_+size_);
} }


@@ -243,7 +243,7 @@ private:
template<size_t Size> class FixedBlock : public Block { template<size_t Size> class FixedBlock : public Block {
public: public:
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
@@ -275,16 +275,16 @@ public:
inline unsigned char* data() DECAF_NOEXCEPT { return data_; } inline unsigned char* data() DECAF_NOEXCEPT { return data_; }


/** Slice the buffer*/ /** 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 */ /** 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")); if (off >= size()) throw(std::out_of_range("decaf::Buffer"));
return data_[off]; return data_[off];
} }
/** Copy from another block */ /** 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(); if (b.size() != size()) throw LengthException();
memmove(data(),b.data(),size()); memmove(data(),b.data(),size());
} }
@@ -300,12 +300,12 @@ private:
template<size_t Size> class FixedBuffer : public Buffer { template<size_t Size> class FixedBuffer : public Buffer {
public: public:
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
@@ -355,12 +355,12 @@ public:
} }
/** Copy operator */ /** Copy operator */
inline FixedArrayBuffer& operator=(const Block &b) throw(LengthException) {
inline FixedArrayBuffer& operator=(const Block &b) /*throw(LengthException)*/ {
*this = FixedBlock<Size>(b); *this = FixedBlock<Size>(b);
} }
/** Copy constructor */ /** 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(); if (b.size() != Size) throw LengthException();
memcpy(storage,b.data(),Size); memcpy(storage,b.data(),Size);
} }
@@ -375,12 +375,12 @@ public:
}; };


/** @cond internal */ /** @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(); if (off > size() || length > size() - off) throw LengthException();
return Buffer(data()+off, length); 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; SecureBuffer out(length); read(out); return out;
} }
/** @endcond */ /** @endcond */
@@ -406,7 +406,7 @@ protected:
is_mine = false; is_mine = false;
} }
} }
inline void alloc() throw(std::bad_alloc) {
inline void alloc() /*throw(std::bad_alloc)*/ {
if (is_mine) return; if (is_mine) return;
int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size()); int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size());
if (ret || !ours.mine) { if (ret || !ours.mine) {
@@ -427,7 +427,7 @@ protected:
/** /**
* @brief Assign. This may require an allocation and memcpy. * @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 (this == &it) return *(T*)this;
if (it.is_mine) { if (it.is_mine) {
alloc(); alloc();
@@ -463,7 +463,7 @@ template<typename T, size_t alignment>
T* SanitizingAllocator<T,alignment>::allocate ( T* SanitizingAllocator<T,alignment>::allocate (
size_type cnt, size_type cnt,
typename std::allocator<void>::const_pointer typename std::allocator<void>::const_pointer
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
void *v; void *v;
int ret = 0; int ret = 0;


+ 3
- 3
src/GENERATED/include/decaf/sha512.hxx View File

@@ -59,7 +59,7 @@ public:
inline SHA512 &operator+=(const Block &s) { return *this << s; } inline SHA512 &operator+=(const Block &s) { return *this << s; }
/** @brief Output bytes from the SHA context, and resets it. */ /** @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(); if (b.size() > OUTPUT_BYTES) throw LengthException();
decaf_sha512_final(wrapped,b.data(),b.size()); decaf_sha512_final(wrapped,b.data(),b.size());
} }
@@ -68,7 +68,7 @@ public:
inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); } inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); }


/** @brief Output bytes from the sponge. */ /** @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(); if (len > OUTPUT_BYTES) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
decaf_sha512_final(wrapped,buffer.data(),len); decaf_sha512_final(wrapped,buffer.data(),len);
@@ -85,7 +85,7 @@ public:
static inline SecureBuffer hash ( static inline SecureBuffer hash (
const Block &message, const Block &message,
size_t outlen = OUTPUT_BYTES size_t outlen = OUTPUT_BYTES
) throw(LengthException, std::bad_alloc) {
) /*throw(LengthException, std::bad_alloc)*/ {
if (outlen > OUTPUT_BYTES) throw LengthException(); if (outlen > OUTPUT_BYTES) throw LengthException();
SecureBuffer buffer(outlen); SecureBuffer buffer(outlen);
decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size()); decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size());


+ 8
- 8
src/GENERATED/include/decaf/shake.hxx View File

@@ -55,7 +55,7 @@ public:
inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; } inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; }
/** @brief Output bytes from the sponge. */ /** @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(); if (len > max_output_size()) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) { if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) {
@@ -65,7 +65,7 @@ public:
} }
/** @brief Output bytes from the sponge. */ /** @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(); if (len > max_output_size()) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,buffer.data(),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 /** @brief Output bytes from the sponge. Throw LengthException if you've
* output too many bytes from a SHA-3 instance. * 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())) { if (DECAF_SUCCESS != decaf_sha3_output(wrapped,b.data(),b.size())) {
throw LengthException(); throw LengthException();
} }
@@ -86,7 +86,7 @@ public:
/** @brief Output bytes from the sponge and reinitialize it. Throw /** @brief Output bytes from the sponge and reinitialize it. Throw
* LengthException if you've output too many bytes from a SHA3 instance. * 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())) { if (DECAF_SUCCESS != decaf_sha3_final(wrapped,b.data(),b.size())) {
throw LengthException(); throw LengthException();
} }
@@ -103,12 +103,12 @@ public:
} }
/** Output the default number of bytes. */ /** 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()); return output(default_output_size());
} }
/** Output the default number of bytes, and reset hash. */ /** 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()); return final(default_output_size());
} }


@@ -138,7 +138,7 @@ public:
/** Hash bytes with this SHA3 instance. /** Hash bytes with this SHA3 instance.
* @throw LengthException if nbytes > MAX_OUTPUT_BYTES * @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) { if (nbytes > MAX_OUTPUT_BYTES) {
throw LengthException(); throw LengthException();
} }
@@ -168,7 +168,7 @@ public:
inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {} inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {}
/** Hash bytes with this SHAKE instance */ /** 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); SHAKE s; s += b; return s.output(outlen);
} }
}; };


+ 1
- 1
src/GENERATED/include/decaf/spongerng.hxx View File

@@ -66,7 +66,7 @@ public:
/** Initialize, non-deterministically by default, from C/C++ filename */ /** Initialize, non-deterministically by default, from C/C++ filename */
inline SpongeRng( const std::string &in = "/dev/urandom", size_t len = 32, Deterministic det = RANDOM ) 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); decaf_error_t ret = decaf_spongerng_init_from_file(sp,in.c_str(),len,det);
if (!decaf_successful(ret)) { if (!decaf_successful(ret)) {
throw RngException(errno, "Couldn't load from file"); throw RngException(errno, "Couldn't load from file");


+ 4
- 4
src/per_curve/eddsa.tmpl.hxx View File

@@ -54,7 +54,7 @@ private:
template<class T, Prehashed Ph> friend class Signing; template<class T, Prehashed Ph> friend class Signing;
template<class T, Prehashed Ph> friend class Verification; template<class T, Prehashed Ph> friend class Verification;
void init() throw(LengthException) {
void init() /*throw(LengthException)*/ {
Super::reset(); Super::reset();
if (context_.size() > 255) { if (context_.size() > 255) {
@@ -69,7 +69,7 @@ public:
static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES; static const size_t OUTPUT_BYTES = Super::DEFAULT_OUTPUT_BYTES;
/** Create the prehash */ /** Create the prehash */
Prehash(const Block &context = NO_CONTEXT()) throw(LengthException) {
Prehash(const Block &context = NO_CONTEXT()) /*throw(LengthException)*/ {
context_ = context; context_ = context;
init(); init();
} }
@@ -78,14 +78,14 @@ public:
void reset() DECAF_NOEXCEPT { init(); } void reset() DECAF_NOEXCEPT { init(); }
/** Output from this hash */ /** Output from this hash */
SecureBuffer final() throw(std::bad_alloc) {
SecureBuffer final() /*throw(std::bad_alloc)*/ {
SecureBuffer ret = Super::final(OUTPUT_BYTES); SecureBuffer ret = Super::final(OUTPUT_BYTES);
reset(); reset();
return ret; return ret;
} }
/** Output from this hash */ /** Output from this hash */
void final(Buffer &b) throw(LengthException) {
void final(Buffer &b) /*throw(LengthException)*/ {
if (b.size() != OUTPUT_BYTES) throw LengthException(); if (b.size() != OUTPUT_BYTES) throw LengthException();
Super::final(b); Super::final(b);
reset(); reset();


+ 17
- 17
src/per_curve/point.tmpl.hxx View File

@@ -173,7 +173,7 @@ public:


/** Invert with Fermat's Little Theorem (slow!). If *this == 0, /** Invert with Fermat's Little Theorem (slow!). If *this == 0,
* throw CryptoException. */ * throw CryptoException. */
inline Scalar inverse() const throw(CryptoException) {
inline Scalar inverse() const /*throw(CryptoException)*/ {
Scalar r; Scalar r;
if (DECAF_SUCCESS != $(c_ns)_scalar_invert(r.s,s)) { if (DECAF_SUCCESS != $(c_ns)_scalar_invert(r.s,s)) {
throw CryptoException(); throw CryptoException();
@@ -189,10 +189,10 @@ public:
} }


/** Divide by inverting q. If q == 0, return 0. */ /** 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. */ /** 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. */ /** Return half this scalar. Much faster than /2. */
inline Scalar half() const { Scalar out; $(c_ns)_scalar_halve(out.s,s); return out; } inline Scalar half() const { Scalar out; $(c_ns)_scalar_halve(out.s,s); return out; }
@@ -214,7 +214,7 @@ public:
const Block &in, const Block &in,
decaf_bool_t allow_identity=DECAF_FALSE, decaf_bool_t allow_identity=DECAF_FALSE,
decaf_bool_t short_circuit=DECAF_TRUE 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. * 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) 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)) { if (DECAF_SUCCESS != decode(buffer,allow_identity)) {
throw CryptoException(); throw CryptoException();
} }
@@ -323,7 +323,7 @@ public:


inline void decode_like_eddsa_and_ignore_cofactor ( inline void decode_like_eddsa_and_ignore_cofactor (
const FixedBlock<DECAF_EDDSA_$(gf_shortname)_PUBLIC_BYTES> &buffer 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()); 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; } 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. */ /** 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. */ /** 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 */ /** Validate / sanity check */
inline bool validate() const DECAF_NOEXCEPT { return $(c_ns)_point_valid(p); } inline bool validate() const DECAF_NOEXCEPT { return $(c_ns)_point_valid(p); }
@@ -505,7 +505,7 @@ public:
} }


/** Steganographically encode this */ /** 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(); if (size <= HASH_BYTES + 4 || size > 2*HASH_BYTES) throw LengthException();
SecureBuffer out(STEG_BYTES); SecureBuffer out(STEG_BYTES);
decaf_error_t done; decaf_error_t done;
@@ -583,7 +583,7 @@ public:
/** /**
* Initilaize from point. Must allocate memory, and may throw. * 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(); alloc();
$(c_ns)_precompute(ours.mine,it.p); $(c_ns)_precompute(ours.mine,it.p);
return *this; return *this;
@@ -592,20 +592,20 @@ public:
/** /**
* Copy constructor. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** /**
* Constructor which initializes from point. * 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; } : OwnedOrUnowned<Precomputed,Precomputed_U>() { *this = it; }


/** Fixed base scalarmul. */ /** 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; } 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. */ /** 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. */ /** Return the table for the base point. */
static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); } static inline const Precomputed base() DECAF_NOEXCEPT { return Precomputed(); }
@@ -636,7 +636,7 @@ public:
static inline SecureBuffer shared_secret( static inline SecureBuffer shared_secret(
const FixedBlock<PUBLIC_BYTES> &pk, const FixedBlock<PUBLIC_BYTES> &pk,
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc,CryptoException) {
) /*throw(std::bad_alloc,CryptoException)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
if (DECAF_SUCCESS != decaf_x$(gf_shortname)(out.data(), pk.data(), scalar.data())) { if (DECAF_SUCCESS != decaf_x$(gf_shortname)(out.data(), pk.data(), scalar.data())) {
throw CryptoException(); throw CryptoException();
@@ -661,7 +661,7 @@ public:
static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key") static inline SecureBuffer DECAF_DEPRECATED("Renamed to derive_public_key")
generate_key( generate_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data()); decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -672,7 +672,7 @@ public:
*/ */
static inline SecureBuffer derive_public_key( static inline SecureBuffer derive_public_key(
const FixedBlock<PRIVATE_BYTES> &scalar const FixedBlock<PRIVATE_BYTES> &scalar
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
SecureBuffer out(PUBLIC_BYTES); SecureBuffer out(PUBLIC_BYTES);
decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data()); decaf_x$(gf_shortname)_derive_public_key(out.data(), scalar.data());
return out; return out;
@@ -709,7 +709,7 @@ inline SecureBuffer $(cxx_ns)::Scalar::direct_scalarmul (
const Block &in, const Block &in,
decaf_bool_t allow_identity, decaf_bool_t allow_identity,
decaf_bool_t short_circuit decaf_bool_t short_circuit
) const throw(CryptoException) {
) const /*throw(CryptoException)*/ {
SecureBuffer out($(cxx_ns)::Point::SER_BYTES); SecureBuffer out($(cxx_ns)::Point::SER_BYTES);
if (DECAF_SUCCESS != if (DECAF_SUCCESS !=
$(c_ns)_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit) $(c_ns)_direct_scalarmul(out.data(), in.data(), s, allow_identity, short_circuit)


+ 20
- 20
src/public_include/decaf/secure_buffer.hxx View File

@@ -60,7 +60,7 @@ public:
inline T* allocate ( inline T* allocate (
size_type cnt, size_type cnt,
typename std::allocator<void>::const_pointer = 0 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 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 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); } 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 */ /** @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()); SecureBuffer out(ser_size());
serialize_into(out.data()); serialize_into(out.data());
return out; return out;
@@ -101,7 +101,7 @@ public:
/** Cast operator */ /** Cast operator */
#if __cplusplus >= 201103L #if __cplusplus >= 201103L
explicit inline operator SecureBuffer() const throw(std::bad_alloc) {
explicit inline operator SecureBuffer() const /*throw(std::bad_alloc)*/ {
return serialize(); return serialize();
} }
#endif #endif
@@ -147,7 +147,7 @@ public:
virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0; virtual void read(Buffer buffer) DECAF_NOEXCEPT = 0;


/** @brief Read into a SecureBuffer. */ /** @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_; } inline const unsigned char *data() const DECAF_NOEXCEPT { return data_; }
/** Subscript */ /** 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")); if (off >= size()) throw(std::out_of_range("decaf::Block"));
return data_[off]; return data_[off];
} }
@@ -203,7 +203,7 @@ public:
} }


/** Slice the buffer*/ /** 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(); if (off > size() || length > size() - off) throw LengthException();
return Block(data()+off, length); return Block(data()+off, length);
} }
@@ -215,7 +215,7 @@ public:
} }
/** Create new block from this */ /** 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_); return SecureBuffer(data_,data_+size_);
} }


@@ -243,7 +243,7 @@ private:
template<size_t Size> class FixedBlock : public Block { template<size_t Size> class FixedBlock : public Block {
public: public:
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
@@ -275,16 +275,16 @@ public:
inline unsigned char* data() DECAF_NOEXCEPT { return data_; } inline unsigned char* data() DECAF_NOEXCEPT { return data_; }


/** Slice the buffer*/ /** 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 */ /** 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")); if (off >= size()) throw(std::out_of_range("decaf::Buffer"));
return data_[off]; return data_[off];
} }
/** Copy from another block */ /** 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(); if (b.size() != size()) throw LengthException();
memmove(data(),b.data(),size()); memmove(data(),b.data(),size());
} }
@@ -300,12 +300,12 @@ private:
template<size_t Size> class FixedBuffer : public Buffer { template<size_t Size> class FixedBuffer : public Buffer {
public: public:
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
/** Check a block's length. */ /** 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(); if (Size != b.size()) throw LengthException();
} }
@@ -355,12 +355,12 @@ public:
} }
/** Copy operator */ /** Copy operator */
inline FixedArrayBuffer& operator=(const Block &b) throw(LengthException) {
inline FixedArrayBuffer& operator=(const Block &b) /*throw(LengthException)*/ {
*this = FixedBlock<Size>(b); *this = FixedBlock<Size>(b);
} }
/** Copy constructor */ /** 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(); if (b.size() != Size) throw LengthException();
memcpy(storage,b.data(),Size); memcpy(storage,b.data(),Size);
} }
@@ -375,12 +375,12 @@ public:
}; };


/** @cond internal */ /** @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(); if (off > size() || length > size() - off) throw LengthException();
return Buffer(data()+off, length); 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; SecureBuffer out(length); read(out); return out;
} }
/** @endcond */ /** @endcond */
@@ -406,7 +406,7 @@ protected:
is_mine = false; is_mine = false;
} }
} }
inline void alloc() throw(std::bad_alloc) {
inline void alloc() /*throw(std::bad_alloc)*/ {
if (is_mine) return; if (is_mine) return;
int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size()); int ret = posix_memalign((void**)&ours.mine, T::alignment(), T::size());
if (ret || !ours.mine) { if (ret || !ours.mine) {
@@ -427,7 +427,7 @@ protected:
/** /**
* @brief Assign. This may require an allocation and memcpy. * @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 (this == &it) return *(T*)this;
if (it.is_mine) { if (it.is_mine) {
alloc(); alloc();
@@ -463,7 +463,7 @@ template<typename T, size_t alignment>
T* SanitizingAllocator<T,alignment>::allocate ( T* SanitizingAllocator<T,alignment>::allocate (
size_type cnt, size_type cnt,
typename std::allocator<void>::const_pointer typename std::allocator<void>::const_pointer
) throw(std::bad_alloc) {
) /*throw(std::bad_alloc)*/ {
void *v; void *v;
int ret = 0; int ret = 0;


+ 3
- 3
src/public_include/decaf/sha512.hxx View File

@@ -59,7 +59,7 @@ public:
inline SHA512 &operator+=(const Block &s) { return *this << s; } inline SHA512 &operator+=(const Block &s) { return *this << s; }
/** @brief Output bytes from the SHA context, and resets it. */ /** @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(); if (b.size() > OUTPUT_BYTES) throw LengthException();
decaf_sha512_final(wrapped,b.data(),b.size()); decaf_sha512_final(wrapped,b.data(),b.size());
} }
@@ -68,7 +68,7 @@ public:
inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); } inline void reset() DECAF_NOEXCEPT { decaf_sha512_init(wrapped); }


/** @brief Output bytes from the sponge. */ /** @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(); if (len > OUTPUT_BYTES) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
decaf_sha512_final(wrapped,buffer.data(),len); decaf_sha512_final(wrapped,buffer.data(),len);
@@ -85,7 +85,7 @@ public:
static inline SecureBuffer hash ( static inline SecureBuffer hash (
const Block &message, const Block &message,
size_t outlen = OUTPUT_BYTES size_t outlen = OUTPUT_BYTES
) throw(LengthException, std::bad_alloc) {
) /*throw(LengthException, std::bad_alloc)*/ {
if (outlen > OUTPUT_BYTES) throw LengthException(); if (outlen > OUTPUT_BYTES) throw LengthException();
SecureBuffer buffer(outlen); SecureBuffer buffer(outlen);
decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size()); decaf_sha512_hash(buffer.data(),outlen,message.data(),message.size());


+ 8
- 8
src/public_include/decaf/shake.hxx View File

@@ -55,7 +55,7 @@ public:
inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; } inline KeccakHash &operator+=(const Block &s) DECAF_NOEXCEPT { return *this << s; }
/** @brief Output bytes from the sponge. */ /** @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(); if (len > max_output_size()) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) { if (DECAF_SUCCESS != decaf_sha3_output(wrapped,buffer.data(),len)) {
@@ -65,7 +65,7 @@ public:
} }
/** @brief Output bytes from the sponge. */ /** @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(); if (len > max_output_size()) throw LengthException();
SecureBuffer buffer(len); SecureBuffer buffer(len);
if (DECAF_SUCCESS != decaf_sha3_final(wrapped,buffer.data(),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 /** @brief Output bytes from the sponge. Throw LengthException if you've
* output too many bytes from a SHA-3 instance. * 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())) { if (DECAF_SUCCESS != decaf_sha3_output(wrapped,b.data(),b.size())) {
throw LengthException(); throw LengthException();
} }
@@ -86,7 +86,7 @@ public:
/** @brief Output bytes from the sponge and reinitialize it. Throw /** @brief Output bytes from the sponge and reinitialize it. Throw
* LengthException if you've output too many bytes from a SHA3 instance. * 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())) { if (DECAF_SUCCESS != decaf_sha3_final(wrapped,b.data(),b.size())) {
throw LengthException(); throw LengthException();
} }
@@ -103,12 +103,12 @@ public:
} }
/** Output the default number of bytes. */ /** 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()); return output(default_output_size());
} }
/** Output the default number of bytes, and reset hash. */ /** 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()); return final(default_output_size());
} }


@@ -138,7 +138,7 @@ public:
/** Hash bytes with this SHA3 instance. /** Hash bytes with this SHA3 instance.
* @throw LengthException if nbytes > MAX_OUTPUT_BYTES * @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) { if (nbytes > MAX_OUTPUT_BYTES) {
throw LengthException(); throw LengthException();
} }
@@ -168,7 +168,7 @@ public:
inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {} inline SHAKE() DECAF_NOEXCEPT : KeccakHash(get_params()) {}
/** Hash bytes with this SHAKE instance */ /** 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); SHAKE s; s += b; return s.output(outlen);
} }
}; };


+ 1
- 1
src/public_include/decaf/spongerng.hxx View File

@@ -66,7 +66,7 @@ public:
/** Initialize, non-deterministically by default, from C/C++ filename */ /** Initialize, non-deterministically by default, from C/C++ filename */
inline SpongeRng( const std::string &in = "/dev/urandom", size_t len = 32, Deterministic det = RANDOM ) 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); decaf_error_t ret = decaf_spongerng_init_from_file(sp,in.c_str(),len,det);
if (!decaf_successful(ret)) { if (!decaf_successful(ret)) {
throw RngException(errno, "Couldn't load from file"); throw RngException(errno, "Couldn't load from file");


Loading…
Cancel
Save