From a793dc2b29e199d9512f8d22e005900fb986b146 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 15 Jul 2013 09:06:59 -0400 Subject: Small updates to documentation, a few precautionary fixes. --- node/EllipticCurveKey.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'node/EllipticCurveKey.hpp') diff --git a/node/EllipticCurveKey.hpp b/node/EllipticCurveKey.hpp index 5a7b895f..cc666104 100644 --- a/node/EllipticCurveKey.hpp +++ b/node/EllipticCurveKey.hpp @@ -65,6 +65,7 @@ public: throw() : _bytes(0) { + memset(_key,0,sizeof(_key)); } EllipticCurveKey(const void *data,unsigned int len) -- cgit v1.2.3 From 304ed641fedc148520551904ff1b1819a230561d Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Sat, 27 Jul 2013 16:26:06 -0400 Subject: makekeypair utility --- Makefile.mac | 3 +++ makekeypair.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ node/EllipticCurveKey.hpp | 11 +++++++---- 3 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 makekeypair.cpp (limited to 'node/EllipticCurveKey.hpp') diff --git a/Makefile.mac b/Makefile.mac index 4f85cc5a..61c6c1d0 100644 --- a/Makefile.mac +++ b/Makefile.mac @@ -56,6 +56,9 @@ launcher-fakebin: $(CC) $(CFLAGS) -DZEROTIER_FAKE_VERSION_MAJOR=1 -DZEROTIER_FAKE_VERSION_MINOR=2 -DZEROTIER_FAKE_VERSION_REV $(CC) $(CFLAGS) -DZEROTIER_FAKE_VERSION_MAJOR=1 -DZEROTIER_FAKE_VERSION_MINOR=2 -DZEROTIER_FAKE_VERSION_REV +makekeypair: $(OBJS) + $(CXX) $(CXXFLAGS) -o zerotier-makekeypair makekeypair.cpp $(OBJS) $(LIBS) + clean: rm -rf *.dSYM rm -f $(OBJS) zerotier-* diff --git a/makekeypair.cpp b/makekeypair.cpp new file mode 100644 index 00000000..b8736a4e --- /dev/null +++ b/makekeypair.cpp @@ -0,0 +1,47 @@ +/* + * ZeroTier One - Global Peer to Peer Ethernet + * Copyright (C) 2012-2013 ZeroTier Networks LLC + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * -- + * + * ZeroTier may be used and distributed under the terms of the GPLv3, which + * are available at: http://www.gnu.org/licenses/gpl-3.0.html + * + * If you would like to embed ZeroTier into a commercial application or + * redistribute it in a modified binary form, please contact ZeroTier Networks + * LLC. Start here: http://www.zerotier.com/ + */ + +#include +#include +#include "node/EllipticCurveKeyPair.hpp" +#include "node/EllipticCurveKey.hpp" +#include "node/Utils.hpp" + +using namespace ZeroTier; + +int main(int argc,char **argv) +{ + std::cout << "[generating]" << std::endl; + + EllipticCurveKeyPair kp; + kp.generate(); + + std::cout << "PUBLIC: " << kp.pub().toHex() << std::endl; + std::cout << "PRIVATE: " << kp.priv().toHex() << std::endl; + + return 0; +} diff --git a/node/EllipticCurveKey.hpp b/node/EllipticCurveKey.hpp index cc666104..b32f702d 100644 --- a/node/EllipticCurveKey.hpp +++ b/node/EllipticCurveKey.hpp @@ -71,10 +71,13 @@ public: EllipticCurveKey(const void *data,unsigned int len) throw() { - if (len <= ZT_EC_MAX_BYTES) { - _bytes = len; - memcpy(_key,data,len); - } else _bytes = 0; + set(data,len); + } + + EllipticCurveKey(const std::string &data) + throw() + { + set(data.data(),data.length()); } EllipticCurveKey(const EllipticCurveKey &k) -- cgit v1.2.3