Discrepâncias na geração do HMAC SHA-512 entre as bibliotecas iOS e javascript

Estou tentando replicar o comportamento da geração Hmac do meu aplicativo iOS usando o algoritmo SHA-512, referente a este linkCódigo de amostra do Objective-C para HMAC-SHA1.

Para esse fim, tentei usarCrytoJS ejsSHA bibliotecas para calcular o Hmac usando código javascript. Encontrei discrepâncias nos valores hmac gerados por essas bibliotecas javascript e a que eu tenho usando meu código iOS.

Alguém pode me ajudar a entender o que eu poderia estar fazendo de errado aqui? Sinto que estou mexendo no formato dos valores de chave e contador que estão sendo passados para os dois métodos.

Por exemplo: key = "A raposa marrom rápida pula sobre o cachorro preguiçoso" counter = 123

Hmac gerado pelo código iOS- 8d4b0f7c7f800ffd656829b98988048b49b08d0068f6fd33add8a02b6bce8097cdd3a69dc8292ec7cc04e15021afb4499afe4a292f8db082b2d253ddfe7

Hmac gerado pelas bibliotecas javascript - 211935F67D87CBB6A98DE6A6D9D64F9AAF8DA5F09BF17F1B7E5BD46FCD9BEFBCD3585FB859BD042291AF5D79B6D92CF7B348CD6558F18AEF344

Código iOS:

NSData *key = [key dataUsingEncoding:NSASCIIStringEncoding];
NSData *rawKeyData = [DataUtil rawDataFromHex:key];

//encode the counter
uint8_t tosign[8];
for (int i = sizeof(tosign) - 1; i >= 0; i--) {
    tosign[i] = counter & 0xff;
    counter >>= 8;
}

unsigned char cHMAC[CC_SHA512_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA512, [rawKeyData bytes], [rawKeyData length], tosign, sizeof(tosign), cHMAC);

NSData *hmac = [NSData dataWithBytes:cHMAC length:sizeof(cHMAC)];

return hmac;

Código javascript:

var hash = CryptoJS.HmacSHA512("123", "The quick brown fox jumps over the lazy dog");

questionAnswers(1)

yourAnswerToTheQuestion