From 69e8cc40848b95a644fb952c73788e825c1683ba Mon Sep 17 00:00:00 2001 From: lloyd Date: Wed, 16 Sep 2009 15:56:55 +0000 Subject: Use in the runtime benchmarking code instead of the local timers. --- doc/examples/bench.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'doc/examples') diff --git a/doc/examples/bench.cpp b/doc/examples/bench.cpp index 0aedc699d..7d53e0557 100644 --- a/doc/examples/bench.cpp +++ b/doc/examples/bench.cpp @@ -66,7 +66,6 @@ int main() u32bit milliseconds = 1000; AutoSeeded_RNG rng; - Default_Benchmark_Timer timer; Algorithm_Factory& af = global_state().algorithm_factory(); @@ -75,7 +74,7 @@ int main() std::string algo = algos[i]; std::map speeds = - algorithm_benchmark(algos[i], milliseconds, timer, rng, af); + algorithm_benchmark(algos[i], milliseconds, rng, af); std::cout << algo << ":"; -- cgit v1.2.3 From 471847e2148776e62e4f580ade95572fc525c751 Mon Sep 17 00:00:00 2001 From: lloyd Date: Tue, 17 Nov 2009 05:51:34 +0000 Subject: Fix some examples for changed APIs in C++0x branch --- doc/examples/GNUmakefile | 4 ++-- doc/examples/bench.cpp | 3 +-- doc/examples/benchmark.cpp | 3 +-- doc/examples/ca.cpp | 2 +- doc/examples/gen_certs.cpp | 2 +- doc/examples/hash_quickly.cpp | 4 +--- 6 files changed, 7 insertions(+), 11 deletions(-) (limited to 'doc/examples') diff --git a/doc/examples/GNUmakefile b/doc/examples/GNUmakefile index 44fcfeea5..a96e8d65d 100644 --- a/doc/examples/GNUmakefile +++ b/doc/examples/GNUmakefile @@ -1,8 +1,8 @@ BOTAN_CONFIG = botan-config -CXX = g++ -CFLAGS = -O2 -ansi -W -Wall -I../../build/include +CXX = g++-4.5-20091112 +CFLAGS = -O2 -ansi -std=c++0x -W -Wall -I../../build/include LIBS = -L../.. -lbotan SRCS=$(wildcard *.cpp) diff --git a/doc/examples/bench.cpp b/doc/examples/bench.cpp index db2170dc4..7d53e0557 100644 --- a/doc/examples/bench.cpp +++ b/doc/examples/bench.cpp @@ -60,8 +60,7 @@ const std::string algos[] = { "", }; -void benchmark_algo(const std::string& algo, - RandomNumberGenerator& rng) +int main() { LibraryInitializer init; diff --git a/doc/examples/benchmark.cpp b/doc/examples/benchmark.cpp index d046e8d20..fa91726e5 100644 --- a/doc/examples/benchmark.cpp +++ b/doc/examples/benchmark.cpp @@ -17,7 +17,6 @@ int main(int argc, char* argv[]) Botan::LibraryInitializer init; Botan::AutoSeeded_RNG rng; - Botan::Default_Benchmark_Timer timer; Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); @@ -28,7 +27,7 @@ int main(int argc, char* argv[]) std::string algo = argv[i]; std::map results = - Botan::algorithm_benchmark(algo, ms, timer, rng, af); + Botan::algorithm_benchmark(algo, ms, rng, af); std::cout << algo << ":\n"; for(std::map::iterator r = results.begin(); diff --git a/doc/examples/ca.cpp b/doc/examples/ca.cpp index 9195be418..f5eccdde9 100644 --- a/doc/examples/ca.cpp +++ b/doc/examples/ca.cpp @@ -15,7 +15,7 @@ #include #include -#include +#include using namespace Botan; #include diff --git a/doc/examples/gen_certs.cpp b/doc/examples/gen_certs.cpp index 90cb80038..80cb5f54a 100644 --- a/doc/examples/gen_certs.cpp +++ b/doc/examples/gen_certs.cpp @@ -5,9 +5,9 @@ #include #include -#include #include #include +#include using namespace Botan; diff --git a/doc/examples/hash_quickly.cpp b/doc/examples/hash_quickly.cpp index e719a7178..c8c8ca5fb 100644 --- a/doc/examples/hash_quickly.cpp +++ b/doc/examples/hash_quickly.cpp @@ -23,12 +23,10 @@ void set_fastest_implementation(const std::string& algo, Botan::RandomNumberGenerator& rng, double ms = 30) { - Botan::Default_Benchmark_Timer timer; - Botan::Algorithm_Factory& af = Botan::global_state().algorithm_factory(); std::map results = - Botan::algorithm_benchmark(algo, ms, timer, rng, af); + Botan::algorithm_benchmark(algo, ms, rng, af); std::string fastest_provider = ""; double best_res = 0; -- cgit v1.2.3 From 9ffe4441271ff41fd33fc3965c191e62bce36453 Mon Sep 17 00:00:00 2001 From: lloyd Date: Tue, 1 Dec 2009 14:59:01 +0000 Subject: Update examples for changed/removed APIs, namely: to_string -> std::to_string system_time -> std::chrono --- doc/examples/asn1.cpp | 4 ++-- doc/examples/ca.cpp | 9 +++++++-- doc/examples/gen_certs.cpp | 8 ++++---- doc/examples/rsa_manykey.cpp | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) (limited to 'doc/examples') diff --git a/doc/examples/asn1.cpp b/doc/examples/asn1.cpp index 95757ec19..141d4d5b4 100644 --- a/doc/examples/asn1.cpp +++ b/doc/examples/asn1.cpp @@ -121,7 +121,7 @@ void decode(BER_Decoder& decoder, u32bit level) if((class_tag & APPLICATION) || (class_tag & CONTEXT_SPECIFIC) || (class_tag & PRIVATE)) { - name = "cons [" + to_string(type_tag) + "]"; + name = "cons [" + std::to_string(type_tag) + "]"; if(class_tag & APPLICATION) name += " appl"; @@ -148,7 +148,7 @@ void decode(BER_Decoder& decoder, u32bit level) Pipe pipe(((not_text) ? new Hex_Encoder : 0)); pipe.process_msg(bits); - emit("[" + to_string(type_tag) + "]", level, length, + emit("[" + std::to_string(type_tag) + "]", level, length, pipe.read_all_as_string()); } else if(type_tag == OBJECT_ID) diff --git a/doc/examples/ca.cpp b/doc/examples/ca.cpp index f5eccdde9..8be0fa527 100644 --- a/doc/examples/ca.cpp +++ b/doc/examples/ca.cpp @@ -56,8 +56,13 @@ int main(int argc, char* argv[]) // (this example should be extended to show how) // now sign the request - X509_Time start_time(system_time()); - X509_Time end_time(system_time() + 365 * 60 * 60 * 24); + auto now = std::chrono::system_clock::now(); + + X509_Time start_time(now); + + typedef std::chrono::duration> years; + + X509_Time end_time(now + years(1)); X509_Certificate new_cert = ca.sign_request(req, rng, start_time, end_time); diff --git a/doc/examples/gen_certs.cpp b/doc/examples/gen_certs.cpp index 80cb5f54a..557c6f46e 100644 --- a/doc/examples/gen_certs.cpp +++ b/doc/examples/gen_certs.cpp @@ -71,14 +71,14 @@ void save_pair(const std::string& name, key_out.close(); } +typedef std::chrono::duration> years; + int main() { - const u32bit seconds_in_a_year = 31556926; - - const u32bit current_time = system_time(); + auto current_time = std::chrono::system_clock::now(); X509_Time now = X509_Time(current_time); - X509_Time later = X509_Time(current_time + 4*seconds_in_a_year); + X509_Time later = X509_Time(current_time + years(4)); LibraryInitializer init; diff --git a/doc/examples/rsa_manykey.cpp b/doc/examples/rsa_manykey.cpp index 4122bc8ef..cf810749a 100644 --- a/doc/examples/rsa_manykey.cpp +++ b/doc/examples/rsa_manykey.cpp @@ -25,7 +25,7 @@ int main() RSA_PrivateKey key(rng, j); - std::ofstream priv(("rsa/" + to_string(j) + ".pem").c_str()); + std::ofstream priv(("rsa/" + std::to_string(j) + ".pem").c_str()); priv << PKCS8::PEM_encode(key); priv.close(); -- cgit v1.2.3 From 29e9b23500d101f01988a33e8f1a6aaab39d5f7d Mon Sep 17 00:00:00 2001 From: lloyd Date: Tue, 1 Dec 2009 15:36:30 +0000 Subject: Most files including actually just needed Clean up implementation of calendar_value() a bit --- doc/examples/ca.cpp | 2 +- doc/examples/gen_certs.cpp | 2 +- src/cert/cvc/cvc_self.cpp | 2 +- src/cert/x509/x509opt.cpp | 2 +- src/cert/x509/x509stor.cpp | 2 +- src/entropy/hres_timer/hres_timer.cpp | 1 - src/utils/time.cpp | 25 +++++++++++++------------ src/utils/time.h | 4 ++++ 8 files changed, 22 insertions(+), 18 deletions(-) (limited to 'doc/examples') diff --git a/doc/examples/ca.cpp b/doc/examples/ca.cpp index 8be0fa527..8ca6228c2 100644 --- a/doc/examples/ca.cpp +++ b/doc/examples/ca.cpp @@ -15,11 +15,11 @@ #include #include -#include using namespace Botan; #include #include +#include int main(int argc, char* argv[]) { diff --git a/doc/examples/gen_certs.cpp b/doc/examples/gen_certs.cpp index 557c6f46e..5f943ff3a 100644 --- a/doc/examples/gen_certs.cpp +++ b/doc/examples/gen_certs.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include using namespace Botan; diff --git a/src/cert/cvc/cvc_self.cpp b/src/cert/cvc/cvc_self.cpp index 3b764644f..ae10838ac 100644 --- a/src/cert/cvc/cvc_self.cpp +++ b/src/cert/cvc/cvc_self.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include namespace Botan { diff --git a/src/cert/x509/x509opt.cpp b/src/cert/x509/x509opt.cpp index a2547e30a..8d235ad5d 100644 --- a/src/cert/x509/x509opt.cpp +++ b/src/cert/x509/x509opt.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include namespace Botan { diff --git a/src/cert/x509/x509stor.cpp b/src/cert/x509/x509stor.cpp index a055602a8..80507c1dd 100644 --- a/src/cert/x509/x509stor.cpp +++ b/src/cert/x509/x509stor.cpp @@ -10,8 +10,8 @@ #include #include #include -#include #include +#include #include namespace Botan { diff --git a/src/entropy/hres_timer/hres_timer.cpp b/src/entropy/hres_timer/hres_timer.cpp index 74ea801c4..0f75583ef 100644 --- a/src/entropy/hres_timer/hres_timer.cpp +++ b/src/entropy/hres_timer/hres_timer.cpp @@ -7,7 +7,6 @@ #include #include -#include #if defined(BOTAN_TARGET_OS_IS_WINDOWS) #include diff --git a/src/utils/time.cpp b/src/utils/time.cpp index 1c64c820e..97804813d 100644 --- a/src/utils/time.cpp +++ b/src/utils/time.cpp @@ -43,25 +43,26 @@ u64bit combine_timers(u32bit seconds, u32bit parts, u32bit parts_hz) return res; } -} - -/* -* Convert a time_t to a struct tm -*/ -calendar_point calendar_value( - const std::chrono::system_clock::time_point& time_point) +std::tm do_gmtime(time_t time_val) { - time_t time_val = std::chrono::system_clock::to_time_t(time_point); - // Race condition: std::gmtime is not assured thread safe, // and C++ does not include gmtime_r. Use a mutex here? std::tm* tm_p = std::gmtime(&time_val); if (tm_p == 0) - throw Encoding_Error("time_t_to_tm could not convert"); + throw Encoding_Error("calendar_value could not convert with gmtime"); + return *tm_p; + } - std::tm tm = *tm_p; - // Race is over here +} + +/* +* Convert a time_point to a calendar_point +*/ +calendar_point calendar_value( + const std::chrono::system_clock::time_point& time_point) + { + std::tm tm = do_gmtime(std::chrono::system_clock::to_time_t(time_point)); return calendar_point(tm.tm_year + 1900, tm.tm_mon + 1, diff --git a/src/utils/time.h b/src/utils/time.h index 28b777efe..bd1c8fb06 100644 --- a/src/utils/time.h +++ b/src/utils/time.h @@ -29,6 +29,10 @@ struct BOTAN_DLL calendar_point year(y), month(mon), day(d), hour(h), minutes(min), seconds(sec) {} }; +/* +* @param time_point a time point from the system clock +* @returns calendar_point object representing this time point +*/ BOTAN_DLL calendar_point calendar_value( const std::chrono::system_clock::time_point& time_point); -- cgit v1.2.3