Хотите проверить подпись на данных или просто «расшифровать» их? Если это последнее, вы можете просто проигнорировать подпись:
NSString *signedData = ...;
NSString *base64EncodedData = [[signedData componentsSeparatedByString:@"."] objectAtIndex:1];
NSString *jsonString = [NSString stringWithBase64String:base64EncodedData];
id jsonObject = ...;
Я оставляю использование Facebook SDK и выбираю подходящую среду JSON (я рекомендую JSONKit ) до вас.
Ваш комментарий означает, что вы хотите проверить HMAC, включенный в сообщение. В этом случае:
unsigned int length = 0;
unsigned char *expectedHmac = HMAC(EVP_sha256(), [key bytes], [key length], [base64EncodedData UTF8String], [base64EncodedData length], NULL, &length);
NSData *expectedHmacData = [NSData dataWithBytes:expectedHmac length:length];
// compare expected hmac