hmac HTTP API请求

时间:2017-06-18 10:03:48

标签: objective-c api http hmac

我正在尝试创建一个连接到论坛的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

感谢您的帮助。

0 个答案:

没有答案