Quellcode durchsuchen

Add uint16_t key to Hashtable, and make Salsa20 zero its keyspace on destruction.

Adam Ierymenko vor 9 Jahren
Ursprung
Commit
719233617c
2 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen
  1. 4 1
      node/Hashtable.hpp
  2. 3 0
      node/Salsa20.hpp

+ 4 - 1
node/Hashtable.hpp

@@ -382,7 +382,10 @@ private:
 	}
 	static inline unsigned long _hc(const uint32_t i)
 	{
-		// In the uint32_t case we use a simple multiplier for hashing to ensure coverage
+		return ((unsigned long)i * (unsigned long)0x9e3779b1);
+	}
+	static inline unsigned long _hc(const uint16_t i)
+	{
 		return ((unsigned long)i * (unsigned long)0x9e3779b1);
 	}
 

+ 3 - 0
node/Salsa20.hpp

@@ -12,6 +12,7 @@
 #include <stdlib.h>
 
 #include "Constants.hpp"
+#include "Utils.hpp"
 
 #if (!defined(ZT_SALSA20_SSE)) && (defined(__SSE2__) || defined(__WINDOWS__))
 #define ZT_SALSA20_SSE 1
@@ -31,6 +32,8 @@ class Salsa20
 public:
 	Salsa20() throw() {}
 
+	~Salsa20() { Utils::burn(&_state,sizeof(_state)); }
+
 	/**
 	 * @param key Key bits
 	 * @param kbits Number of key bits: 128 or 256 (recommended)