Author: rfm
Date: Wed Oct 29 12:54:42 2014
New Revision: 38138
URL: http://svn.gna.org/viewcvs/gnustep?rev=38138&view=rev
Log:
fix digest computation using gnutls ... check for error and allocate memory
Modified:
libs/webservices/trunk/GWSHash.m
Modified: libs/webservices/trunk/GWSHash.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/webservices/trunk/GWSHash.m?rev=38138&r1=38137&r2=38138&view=diff
==============================================================================
--- libs/webservices/trunk/GWSHash.m (original)
+++ libs/webservices/trunk/GWSHash.m Wed Oct 29 12:54:42 2014
@@ -363,31 +363,31 @@
if (IS_METHOD(algorithm, SHA256))
{
- gnutls_hash_fast(GNUTLS_DIG_SHA256, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 32
- freeWhenDone: NO];
+ if (gnutls_hash_fast(GNUTLS_DIG_SHA256, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 32];
+ }
}
else if (IS_METHOD(algorithm, SHA512))
{
- gnutls_hash_fast(GNUTLS_DIG_SHA512, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 64
- freeWhenDone: NO];
+ if (gnutls_hash_fast(GNUTLS_DIG_SHA512, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 64];
+ }
}
else if (IS_METHOD(algorithm, SHA1))
{
- gnutls_hash_fast(GNUTLS_DIG_SHA1, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 20
- freeWhenDone: NO];
+ if (gnutls_hash_fast(GNUTLS_DIG_SHA1, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 20];
+ }
}
else if (IS_METHOD(algorithm, MD5))
{
- gnutls_hash_fast(GNUTLS_DIG_MD5, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 16
- freeWhenDone: NO];
+ if (gnutls_hash_fast(GNUTLS_DIG_MD5, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 16];
+ }
}
return hash;
}
@@ -405,41 +405,41 @@
if (IS_METHOD(algorithm, SHA256))
{
- gnutls_hmac_fast(GNUTLS_MAC_SHA256,
- inKey, keyLen, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 32
- freeWhenDone: NO];
+ if (gnutls_hmac_fast(GNUTLS_MAC_SHA256,
+ inKey, keyLen, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 32];
+ }
}
else if (IS_METHOD(algorithm, SHA512))
{
- gnutls_hmac_fast(GNUTLS_MAC_SHA512,
- inKey, keyLen, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 64
- freeWhenDone: NO];
+ if (gnutls_hmac_fast(GNUTLS_MAC_SHA512,
+ inKey, keyLen, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 64];
+ }
}
else if (IS_METHOD(algorithm, SHA1))
{
- gnutls_hmac_fast(GNUTLS_MAC_SHA1,
- inKey, keyLen, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 20
- freeWhenDone: NO];
+ if (gnutls_hmac_fast(GNUTLS_MAC_SHA1,
+ inKey, keyLen, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 20];
+ }
}
else if (IS_METHOD(algorithm, MD5))
{
- gnutls_hmac_fast(GNUTLS_MAC_MD5,
- inKey, keyLen, input, length, &buffer[0]);
- hash = [NSData dataWithBytesNoCopy: &buffer[0]
- length: 16
- freeWhenDone: NO];
+ if (gnutls_hmac_fast(GNUTLS_MAC_MD5,
+ inKey, keyLen, input, length, &buffer[0]) == 0)
+ {
+ hash = [NSData dataWithBytes: &buffer[0] length: 16];
+ }
}
return hash;
}
#else
-#define computeDigest(alg, dataToHash)\
+ #define computeDigest(alg, dataToHash)\
computeDigestInternal(alg, dataToHash)
#define computeHMAC(alg, dataToHash, key)\
computeHMACInternal(alg, dataToHash, key)
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs