1
我已被告知要使用的一個Siphash鍵SipHash24密鑰 「太大,其類型爲」
24 64 6D 71 33 45 30 31 63 2F 6D 69 37 33 9D 19
我試圖從OpenBSD上使用SipHash24_Init。
我有以下全局:
const SIPHASH_KEY COMP_SIPHASH_KEY = 0x24646d7133453031632f6d6937339d19;
,並使用這樣的:
SIPHASH_CTX ctx;
SipHash24_Init(&ctx, &COMP_SIPHASH_KEY);
我會發布更多的,但它的複雜,我不認爲這是相關
但是,我得到定義/聲明以下編譯器錯誤:
error: integer constant is too large for its type
error: invalid initializer
我們不知道你正在使用哪個庫,包含這些類型或功能。 –
OpenBSD中的SipHash24 - 我的錯誤http://www.openbsd.org/cgi-bin/man.cgi?query=SipHash24 – jnd
您需要使用一個16字節的數組或兩個64位整數中的一個。可能是前者。 C的大多數實現中沒有128位的整數類型,比如'byte key [] = {0x24,0x64,0x6d,...}'。或者,您可以將其存儲爲十六進制字符串,並使用[C中的十六進制字符串到字節數組]的答案之一(http://stackoverflow.com/questions/3408706/hexadecimal-string-to-byte-array-in- c)將其轉換爲原始字節。 – CodesInChaos