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