rtphone/src/libs/ice/ICESHA1.cpp

39 lines
1.2 KiB
C++

/* Copyright(C) 2007-2014 VoIP objects (voipobjects.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "ICESHA1.h"
#ifdef USE_CRYPTOPP
#include "../CryptoPP/hmac.h"
#include "../CryptoPP/sha.h"
void hmacSha1Digest(const void* inputData, size_t inputSize, void* outputData, const void* key, size_t keySize)
{
CryptoPP::HMAC<CryptoPP::SHA1> mac((const byte*)key, keySize);
mac.Update((const byte*)inputData, inputSize);
mac.Final((byte*)outputData);
}
#elif defined(USE_OPENSSL)
#include <openssl/hmac.h>
void hmacSha1Digest(const void* inputData, size_t inputSize, void* outputData, const void* key, size_t keySize)
{
unsigned outputSize = 0;
HMAC(EVP_sha1(), key, keySize, (const unsigned char*)inputData, inputSize, (unsigned char*)outputData, &outputSize);
}
#else
#include "hmac_sha1_impl.h"
void hmacSha1Digest(const void* inputData, size_t inputSize, void* outputData, const void* key, size_t keySize)
{
hmac_sha1((const uint8_t*)key, keySize, (const uint8_t*)inputData, inputSize, (uint8_t*)outputData);
}
#endif