我正在尝试创建一个连接到论坛的api服务器的iOS应用程序。连接本身工作正常,标题是正确的,但我的代码如何创建一个hmac以及我如何设置签名是不正确的。
签名字符串的代码:
NSString *signature = [[[self getHMACSHA256ForData:[[NSString stringWithFormat:@"%li%@", requestId, contentDigest] dataUsingEncoding:NSUTF8StringEncoding] keyValue:KEY] base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn] stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];
getHMACSHA256ForData方法的代码:
- (NSData *)getHMACSHA256ForData:(NSData *)data keyValue:(NSString *)keyValue
{
CCHmacContext ctx;
const char *key = [keyValue UTF8String];
const char *str = [data bytes];
unsigned char mac[CC_SHA256_DIGEST_LENGTH];
CCHmacInit(&ctx, kCCHmacAlgSHA256, key, strlen(key));
CCHmacUpdate(&ctx, str, [data length]);
CCHmacFinal(&ctx, mac);
return [NSData dataWithBytes:mac length:CC_SHA256_DIGEST_LENGTH];
}
我正在尝试像API的PHP客户端一样:https://gist.github.com/sevvlor/3419c34adb3ee93e42729208cfa33ef7
感谢您的帮助。