瀏覽代碼

Fix idtool build, tweak address derivation again.

Adam Ierymenko 12 年之前
父節點
當前提交
77f8d75529
共有 2 個文件被更改,包括 6 次插入10 次删除
  1. 5 9
      idtool.cpp
  2. 1 1
      node/Identity.cpp

+ 5 - 9
idtool.cpp

@@ -33,6 +33,7 @@
 
 #include "node/Identity.hpp"
 #include "node/Utils.hpp"
+#include "node/C25519.hpp"
 
 using namespace ZeroTier;
 
@@ -131,13 +132,8 @@ int main(int argc,char **argv)
 			std::cerr << argv[3] << " is not readable" << std::endl;
 			return -1;
 		}
-		std::string signature = id.sign(inf.data(),inf.length());
-		if (!signature.length()) {
-			std::cerr << "Error computing SHA256 or signature (bug?)" << std::endl;
-			return -1;
-		}
-
-		std::cout << Utils::base64Encode(signature.data(),signature.length());
+		C25519::Signature signature = id.sign(inf.data(),inf.length());
+		std::cout << Utils::hex(signature.data,signature.size());
 	} else if (!strcmp(argv[1],"verify")) {
 		if (argc < 4) {
 			printHelp(argv[0]);
@@ -156,8 +152,8 @@ int main(int argc,char **argv)
 			return -1;
 		}
 
-		std::string signature(Utils::base64Decode(argv[4],strlen(argv[4])));
-		if ((signature.length() > ZT_ADDRESS_LENGTH)&&(id.verifySignature(inf.data(),inf.length(),signature.data(),signature.length()))) {
+		std::string signature(Utils::unhex(argv[4]));
+		if ((signature.length() > ZT_ADDRESS_LENGTH)&&(id.verify(inf.data(),inf.length(),signature.data(),signature.length()))) {
 			std::cout << argv[3] << " signature valid" << std::endl;
 		} else {
 			std::cerr << argv[3] << " signature check FAILED" << std::endl;

+ 1 - 1
node/Identity.cpp

@@ -132,7 +132,7 @@ bool Identity::fromString(const char *str)
 // These are fixed parameters and can't be changed without a new
 // identity type.
 #define ZT_IDENTITY_DERIVEADDRESS_MEMORY 33554432
-#define ZT_IDENTITY_DERIVEADDRESS_ROUNDS 64
+#define ZT_IDENTITY_DERIVEADDRESS_ROUNDS 50
 
 Address Identity::deriveAddress(const void *keyBytes,unsigned int keyLen)
 {