Я пытаюсь использовать функцию со следующей подписью для подписи HTTP-запроса:
extern void hmac_sha1(const unsigned char *inText, int inTextLength, unsigned char* inKey, const unsigned int inKeyLength, unsigned char *outDigest);
И вот метод, который я написал, чтобы использовать его:
- (NSString *)sign: (NSString *)stringToSign {
NSString *secretKey = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const unsigned char *inText = (unsigned char *)[stringToSign UTF8String];
int inTextLength = [stringToSign length];
unsigned char *inKey = (unsigned char *)[secretKey UTF8String];
const unsigned int inKeyLength = (unsigned int)[secretKey length];
unsigned char *outDigest;
hmac_sha1(inText, inTextLength, inKey, inKeyLength, outDigest);
NSString *output = [NSString stringWithUTF8String:(const char *)outDigest];
return output;
}
Проблема в том, что я уверен, что это не тот способ, которым я должен выполнять это приведение, поскольку внутри этой функции hmac_sha1
я получаю исключение EXC_BAD_ACCESS
.
Поскольку я новичок в Objective-C и почти не имею опыта в C (удивительно!), Я не знаю, что искать. Любые советы о том, как я могу начать решать эту проблему?
Заранее спасибо!
Кстати, я получил ссылку на эту функцию здесь в stackoverflow .