Index: src/XMPPConnection.h ================================================================== --- src/XMPPConnection.h +++ src/XMPPConnection.h @@ -254,11 +254,11 @@ * \param buffer The buffer to parse * \param length The length of the buffer. If length is 0, it is assumed that * the connection was closed. */ - (void)parseBuffer: (const char*)buffer - withLength: (size_t)length; + length: (size_t)length; /** * \brief Returns the socket used by the XMPPConnection. * * \return The socket used by the XMPPConnection Index: src/XMPPConnection.m ================================================================== --- src/XMPPConnection.m +++ src/XMPPConnection.m @@ -293,32 +293,32 @@ - (void)handleConnection { char buffer[512]; for (;;) { - size_t length = [sock readNBytes: 512 - intoBuffer: buffer]; + size_t length = [sock readIntoBuffer: buffer + length: 512]; [self parseBuffer: buffer - withLength: length]; + length: length]; if (length < 1) return; } } - (void)parseBuffer: (const char*)buffer - withLength: (size_t)length + length: (size_t)length { if (length < 1) { [delegates broadcastSelector: @selector(connectionWasClosed:) withObject: self]; return; } [parser parseBuffer: buffer - withLength: length]; + length: length]; [oldParser release]; [oldElementBuilder release]; oldParser = nil; Index: src/XMPPPLAINAuth.m ================================================================== --- src/XMPPPLAINAuth.m +++ src/XMPPPLAINAuth.m @@ -54,18 +54,18 @@ /* separator */ [message addItem: ""]; /* authcid */ - [message addNItems: [authcid UTF8StringLength] - fromCArray: [authcid UTF8String]]; + [message addItemsFromCArray: [authcid UTF8String] + count: [authcid UTF8StringLength]]; /* separator */ [message addItem: ""]; /* passwd */ - [message addNItems: [password UTF8StringLength] - fromCArray: [password UTF8String]]; + [message addItemsFromCArray: [password UTF8String] + count: [password UTF8StringLength]]; return message; } @end Index: src/XMPPSCRAMAuth.m ================================================================== --- src/XMPPSCRAMAuth.m +++ src/XMPPSCRAMAuth.m @@ -170,15 +170,15 @@ clientFirstMessageBare = nil; clientFirstMessageBare = [[OFString alloc] initWithFormat: @"n=%@,r=%@", authcid, cNonce]; - [ret addNItems: [GS2Header UTF8StringLength] - fromCArray: [GS2Header UTF8String]]; + [ret addItemsFromCArray: [GS2Header UTF8String] + count: [GS2Header UTF8StringLength]]; - [ret addNItems: [clientFirstMessageBare UTF8StringLength] - fromCArray: [clientFirstMessageBare UTF8String]]; + [ret addItemsFromCArray: [clientFirstMessageBare UTF8String] + count: [clientFirstMessageBare UTF8StringLength]]; return ret; } @@ -251,38 +251,38 @@ if (got != (GOT_SNONCE | GOT_SALT | GOT_ITERCOUNT)) @throw [OFInvalidServerReplyException exceptionWithClass: isa]; // Add c= tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: [GS2Header UTF8StringLength] - fromCArray: [GS2Header UTF8String]]; + [tmpArray addItemsFromCArray: [GS2Header UTF8String] + count: [GS2Header UTF8StringLength]]; if (plusAvailable && [connection encrypted]) { OFDataArray *channelBinding = [((SSLSocket*)[connection socket]) channelBindingDataWithType: @"tls-unique"]; - [tmpArray addNItems: [channelBinding count] - fromCArray: [channelBinding cArray]]; + [tmpArray addItemsFromCArray: [channelBinding cArray] + count: [channelBinding count]]; } tmpString = [tmpArray stringByBase64Encoding]; - [ret addNItems: 2 - fromCArray: "c="]; - [ret addNItems: [tmpString UTF8StringLength] - fromCArray: [tmpString UTF8String]]; + [ret addItemsFromCArray: "c=" + count: 2]; + [ret addItemsFromCArray: [tmpString UTF8String] + count: [tmpString UTF8StringLength]]; // Add r= [ret addItem: ","]; - [ret addNItems: 2 - fromCArray: "r="]; - [ret addNItems: [sNonce UTF8StringLength] - fromCArray: [sNonce UTF8String]]; + [ret addItemsFromCArray: "r=" + count: 2]; + [ret addItemsFromCArray: [sNonce UTF8String] + count: [sNonce UTF8StringLength]]; /* * IETF RFC 5802: * SaltedPassword := Hi(Normalize(password), salt, i) */ tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: [password UTF8StringLength] - fromCArray: [password UTF8String]]; + [tmpArray addItemsFromCArray: [password UTF8String] + count: [password UTF8StringLength]]; saltedPassword = [self XMPP_hiWithData: tmpArray salt: salt iterationCount: iterCount]; @@ -290,26 +290,27 @@ * IETF RFC 5802: * AuthMessage := client-first-message-bare + "," + * server-first-message + "," + * client-final-message-without-proof */ - [authMessage addNItems: [clientFirstMessageBare UTF8StringLength] - fromCArray: [clientFirstMessageBare UTF8String]]; - [authMessage addItem: ","]; - [authMessage addNItems: [data count] * [data itemSize] - fromCArray: [data cArray]]; - [authMessage addItem: ","]; - [authMessage addNItems: [ret count] - fromCArray: [ret cArray]]; + [authMessage addItemsFromCArray: [clientFirstMessageBare UTF8String] + count: [clientFirstMessageBare + UTF8StringLength]]; + [authMessage addItem: ","]; + [authMessage addItemsFromCArray: [data cArray] + count: [data count] * [data itemSize]]; + [authMessage addItem: ","]; + [authMessage addItemsFromCArray: [ret cArray] + count: [ret count]]; /* * IETF RFC 5802: * ClientKey := HMAC(SaltedPassword, "Client Key") */ tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: 10 - fromCArray: "Client Key"]; + [tmpArray addItemsFromCArray: "Client Key" + count: 10]; clientKey = [self XMPP_HMACWithKey: saltedPassword data: tmpArray]; /* * IETF RFC 5802: @@ -316,12 +317,12 @@ * StoredKey := H(ClientKey) */ [hash updateWithBuffer: (void*) clientKey length: [hashType digestSize]]; tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: [hashType digestSize] - fromCArray: [hash digest]]; + [tmpArray addItemsFromCArray: [hash digest] + count: [hashType digestSize]]; /* * IETF RFC 5802: * ClientSignature := HMAC(StoredKey, AuthMessage) */ @@ -331,26 +332,27 @@ /* * IETF RFC 5802: * ServerKey := HMAC(SaltedPassword, "Server Key") */ tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: 10 - fromCArray: "Server Key"]; + [tmpArray addItemsFromCArray: "Server Key" + count: 10]; serverKey = [self XMPP_HMACWithKey: saltedPassword data: tmpArray]; /* * IETF RFC 5802: * ServerSignature := HMAC(ServerKey, AuthMessage) */ tmpArray = [OFDataArray dataArray]; - [tmpArray addNItems: [hashType digestSize] - fromCArray: serverKey]; + [tmpArray addItemsFromCArray: serverKey + count: [hashType digestSize]]; serverSignature = [[OFDataArray alloc] init]; - [serverSignature addNItems: [hashType digestSize] - fromCArray: [self XMPP_HMACWithKey: tmpArray - data: authMessage]]; + [serverSignature addItemsFromCArray: [self + XMPP_HMACWithKey: tmpArray + data: authMessage] + count: [hashType digestSize]]; /* * IETF RFC 5802: * ClientProof := ClientKey XOR ClientSignature */ @@ -360,15 +362,15 @@ [tmpArray addItem: &c]; } // Add p= [ret addItem: ","]; - [ret addNItems: 2 - fromCArray: "p="]; + [ret addItemsFromCArray: "p=" + count: 2]; tmpString = [tmpArray stringByBase64Encoding]; - [ret addNItems: [tmpString UTF8StringLength] - fromCArray: [tmpString UTF8String]]; + [ret addItemsFromCArray: [tmpString UTF8String] + count: [tmpString UTF8StringLength]]; return ret; } - (OFDataArray*)XMPP_parseServerFinalMessage: (OFDataArray*)data @@ -435,15 +437,15 @@ if ([key itemSize] * [key count] > blockSize) { hashI = [[[hashType alloc] init] autorelease]; [hashI updateWithBuffer: [key cArray] length: [key itemSize] * [key count]]; - [k addNItems: [hashType digestSize] - fromCArray: [hashI digest]]; + [k addItemsFromCArray: [hashI digest] + count: [hashType digestSize]]; } else - [k addNItems: [key itemSize] * [key count] - fromCArray: [key cArray]]; + [k addItemsFromCArray: [key cArray] + count: [key itemSize] * [key count]]; @try { kI = [self allocMemoryWithSize: blockSize]; kO = [self allocMemoryWithSize: blockSize]; @@ -493,23 +495,23 @@ @try { memset(result, 0, digestSize); salty = [[salt_ copy] autorelease]; - [salty addNItems: 4 - fromCArray: "\0\0\0\1"]; + [salty addItemsFromCArray: "\0\0\0\1" + count: 4]; uOld = [self XMPP_HMACWithKey: str data: salty]; for (j = 0; j < digestSize; j++) result[j] ^= uOld[j]; for (j = 0; j < i - 1; j++) { tmp = [OFDataArray dataArray]; - [tmp addNItems: digestSize - fromCArray: uOld]; + [tmp addItemsFromCArray: uOld + count: digestSize]; u = [self XMPP_HMACWithKey: str data: tmp]; for (k = 0; k < digestSize; k++) @@ -519,12 +521,12 @@ [pool releaseObjects]; } ret = [OFDataArray dataArray]; - [ret addNItems: digestSize - fromCArray: result]; + [ret addItemsFromCArray: result + count: digestSize]; } @finally { [self freeMemory: result]; } [ret retain];