Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save onlyyoujack/d490260fa05cb7f0e7e9 to your computer and use it in GitHub Desktop.
Save onlyyoujack/d490260fa05cb7f0e7e9 to your computer and use it in GitHub Desktop.
Base64 encoded HMAC-SHA1 in iOS and Rails
NSString *secret = @"xxx";
NSString *data = @"http://someurl?someparams";
const char *cKey = [secret cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA1_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];
NSString *signature = [HMAC base64EncodedStringWithOptions:0];
secret = "xxx"
data = "http://someurl?someparams"
hmac = OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), secret.encode("ASCII"), data.encode("ASCII"))
signature = Base64.encode64(hmac).chomp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment