Я делаю следующее в Java, что я хотел бы сделать эквивалент в Objective-C (минус бит Base64, который я уже получил работать):
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(PRIVATE_KEY.getBytes(),"HmacSHA1");
mac.init(secret);
result = Base64.encodeToString(mac.doFinal(data), Base64.DEFAULT);
Существуют ли какие-либо библиотеки Objective-C, которые могут помочь мне сделать эквивалент?
* ОБНОВЛЕНИЕ *
Просто обновление - у меня работает следующий код, но out
выходит пустым:
NSData *keyData = [PRIVATE_KEY dataUsingEncoding:NSUTF8StringEncoding];
NSData *clearTextData = [data dataUsingEncoding:NSUTF8StringEncoding];
uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
CCHmacContext hmacContext;
CCHmacInit(&hmacContext, kCCHmacAlgSHA1, keyData.bytes, keyData.length);
CCHmacUpdate(&hmacContext, clearTextData.bytes, clearTextData.length);
CCHmacFinal(&hmacContext, digest);
NSData *out = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
NSLog(@"encrypted data: %@", [NSString stringWithUTF8String:[out bytes]]);