Closed vikrant88 closed 7 years ago
HI @vikrant88, what programming language do you use for generating signature ?
Sorry I forgot to mention. I used Objective C
@vikrant88
I don't know how to use HMAC-SHA for generate signature :
#import <CommonCrypto/CommonHMAC.h>
@implementation SignHelper
// Example of data:
// NSString *signature = @"application_id=22&auth_key=wJHd4cQSxpQGWx5&nonce=33432×tamp=1326966962"
// data = [signature dataUsingEncoding:NSUTF8StringEncoding];
// secret - [QBSettings authSecret]
+ (NSString *)signData:(NSData *)data withSecret:(NSString *)secret {
NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding];
NSData *clearTextData = data;
uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0};
CCHmacContext hmacContext;
CCHmacInit(&hmacContext, kCCHmacAlgSHA1, secretData.bytes, secretData.length);
CCHmacUpdate(&hmacContext, clearTextData.bytes, clearTextData.length);
CCHmacFinal(&hmacContext, digest);
NSData *result = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
NSString *hash = [result description];
hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
return hash;
}
@end
and what is timestamp or nonce parameter in it:
nonce - random int value timestamp - (int)[[NSDate date] timeIntervalSince1970]
Thanks for reply. Please tell me what is parameter value data and secret in method given by you.
@vikrant88 Check comments before + (NSString *)signData:(NSData *)data withSecret:(NSString *)secret
@vikrant88 - Take a look at Signature generation. There you can find formats with user and social provider.
@Pro100Andrey Thanks for reply. I am using and let you know.
Thanks @Pro100Andrey. My issue solved. Thanks again.
@vikrant88
I don't know how to use HMAC-SHA for generate signature :
#import <CommonCrypto/CommonHMAC.h> @implementation SignHelper // Example of data: // NSString *signature = @"application_id=22&auth_key=wJHd4cQSxpQGWx5&nonce=33432×tamp=1326966962" // data = [signature dataUsingEncoding:NSUTF8StringEncoding]; // secret - [QBSettings authSecret] + (NSString *)signData:(NSData *)data withSecret:(NSString *)secret { NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding]; NSData *clearTextData = data; uint8_t digest[CC_SHA1_DIGEST_LENGTH] = {0}; CCHmacContext hmacContext; CCHmacInit(&hmacContext, kCCHmacAlgSHA1, secretData.bytes, secretData.length); CCHmacUpdate(&hmacContext, clearTextData.bytes, clearTextData.length); CCHmacFinal(&hmacContext, digest); NSData *result = [NSData dataWithBytes:digest length:CC_SHA1_DIGEST_LENGTH]; NSString *hash = [result description]; hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""]; hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""]; hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""]; return hash; } @end
and what is timestamp or nonce parameter in it:
nonce - random int value timestamp - (int)[[NSDate date] timeIntervalSince1970]
### How to generate it in Dart/Flutter?
Hello I am working on app with Quickblox 2.6. I want to use https://api.quickblox.com/session.json Api with the help of following link. http://quickblox.com/developers/Authentication_and_Authorization I don't know how to use HMAC-SHA for generate signature and what is timestamp or nonce parameter in it. Please help me