Browse Source

correct base64 I2P address check

pull/5/head
orignal 7 years ago
parent
commit
573b273b56
  1. 2
      i2psam/i2psam.cpp
  2. 8
      src/net.cpp
  3. 4
      src/netbase.cpp
  4. 2
      src/netbase.h

2
i2psam/i2psam.cpp

@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
#endif
#define SAM_BUFSIZE 65536
#define I2P_DESTINATION_SIZE 522 // EcDSA, GOST and EdDSA
#define I2P_DESTINATION_SIZE 524 // EcDSA, GOST and EdDSA
namespace SAM
{

8
src/net.cpp

@ -1379,9 +1379,9 @@ void MapPort(bool) @@ -1379,9 +1379,9 @@ void MapPort(bool)
static const char *strI2PDNSSeed[][2] = {
/* {"cblulrose7qdxdgl6qpnduazj6vc6syg7rcrg7hb3giziovo7hdq.b32.i2p", "cblulrose7qdxdgl6qpnduazj6vc6syg7rcrg7hb3giziovo7hdq.b32.i2p"} ,
/* {"cblulrose7qdxdgl6qpnduazj6vc6syg7rcrg7hb3giziovo7hdq.b32.i2p", "cblulrose7qdxdgl6qpnduazj6vc6syg7rcrg7hb3giziovo7hdq.b32.i2p"} ,
{"fgk23qeerln5ajlwba6x4rxuib2vvl3uzywtxcanz5erbjae6ina.b32.i2p",
"fgk23qeerln5ajlwba6x4rxuib2vvl3uzywtxcanz5erbjae6ina.b32.i2p}*/
"fgk23qeerln5ajlwba6x4rxuib2vvl3uzywtxcanz5erbjae6ina.b32.i2p"}*/
};
@ -1478,8 +1478,8 @@ unsigned int pnSeed[] = @@ -1478,8 +1478,8 @@ unsigned int pnSeed[] =
};
const std::string pstrI2PSeed[] = {
"7nY-~dTIV1dCuRkOJHTDDs-nUtfL-eLUkVOYAnJhaXeCAcHOhLrklw8uUqCmr6N1o~k1RfWbOTuxnAldnTH6OqHMaINHpKrFmeJ7ITROPoXpB88E5OSOtRX6EjGRtOzy6T6G0HeRcjIhEBeH1Omu0A1VfvwJotxAK7Y0ohgFFr7AsTysziBKN0urBe4LKZbgRLTk~zHmMGLx62tE8jfErfqE8eNGuZ7BRneOs703kWBtWTBhtAj4VwlhFUxt6sTvYhy3VBeV1Tf8ohx2Cwmy7VKeyMqPIZXNiP8V8Xi3qI8xTkJJ4j-LQmoehQ7TS~TzQ8TCgM9STnTBUIOnmEK~h8aRsu~7LmW60OlCcjZwyOUGXg7nG3Lo2pDXlNlLbnNcANVSHd237wb5gWhKP0is7c37epvGhn4D1qw85j4qjtWsOg7EAMd-0m6dBqHiUbpW0gFggWvoMfc3Oj310FT4YJ2hS9zA0BI~zJZBOmMDBsiFIBTwwXviP8zz-pOhGt3rBQAEAAcAAA=",
"zhTPnWXKSq0AS3TAMwVq9c-mGo2ShLXT3eVaOGlCCsDAQfcUb0bnGPXH8cUPXlqGT3FYPfI~VeqicfO0gk~y5Jjrob7FL5893KKoZM5~o1tnFZPD8UHbhuZ~XoZObn3Sg1fvCOwAe~1OdbXvKH63cuXQ-Ivlu6rzMk~Gio~THGvHf~1n53gwk6M6ez5w8qIFGqZekR1uGOuw9KOZ9ylpfxMKawQS08YWjAaSl1B2r3TvaQX1FR~awAdx-HjDTw3pL2wC2QaOPpGEsmG15SgTempjoEzN-xkEDSmdynxVI9eqLkx~GDDKhtfuhawJKeIOfTKFn9XPlRGmjfbcsOPtyKVbN16RsRmz9eq3Tw4InaGVk14Y4K-AV0kWzhW7AAkvkrB9VbV4qzUnV4F3EkOZc91LPwxDLONBpfn0QOYaJW48TzIMZ1wXQwzrwlsNHs4ghjRW2LA9A76FxsfIBD3CHmdiEFUf~nlBO9hFNujffKfxvEnHLXK5qjIScJ0cjY1xBQAEAAcAAA="
"7nY-~dTIV1dCuRkOJHTDDs-nUtfL-eLUkVOYAnJhaXeCAcHOhLrklw8uUqCmr6N1o~k1RfWbOTuxnAldnTH6OqHMaINHpKrFmeJ7ITROPoXpB88E5OSOtRX6EjGRtOzy6T6G0HeRcjIhEBeH1Omu0A1VfvwJotxAK7Y0ohgFFr7AsTysziBKN0urBe4LKZbgRLTk~zHmMGLx62tE8jfErfqE8eNGuZ7BRneOs703kWBtWTBhtAj4VwlhFUxt6sTvYhy3VBeV1Tf8ohx2Cwmy7VKeyMqPIZXNiP8V8Xi3qI8xTkJJ4j-LQmoehQ7TS~TzQ8TCgM9STnTBUIOnmEK~h8aRsu~7LmW60OlCcjZwyOUGXg7nG3Lo2pDXlNlLbnNcANVSHd237wb5gWhKP0is7c37epvGhn4D1qw85j4qjtWsOg7EAMd-0m6dBqHiUbpW0gFggWvoMfc3Oj310FT4YJ2hS9zA0BI~zJZBOmMDBsiFIBTwwXviP8zz-pOhGt3rBQAEAAcAAA==",
"zhTPnWXKSq0AS3TAMwVq9c-mGo2ShLXT3eVaOGlCCsDAQfcUb0bnGPXH8cUPXlqGT3FYPfI~VeqicfO0gk~y5Jjrob7FL5893KKoZM5~o1tnFZPD8UHbhuZ~XoZObn3Sg1fvCOwAe~1OdbXvKH63cuXQ-Ivlu6rzMk~Gio~THGvHf~1n53gwk6M6ez5w8qIFGqZekR1uGOuw9KOZ9ylpfxMKawQS08YWjAaSl1B2r3TvaQX1FR~awAdx-HjDTw3pL2wC2QaOPpGEsmG15SgTempjoEzN-xkEDSmdynxVI9eqLkx~GDDKhtfuhawJKeIOfTKFn9XPlRGmjfbcsOPtyKVbN16RsRmz9eq3Tw4InaGVk14Y4K-AV0kWzhW7AAkvkrB9VbV4qzUnV4F3EkOZc91LPwxDLONBpfn0QOYaJW48TzIMZ1wXQwzrwlsNHs4ghjRW2LA9A76FxsfIBD3CHmdiEFUf~nlBO9hFNujffKfxvEnHLXK5qjIScJ0cjY1xBQAEAAcAAA=="
};

4
src/netbase.cpp

@ -593,7 +593,7 @@ bool CNetAddr::SetSpecial(const std::string &strName) @@ -593,7 +593,7 @@ bool CNetAddr::SetSpecial(const std::string &strName)
const bool isBase32Addr = (strName.size() == NATIVE_I2P_B32ADDR_SIZE) && (strName.substr(strName.size() - 8, 8) == ".b32.i2p");
const std::string addr = isBase32Addr ? I2PSession::Instance().namingLookup(strName) : strName;
if ((addr.size() == NATIVE_I2P_DESTINATION_SIZE) && (addr.substr(addr.size() - 4, 4) == "AAAA")) { // last 4 symbols of b64-destination must be AAAA
if ((addr.size() == NATIVE_I2P_DESTINATION_SIZE) && (addr.substr(addr.size() - 5, 5) == "AAA==")) { // last 5 symbols of b64-destination must be AAA==
memcpy(i2pDest, addr.c_str(), NATIVE_I2P_DESTINATION_SIZE);
return true;
}
@ -723,7 +723,7 @@ bool CNetAddr::IsTor() const @@ -723,7 +723,7 @@ bool CNetAddr::IsTor() const
bool CNetAddr::IsNativeI2P() const
{
static const unsigned char pchAAA[] = {'A','A','A','='}; // EdDSA, TODO:
static const unsigned char pchAAA[] = {'A','A','A','=','='}; // EdDSA, TODO:
return (memcmp(i2pDest + NATIVE_I2P_DESTINATION_SIZE - sizeof(pchAAA), pchAAA, sizeof(pchAAA)) == 0);
}

2
src/netbase.h

@ -17,7 +17,7 @@ extern int nConnectTimeout; @@ -17,7 +17,7 @@ extern int nConnectTimeout;
#undef SetPort
#endif
#define NATIVE_I2P_DESTINATION_SIZE 522
#define NATIVE_I2P_DESTINATION_SIZE 524
#define NATIVE_I2P_B32ADDR_SIZE 60
#define NATIVE_I2P_NET_STRING "i2p"

Loading…
Cancel
Save