From: brain Date: Thu, 22 Dec 2005 13:11:27 +0000 (+0000) Subject: Allowed capab unencrypted in an encrypted connection X-Git-Tag: v2.0.23~9439 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=5b889dc2478831e40767a71a6c8970e5e03938f9;p=user%2Fhenk%2Fcode%2Finspircd.git Allowed capab unencrypted in an encrypted connection git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2635 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index ffc3befa4..57872b65d 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -1230,8 +1230,8 @@ class TreeSocket : public InspSocket char out[1024]; char result[1024]; log(DEBUG,"Original string '%s'",ret.c_str()); - /* ERROR is still allowed unencryped */ - if (ret.substr(0,7) != "ERROR :") + /* ERROR + CAPAB is still allowed unencryped */ + if ((ret.substr(0,7) != "ERROR :") && (ret.substr(0,6) != "CAPAB ")) { int nbytes = from64tobits(out, ret.c_str(), 1024); log(DEBUG,"m_spanningtree: decrypt %d bytes",nbytes); @@ -1256,8 +1256,8 @@ class TreeSocket : public InspSocket if (this->ctx) { log(DEBUG,"AES context"); - char result[1024]; - char result64[1024]; + char result[10240]; + char result64[10240]; if (this->keylength) { while (line.length() % this->keylength != 0) @@ -1266,10 +1266,13 @@ class TreeSocket : public InspSocket line = line + "\7"; } } - ctx->Encrypt(line.c_str(), result, line.length(),0); + unsigned int ll = line.length(); + log(DEBUG,"Plaintext line with padding = %d chars",ll); + ctx->Encrypt(line.c_str(), result, ll, 0); + log(DEBUG,"Encrypted."); to64frombits((unsigned char*)result64, (unsigned char*)result, - line.length()); + ll); line = result64; log(DEBUG,"Encrypted: %s",line.c_str()); //int from64tobits(char *out, const char *in, int maxlen);