From bfdfabcf40bdd2cb5a2ce785166b48268485f32d Mon Sep 17 00:00:00 2001 From: Florian Zeitz Date: Wed, 12 Jun 2013 14:53:05 +0200 Subject: [PATCH] XMPPDiscoEntity: Caps hash must be Base64 encoded SHA1 --- src/XMPPDiscoEntity.m | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/XMPPDiscoEntity.m b/src/XMPPDiscoEntity.m index 45b6973..2f73daf 100644 --- a/src/XMPPDiscoEntity.m +++ b/src/XMPPDiscoEntity.m @@ -90,10 +90,12 @@ - (OFString*)capsHash { - OFMutableString *caps = [OFMutableString string]; OFEnumerator *enumerator; XMPPDiscoIdentity *identity; OFString *feature; + OFMutableString *caps = [OFMutableString string]; + OFSHA1Hash *hash = [OFSHA1Hash hash]; + OFDataArray *digest = [OFDataArray dataArray]; enumerator = [_identities objectEnumerator]; while ((identity = [enumerator nextObject]) != nil) @@ -104,7 +106,13 @@ while ((feature = [enumerator nextObject]) != nil) [caps appendFormat: @"%@<", feature]; - return [caps SHA1Hash]; + [hash updateWithBuffer: [caps UTF8String] + length: [caps UTF8StringLength]]; + + [digest addItems: [hash digest] + count: [OFSHA1Hash digestSize]]; + + return [digest stringByBase64Encoding]; } - (void)connection: (XMPPConnection*)connection