@@ -166,15 +166,15 @@ clientFirstMessageBare = nil; clientFirstMessageBare = [[OFString alloc] initWithFormat: @"n=%@,r=%@", authcid, cNonce]; - [ret addNItems: [GS2Header cStringLength] - fromCArray: [GS2Header cString]]; + [ret addNItems: [GS2Header UTF8StringLength] + fromCArray: [GS2Header UTF8String]]; - [ret addNItems: [clientFirstMessageBare cStringLength] - fromCArray: [clientFirstMessageBare cString]]; + [ret addNItems: [clientFirstMessageBare UTF8StringLength] + fromCArray: [clientFirstMessageBare UTF8String]]; return ret; } - (OFDataArray*)calculateResponseWithChallenge: (OFDataArray*)challenge @@ -196,13 +196,13 @@ hash = [[[hashType alloc] init] autorelease]; ret = [OFDataArray dataArrayWithItemSize: 1]; authMessage = [OFDataArray dataArrayWithItemSize: 1]; - OFString *chal = [OFString stringWithCString: [challenge cArray] - length: [challenge count] * - [challenge itemSize]]; + OFString *chal = [OFString stringWithUTF8String: [challenge cArray] + length: [challenge count] * + [challenge itemSize]]; enumerator = [[chal componentsSeparatedByString: @","] objectEnumerator]; while ((comp = [enumerator nextObject]) != nil) { OFString *entry = [comp substringWithRange: @@ -230,34 +230,34 @@ if (got != (GOT_SNONCE | GOT_SALT | GOT_ITERCOUNT)) @throw [OFInvalidServerReplyException newWithClass: isa]; // Add c= tmpArray = [OFDataArray dataArrayWithItemSize: 1]; - [tmpArray addNItems: [GS2Header cStringLength] - fromCArray: [GS2Header cString]]; + [tmpArray addNItems: [GS2Header UTF8StringLength] + fromCArray: [GS2Header UTF8String]]; if (plusAvailable && [connection encrypted]) { OFDataArray *channelBinding = [((SSLSocket*)[connection socket]) channelBindingDataWithType: @"tls-unique"]; [tmpArray addNItems: [channelBinding count] fromCArray: [channelBinding cArray]]; } tmpString = [tmpArray stringByBase64Encoding]; [ret addNItems: 2 fromCArray: "c="]; - [ret addNItems: [tmpString cStringLength] - fromCArray: [tmpString cString]]; + [ret addNItems: [tmpString UTF8StringLength] + fromCArray: [tmpString UTF8String]]; // Add r= [ret addItem: ","]; [ret addNItems: 2 fromCArray: "r="]; - [ret addNItems: [sNonce cStringLength] - fromCArray: [sNonce cString]]; + [ret addNItems: [sNonce UTF8StringLength] + fromCArray: [sNonce UTF8String]]; tmpArray = [OFDataArray dataArrayWithItemSize: 1]; - [tmpArray addNItems: [password cStringLength] - fromCArray: [password cString]]; + [tmpArray addNItems: [password UTF8StringLength] + fromCArray: [password UTF8String]]; /* * IETF RFC 5802: * SaltedPassword := Hi(Normalize(password), salt, i) */ @@ -269,12 +269,12 @@ * IETF RFC 5802: * AuthMessage := client-first-message-bare + "," + * server-first-message + "," + * client-final-message-without-proof */ - [authMessage addNItems: [clientFirstMessageBare cStringLength] - fromCArray: [clientFirstMessageBare cString]]; + [authMessage addNItems: [clientFirstMessageBare UTF8StringLength] + fromCArray: [clientFirstMessageBare UTF8String]]; [authMessage addItem: ","]; [authMessage addNItems: [challenge count] * [challenge itemSize] fromCArray: [challenge cArray]]; [authMessage addItem: ","]; [authMessage addNItems: [ret count] @@ -342,12 +342,12 @@ // Add p= [ret addItem: ","]; [ret addNItems: 2 fromCArray: "p="]; tmpString = [tmpArray stringByBase64Encoding]; - [ret addNItems: [tmpString cStringLength] - fromCArray: [tmpString cString]]; + [ret addNItems: [tmpString UTF8StringLength] + fromCArray: [tmpString UTF8String]]; [ret retain]; [pool release]; return [ret autorelease]; @@ -354,13 +354,13 @@ } - (void)parseServerFinalMessage: (OFDataArray*)message { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; - OFString *mess = [OFString stringWithCString: [message cArray] - length: [message count] * - [message itemSize]]; + OFString *mess = [OFString stringWithUTF8String: [message cArray] + length: [message count] * + [message itemSize]]; OFString *value = [mess substringWithRange: of_range(2, [mess length] - 2)]; if ([mess hasPrefix: @"v="]) { if (![value isEqual: [serverSignature stringByBase64Encoding]]) @@ -391,10 +391,11 @@ buf[i] = tmp; } return [OFString stringWithCString: (char*)buf + encoding: OF_STRING_ENCODING_ASCII length: 64]; } - (uint8_t*)XMPP_HMACWithKey: (OFDataArray*)key data: (OFDataArray*)data