@@ -17,39 +17,38 @@ @implementation sha256Lib
1717
1818RCT_EXPORT_MODULE ()
1919
20- RCT_EXPORT_METHOD(sha1: (NSString *) data
21- resolver: (RCTPromiseResolveBlock) resolve
22- rejecter: (RCTPromiseRejectBlock) reject)
20+ typedef unsigned char (*DIGEST_FUNCTION)(const void *data, CC_LONG len, unsigned char *md);
2321
24- {
25- const char * str = [data UTF8String ];
26- unsigned char result[CC_SHA1_DIGEST_LENGTH];
27- CC_SHA1 (str, (CC_LONG)strlen (str), result);
22+ - (NSString *) calcHash : (NSString *) subject withDigestFunction : (DIGEST_FUNCTION) digest withDigestLength : (int ) digestLength {
23+
24+ const char * str = [subject UTF8String ];
25+ unsigned char result[digestLength];
26+ digest (str, strlen (str), result);
2827
29- NSMutableString *ret = [NSMutableString stringWithCapacity: CC_SHA1_DIGEST_LENGTH* 2 ];
30- for (int i = 0 ; i<CC_SHA1_DIGEST_LENGTH ; i++)
28+ NSMutableString *ret = [NSMutableString stringWithCapacity: digestLength * 2 ];
29+ for (int i = 0 ; i < digestLength ; i++)
3130 {
3231 [ret appendFormat: @" %02x " ,result[i]];
3332 }
3433
35- resolve ( ret) ;
34+ return ret;
3635}
3736
38- RCT_EXPORT_METHOD (sha256 : (NSString *) data
37+ RCT_EXPORT_METHOD (sha1 : (NSString *) data
3938 resolver: (RCTPromiseResolveBlock) resolve
4039 rejecter: (RCTPromiseRejectBlock) reject)
4140
4241{
43- const char * str = [data UTF8String ];
44- unsigned char result[CC_SHA256_DIGEST_LENGTH] ;
45- CC_SHA256 (str, strlen (str), result);
42+ NSString *ret = [self calcHash: data withDigestFunction: CC_SHA1 withDigestLength: CC_SHA1_DIGEST_LENGTH ];
43+ resolve (ret) ;
44+ }
4645
47- NSMutableString *ret = [NSMutableString stringWithCapacity: CC_SHA256_DIGEST_LENGTH*2 ];
48- for (int i = 0 ; i<CC_SHA256_DIGEST_LENGTH; i++)
49- {
50- [ret appendFormat: @" %02x " ,result[i]];
51- }
46+ RCT_EXPORT_METHOD (sha256: (NSString *) data
47+ resolver: (RCTPromiseResolveBlock) resolve
48+ rejecter: (RCTPromiseRejectBlock) reject)
5249
50+ {
51+ NSString *ret = [self calcHash: data withDigestFunction: CC_SHA256 withDigestLength: CC_SHA256_DIGEST_LENGTH];
5352 resolve (ret);
5453}
5554
0 commit comments