aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/fish/libkvifish.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2011-01-31 22:30:04 +0000
committerGravatar Fabio Bas2011-01-31 22:30:04 +0000
commitc338e7eba86ae8d4519fad1a095ca568ae1b5013 (patch)
tree5d7da71dab29c480ee1038aa80d0b518efc23892 /src/modules/fish/libkvifish.cpp
parentfish module: fixed simmetrical cipher init, now it's supposed to work (diff)
downloadKVIrc-c338e7eba86ae8d4519fad1a095ca568ae1b5013.tar.gz
KVIrc-c338e7eba86ae8d4519fad1a095ca568ae1b5013.tar.bz2
KVIrc-c338e7eba86ae8d4519fad1a095ca568ae1b5013.zip
fish: use qt's base 64 methods
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5406 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/fish/libkvifish.cpp')
-rw-r--r--src/modules/fish/libkvifish.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/modules/fish/libkvifish.cpp b/src/modules/fish/libkvifish.cpp
index a55f09a05..3365df133 100644
--- a/src/modules/fish/libkvifish.cpp
+++ b/src/modules/fish/libkvifish.cpp
@@ -135,7 +135,7 @@
return true;
unsigned char * szMyPubKey = 0;
- KviCString szHisPubKey, szTmp;
+ QByteArray szHisPubKey, szTmp;
int iMyPubKeyLen, * pMyPubKeyLen = &iMyPubKeyLen;
if(!fish_DH1080_gen(&szMyPubKey, pMyPubKeyLen))
return false;
@@ -144,29 +144,23 @@
{
c->window()->output(KVI_OUT_SYSTEMMESSAGE,__tr2qs("FiSH: Received DH1080 public key from %1, sending mine...").arg(szNick));
// fish appends an 'A' to all base64 coded strings
- char * tmpBuf;
- int len;
- szHisPubKey.setStr(szMessage.mid(12).toAscii().data(), FISH_KEYLEN);
- len = szHisPubKey.base64ToBuffer(&tmpBuf,false);
- if(len > 0)
- szHisPubKey.setStr(tmpBuf, len);
+ szHisPubKey = szMessage.mid(12).toAscii();
+ szHisPubKey.truncate(FISH_KEYLEN);
+ szHisPubKey = QByteArray::fromBase64(szHisPubKey);
- szTmp.bufferToBase64((char *) szMyPubKey, iMyPubKeyLen);
+ szTmp = QByteArray((char *)szMyPubKey, iMyPubKeyLen).toBase64();
c->window()->console()->connection()->sendFmtData("NOTICE %s :DH1080_FINISH %sA",
c->window()->console()->connection()->encodeText(szNick).data(),
- szTmp.ptr()
+ szTmp.data()
);
}
if(szMessage.startsWith("DH1080_FINISH ", Qt::CaseSensitive))
{
// fish appends an 'A' to all base64 coded strings
- char * tmpBuf;
- int len;
- szHisPubKey.setStr(szMessage.mid(14).toAscii().data(), FISH_KEYLEN);
- len = szHisPubKey.base64ToBuffer(&tmpBuf,false);
- if(len > 0)
- szHisPubKey.setStr(tmpBuf, len);
+ szHisPubKey = szMessage.mid(14).toAscii();
+ szHisPubKey.truncate(FISH_KEYLEN);
+ szHisPubKey = QByteArray::fromBase64(szHisPubKey);
}
if(!c->window()->connection())
@@ -198,10 +192,10 @@
unsigned char * secret=(unsigned char *) KviMemory::allocate(DH_size(g_fish_dh));
int secretLen;
- BIGNUM *bn = BN_bin2bn((unsigned char*) szHisPubKey.ptr(), szHisPubKey.len(),NULL);
+ BIGNUM *bn = BN_bin2bn((unsigned char *) szHisPubKey.data(), szHisPubKey.size(),NULL);
if(-1 == (secretLen = DH_compute_key(secret, bn, g_fish_dh)))
{
- c->warning(__tr2qs("FiSH: error verificating peer public key (size=%1)").arg(szHisPubKey.len()));
+ c->warning(__tr2qs("FiSH: error verificating peer public key (size=%1)").arg(szHisPubKey.size()));
return false;
}
BN_zero(bn);