Skip to content

Instantly share code, notes, and snippets.

@omegachien
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save omegachien/c6e02f5e19c3efecdc44 to your computer and use it in GitHub Desktop.
Save omegachien/c6e02f5e19c3efecdc44 to your computer and use it in GitHub Desktop.
#include <CommonCrypto/CommonDigest.h>
#include <CommonCrypto/CommonHMAC.h>
+(NSString*)generateSignature:(NSString*) dataToEncrypt{
NSString *key = UserSecretKey;
NSString *data = dataToEncrypt;
const char *cKey = [key cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *nsdata = [NSData dataWithBytes:cHMAC length:CC_SHA256_DIGEST_LENGTH];
NSUInteger capacity = [nsdata length] * 2;
NSMutableString *stringBuffer = [NSMutableString stringWithCapacity:capacity];
const unsigned char *dataBuffer = [nsdata bytes];
NSInteger i;
for (i=0; i<[nsdata length]; ++i) {
[stringBuffer appendFormat:@"%02X", (NSUInteger)dataBuffer[i]];
}
return [stringBuffer lowercaseString];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment