/*
- * Copyright 2001-2005 Internet2
+ * Copyright 2001-2007 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "base.h"
#include "SAMLConfig.h"
+#include <limits.h>
+
+using namespace xercesc;
+
+// C99 defines LLONG_MIN, LLONG_MAX and ULLONG_MAX, but this part of
+// C99 is not yet included into the C++ standard.
+// GCC defines LONG_LONG_MIN, LONG_LONG_MAX and ULONG_LONG_MAX.
+// Some compilers (such as Comeau C++ up to and including version 4.3.3)
+// define nothing. In this last case we make a reasonable guess.
+#ifndef LLONG_MIN
+#if defined(LONG_LONG_MIN)
+#define LLONG_MIN LONG_LONG_MIN
+#elif SIZEOF_LONG_LONG == 8
+#define LLONG_MIN 0x8000000000000000LL
+#endif
+#endif
+
+#ifndef LLONG_MAX
+#if defined(LONG_LONG_MAX)
+#define LLONG_MAX LONG_LONG_MAX
+#elif SIZEOF_LONG_LONG == 8
+#define LLONG_MAX 0x7fffffffffffffffLL
+#endif
+#endif
+
+#ifndef ULLONG_MAX
+#if defined(ULONG_LONG_MAX)
+#define ULLONG_MAX ULONG_LONG_MAX
+#elif SIZEOF_UNSIGNED_LONG_LONG == 8
+#define ULLONG_MAX 0xffffffffffffffffULL
+#endif
+#endif
+
+#if SIZEOF_TIME_T == 8
+# define SAMLTIME_MAX LLONG_MAX
+#elif SIZEOF_TIME_T == 4
+# define SAMLTIME_MAX LONG_MAX
+#endif
+
#define SAML_LOGCAT "OpenSAML"
namespace opensaml {
static SAMLInternalConfig& getInternalConfig();
// global per-process setup and shutdown of runtime
- bool init();
- void term();
+ bool init(bool initXMLTooling=true);
+ void term(bool termXMLTooling=true);
+ void generateRandomBytes(void* buf, unsigned int len);
+ void generateRandomBytes(std::string& buf, unsigned int len);
+ XMLCh* generateIdentifier();
+ std::string hashSHA1(const char* data, bool toHex=false);
private:
};
/// @endcond