import Hex from 'crypto-js/enc-hex'
import HmacSHA512 from 'crypto-js/hmac-sha512'
import { recognizerLogger as logger } from '../configuration/LoggerConfig'

/**
 * Compute HMAC signature for server authentication
 *
 * @param {Object} input Input data to compute HMAC
 * @param {String} applicationKey Current applicationKey
 * @param {String} hmacKey Current hmacKey
 * @return {String} Signature
 */
export function computeHmac (input, applicationKey, hmacKey) {
  const jsonInput = (typeof input === 'object') ? JSON.stringify(input) : input
  logger.debug('The HmacSHA512 function is loaded', HmacSHA512)
  return new HmacSHA512(jsonInput, applicationKey + hmacKey).toString(Hex)
}
