X-Git-Url: https://vcs.maemo.org/git/?p=googlelatitude;a=blobdiff_plain;f=libkqoauth%2Fkqoauthutils.cpp;fp=libkqoauth%2Fkqoauthutils.cpp;h=0000000000000000000000000000000000000000;hp=d6518a7a28109248d79eb148562db94f23b95658;hb=ca759b3fd3b64ad976c4917e93513b3d05999f13;hpb=0274061406db78bb79ef433c5c438178103aaa58 diff --git a/libkqoauth/kqoauthutils.cpp b/libkqoauth/kqoauthutils.cpp deleted file mode 100644 index d6518a7..0000000 --- a/libkqoauth/kqoauthutils.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/** - * KQOAuth - An OAuth authentication library for Qt. - * - * Author: Johan Paul (johan.paul@d-pointer.com) - * http://www.d-pointer.com - * - * KQOAuth is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * KQOAuth is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with KQOAuth. If not, see . - */ -#include -#include -#include - -#include -#include "kqoauthutils.h" - -QString KQOAuthUtils::hmac_sha1(const QString &message, const QString &key) -{ - QByteArray keyBytes = key.toAscii(); - int keyLength; // Lenght of key word - const int blockSize = 64; // Both MD5 and SHA-1 have a block size of 64. - - keyLength = keyBytes.size(); - // If key is longer than block size, we need to hash the key - if (keyLength > blockSize) { - QCryptographicHash hash(QCryptographicHash::Sha1); - hash.addData(keyBytes); - keyBytes = hash.result(); - } - - /* http://tools.ietf.org/html/rfc2104 - (1) */ - // Create the opad and ipad for the hash function. - QByteArray ipad; - QByteArray opad; - - ipad.fill( 0, blockSize); - opad.fill( 0, blockSize); - - ipad.replace(0, keyBytes.length(), keyBytes); - opad.replace(0, keyBytes.length(), keyBytes); - - /* http://tools.ietf.org/html/rfc2104 - (2) & (5) */ - for (int i=0; i<64; i++) { - ipad[i] = ipad[i] ^ 0x36; - opad[i] = opad[i] ^ 0x5c; - } - - QByteArray workArray; - workArray.clear(); - - workArray.append(ipad, 64); - /* http://tools.ietf.org/html/rfc2104 - (3) */ - workArray.append(message.toAscii()); - - - /* http://tools.ietf.org/html/rfc2104 - (4) */ - QByteArray sha1 = QCryptographicHash::hash(workArray, QCryptographicHash::Sha1); - - /* http://tools.ietf.org/html/rfc2104 - (6) */ - workArray.clear(); - workArray.append(opad, 64); - workArray.append(sha1); - - sha1.clear(); - - /* http://tools.ietf.org/html/rfc2104 - (7) */ - sha1 = QCryptographicHash::hash(workArray, QCryptographicHash::Sha1); - return QString(sha1.toBase64()); -}