makekeypair utility

This commit is contained in:
Adam Ierymenko 2013-07-27 16:26:06 -04:00
parent 7a17f6ca80
commit 304ed641fe
3 changed files with 57 additions and 4 deletions

View File

@ -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-*

47
makekeypair.cpp Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
*
* --
*
* 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 <iostream>
#include <string>
#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;
}

View File

@ -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)