SHA-256: Difference between revisions

Content added Content deleted
No edit summary
(Fixed to use digest instead of HMAC.)
Line 803: Line 803:


=={{header|Objective-C}}==
=={{header|Objective-C}}==
Build with something like
{{incorrect|Objective-C}}
<pre>
<lang objc>#import <CommonCrypto/CommonHMAC.h>
clang -o rosetta_sha256 rosetta_sha256.m /System/Library/Frameworks/Cocoa.framework/Cocoa
</pre>
@implementation AppDelegate
or in XCode.
<lang objc>#import <Cocoa/Cocoa.h>
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
#import <CommonCrypto/CommonDigest.h>
NSString* key = @"secret";
NSString* data = @"Message";
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);


NSMutableString* result = [NSMutableString stringWithCapacity:(CC_SHA256_DIGEST_LENGTH * 2)];
for(CC_LONG i = 0; i < CC_SHA256_DIGEST_LENGTH; i++)
[result appendFormat:@"%02x", cHMAC[i]];


int main(int argc, char ** argv) {
NSLog(@"Sha-256: %@", result);
NSString * msg = @"Rosetta code";

unsigned char buf[CC_SHA256_DIGEST_LENGTH];
}</lang>
const char * rc = [msg cStringUsingEncoding:NSASCIIStringEncoding];
if (! CC_SHA256(rc, strlen(rc), buf)) {
NSLog(@"Failure...");
return -1;
}
NSMutableString * res = [NSMutableString stringWithCapacity:(CC_SHA256_DIGEST_LENGTH * 2)];
for (int i = 0; i < CC_SHA256_DIGEST_LENGTH; ++i) {
[res appendFormat:@"%02x", buf[i]];
}
NSLog(@"Output: %@", res);
return 0;
}
</lang>


=={{header|OCaml}}==
=={{header|OCaml}}==