aboutsummaryrefslogtreecommitdiffstats
path: root/src/fuzzer/os2ecp.cpp
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2017-07-31 15:13:15 -0400
committerJack Lloyd <[email protected]>2017-08-25 17:36:51 -0400
commit3baa546d70bcd078b23be07069d755a5f130fb0f (patch)
treed626d73fdf845987e2d1783e8493593501378a07 /src/fuzzer/os2ecp.cpp
parent41e1e7cbc1e4e864ad5d15dd0c09227b04940a91 (diff)
Create new fuzzer build mode
Diffstat (limited to 'src/fuzzer/os2ecp.cpp')
-rw-r--r--src/fuzzer/os2ecp.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/fuzzer/os2ecp.cpp b/src/fuzzer/os2ecp.cpp
new file mode 100644
index 000000000..dba6dbdfe
--- /dev/null
+++ b/src/fuzzer/os2ecp.cpp
@@ -0,0 +1,44 @@
+/*
+* (C) 2015,2016 Jack Lloyd
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+#include "fuzzers.h"
+#include <botan/ec_group.h>
+#include <botan/point_gfp.h>
+
+namespace {
+
+void check_os2ecp(const Botan::EC_Group& group, const uint8_t in[], size_t len)
+ {
+ try
+ {
+ Botan::PointGFp point = Botan::OS2ECP(in, len, group.get_curve());
+ }
+ catch(Botan::Exception& e) {}
+ }
+
+}
+
+void fuzz(const uint8_t in[], size_t len)
+ {
+ if(len >= 256)
+ return;
+
+ static Botan::EC_Group p192("secp192r1");
+ static Botan::EC_Group p224("secp224r1");
+ static Botan::EC_Group p256("secp256r1");
+ static Botan::EC_Group p384("secp384r1");
+ static Botan::EC_Group p521("secp521r1");
+ static Botan::EC_Group bp256("brainpool256r1");
+ static Botan::EC_Group bp512("brainpool512r1");
+
+ check_os2ecp(p192, in, len);
+ check_os2ecp(p224, in, len);
+ check_os2ecp(p256, in, len);
+ check_os2ecp(p384, in, len);
+ check_os2ecp(p521, in, len);
+ check_os2ecp(p521, in, len);
+ check_os2ecp(bp256, in, len);
+ check_os2ecp(bp512, in, len);
+ }