/* Copyright (c) 1998 Apple Computer, Inc. All rights reserved. * * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE COMPUTER, INC. AND THE * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE COMPUTER, * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL * EXPOSE YOU TO LIABILITY. *************************************************************************** * * NSMD5Hash.h * * Revision History * ---------------- * 28 Mar 97 Doug Mitchell at Apple * Created. */ /* * Note: our _priv ivar is actually a feeHash pointer. */ #import "NSCryptors.h" #import "NSMD5Hash.h" #import "feeHash.h" #import "falloc.h" @implementation NSMD5Hash + digester { return [[self alloc] init]; } - init { if(_priv == NULL) { _priv = feeHashAlloc(); } else { feeHashReinit(_priv); } return self; } - (void)digestData:(NSData *)data { if(_priv == NULL) { return; } feeHashAddData(_priv, [data bytes], [data length]); } - (NSData *)messageDigest { unsigned char *cp; NSData *md; if(_priv == NULL) { return nil; } cp = feeHashDigest(_priv); md = [NSData dataWithBytes:cp length:feeHashDigestLen()]; feeHashReinit(_priv); return md; } - (NSData *)digestData:(NSData *)data withSalt:(NSData *)salt { if(_priv == NULL) { return nil; } if(salt != nil) { [self digestData:salt]; } [self digestData:data]; return [self messageDigest]; } @end