https://github.com/michaelhenry/mhcrypto
Objective C HASHING and HMAC implementation for nsstring and nsdata.
https://github.com/michaelhenry/mhcrypto
Last synced: 10 months ago
JSON representation
Objective C HASHING and HMAC implementation for nsstring and nsdata.
- Host: GitHub
- URL: https://github.com/michaelhenry/mhcrypto
- Owner: michaelhenry
- License: mit
- Created: 2017-02-21T19:41:06.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-23T17:59:48.000Z (almost 9 years ago)
- Last Synced: 2025-03-03T06:01:52.949Z (10 months ago)
- Language: Objective-C
- Homepage:
- Size: 111 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MHCrypto
HASHING and HMAC implementation for nsstring and nsdata.
[](https://travis-ci.org/michaelhenry/MHCrypto)
[](https://cocoapods.org/?q=mHCrypto)
[](http://iamkel.net)
### HOW to
- Please run the test. thanks
```objc
/*
aws version 4 - HMAC
http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html
*/
NSString *key = @"wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY";
NSString *dateStamp = @"20120215";
NSString *regionName = @"us-east-1";
NSString *serviceName = @"iam";
NSData *kDate = [[NSString stringWithFormat:@"AWS4%@",key]mh_hmacSha256DigestWithMessage:dateStamp];
NSLog(@"%@",[kDate mh_toHexString]);
expect([kDate mh_toHexString]).to.equal(@"969fbb94feb542b71ede6f87fe4d5fa29c789342b0f407474670f0c2489e0a0d");
NSData *kRegion = [kDate mh_hmacSha256DigestWithMessage:regionName];
NSLog(@"%@",[kRegion mh_toHexString]);
expect([kRegion mh_toHexString]).to.equal(@"69daa0209cd9c5ff5c8ced464a696fd4252e981430b10e3d3fd8e2f197d7a70c");
NSData *kService = [kRegion mh_hmacSha256DigestWithMessage:serviceName];
NSLog(@"%@",[kService mh_toHexString]);
expect([kService mh_toHexString]).to.equal(@"f72cfd46f26bc4643f06a11eabb6c0ba18780c19a8da0c31ace671265e3c87fa");
NSData *kSigning = [kService mh_hmacSha256DigestWithMessage:@"aws4_request"];
NSLog(@"%@",[kSigning mh_toHexString]);
expect([kSigning mh_toHexString]).to.equal(@"f4780e2d9f65fa895f9c67b32ce1baf0b0d8a43505a000a1a9e090d414db404d");
NSString *sha1Text = [@"hello" mh_sha1];
expect(sha1Text).to
.equal(@"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d");
NSString *sha256Text = [@"hello" mh_sha256];
expect(sha256Text).to
.equal(@"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824");
NSString *md5Text = [@"hello" mh_md5];
expect(md5Text).to
.equal(@"5d41402abc4b2a76b9719d911017c592");
```