Adjust to latest ObjFW API changes.

This commit is contained in:
Jonathan Schleifer 2012-06-06 16:01:43 +02:00
parent 45806a4f08
commit 867450105e
4 changed files with 61 additions and 59 deletions

View file

@ -256,7 +256,7 @@
* the connection was closed. * the connection was closed.
*/ */
- (void)parseBuffer: (const char*)buffer - (void)parseBuffer: (const char*)buffer
withLength: (size_t)length; length: (size_t)length;
/** /**
* \brief Returns the socket used by the XMPPConnection. * \brief Returns the socket used by the XMPPConnection.

View file

@ -295,11 +295,11 @@
char buffer[512]; char buffer[512];
for (;;) { for (;;) {
size_t length = [sock readNBytes: 512 size_t length = [sock readIntoBuffer: buffer
intoBuffer: buffer]; length: 512];
[self parseBuffer: buffer [self parseBuffer: buffer
withLength: length]; length: length];
if (length < 1) if (length < 1)
return; return;
@ -307,7 +307,7 @@
} }
- (void)parseBuffer: (const char*)buffer - (void)parseBuffer: (const char*)buffer
withLength: (size_t)length length: (size_t)length
{ {
if (length < 1) { if (length < 1) {
[delegates broadcastSelector: @selector(connectionWasClosed:) [delegates broadcastSelector: @selector(connectionWasClosed:)
@ -316,7 +316,7 @@
} }
[parser parseBuffer: buffer [parser parseBuffer: buffer
withLength: length]; length: length];
[oldParser release]; [oldParser release];
[oldElementBuilder release]; [oldElementBuilder release];

View file

@ -56,15 +56,15 @@
[message addItem: ""]; [message addItem: ""];
/* authcid */ /* authcid */
[message addNItems: [authcid UTF8StringLength] [message addItemsFromCArray: [authcid UTF8String]
fromCArray: [authcid UTF8String]]; count: [authcid UTF8StringLength]];
/* separator */ /* separator */
[message addItem: ""]; [message addItem: ""];
/* passwd */ /* passwd */
[message addNItems: [password UTF8StringLength] [message addItemsFromCArray: [password UTF8String]
fromCArray: [password UTF8String]]; count: [password UTF8StringLength]];
return message; return message;
} }

View file

@ -172,11 +172,11 @@
authcid, authcid,
cNonce]; cNonce];
[ret addNItems: [GS2Header UTF8StringLength] [ret addItemsFromCArray: [GS2Header UTF8String]
fromCArray: [GS2Header UTF8String]]; count: [GS2Header UTF8StringLength]];
[ret addNItems: [clientFirstMessageBare UTF8StringLength] [ret addItemsFromCArray: [clientFirstMessageBare UTF8String]
fromCArray: [clientFirstMessageBare UTF8String]]; count: [clientFirstMessageBare UTF8StringLength]];
return ret; return ret;
@ -253,34 +253,34 @@
// Add c=<base64(GS2Header+channelBindingData)> // Add c=<base64(GS2Header+channelBindingData)>
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: [GS2Header UTF8StringLength] [tmpArray addItemsFromCArray: [GS2Header UTF8String]
fromCArray: [GS2Header UTF8String]]; count: [GS2Header UTF8StringLength]];
if (plusAvailable && [connection encrypted]) { if (plusAvailable && [connection encrypted]) {
OFDataArray *channelBinding = [((SSLSocket*)[connection socket]) OFDataArray *channelBinding = [((SSLSocket*)[connection socket])
channelBindingDataWithType: @"tls-unique"]; channelBindingDataWithType: @"tls-unique"];
[tmpArray addNItems: [channelBinding count] [tmpArray addItemsFromCArray: [channelBinding cArray]
fromCArray: [channelBinding cArray]]; count: [channelBinding count]];
} }
tmpString = [tmpArray stringByBase64Encoding]; tmpString = [tmpArray stringByBase64Encoding];
[ret addNItems: 2 [ret addItemsFromCArray: "c="
fromCArray: "c="]; count: 2];
[ret addNItems: [tmpString UTF8StringLength] [ret addItemsFromCArray: [tmpString UTF8String]
fromCArray: [tmpString UTF8String]]; count: [tmpString UTF8StringLength]];
// Add r=<nonce> // Add r=<nonce>
[ret addItem: ","]; [ret addItem: ","];
[ret addNItems: 2 [ret addItemsFromCArray: "r="
fromCArray: "r="]; count: 2];
[ret addNItems: [sNonce UTF8StringLength] [ret addItemsFromCArray: [sNonce UTF8String]
fromCArray: [sNonce UTF8String]]; count: [sNonce UTF8StringLength]];
/* /*
* IETF RFC 5802: * IETF RFC 5802:
* SaltedPassword := Hi(Normalize(password), salt, i) * SaltedPassword := Hi(Normalize(password), salt, i)
*/ */
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: [password UTF8StringLength] [tmpArray addItemsFromCArray: [password UTF8String]
fromCArray: [password UTF8String]]; count: [password UTF8StringLength]];
saltedPassword = [self XMPP_hiWithData: tmpArray saltedPassword = [self XMPP_hiWithData: tmpArray
salt: salt salt: salt
@ -292,22 +292,23 @@
* server-first-message + "," + * server-first-message + "," +
* client-final-message-without-proof * client-final-message-without-proof
*/ */
[authMessage addNItems: [clientFirstMessageBare UTF8StringLength] [authMessage addItemsFromCArray: [clientFirstMessageBare UTF8String]
fromCArray: [clientFirstMessageBare UTF8String]]; count: [clientFirstMessageBare
UTF8StringLength]];
[authMessage addItem: ","]; [authMessage addItem: ","];
[authMessage addNItems: [data count] * [data itemSize] [authMessage addItemsFromCArray: [data cArray]
fromCArray: [data cArray]]; count: [data count] * [data itemSize]];
[authMessage addItem: ","]; [authMessage addItem: ","];
[authMessage addNItems: [ret count] [authMessage addItemsFromCArray: [ret cArray]
fromCArray: [ret cArray]]; count: [ret count]];
/* /*
* IETF RFC 5802: * IETF RFC 5802:
* ClientKey := HMAC(SaltedPassword, "Client Key") * ClientKey := HMAC(SaltedPassword, "Client Key")
*/ */
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: 10 [tmpArray addItemsFromCArray: "Client Key"
fromCArray: "Client Key"]; count: 10];
clientKey = [self XMPP_HMACWithKey: saltedPassword clientKey = [self XMPP_HMACWithKey: saltedPassword
data: tmpArray]; data: tmpArray];
@ -318,8 +319,8 @@
[hash updateWithBuffer: (void*) clientKey [hash updateWithBuffer: (void*) clientKey
length: [hashType digestSize]]; length: [hashType digestSize]];
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: [hashType digestSize] [tmpArray addItemsFromCArray: [hash digest]
fromCArray: [hash digest]]; count: [hashType digestSize]];
/* /*
* IETF RFC 5802: * IETF RFC 5802:
@ -333,8 +334,8 @@
* ServerKey := HMAC(SaltedPassword, "Server Key") * ServerKey := HMAC(SaltedPassword, "Server Key")
*/ */
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: 10 [tmpArray addItemsFromCArray: "Server Key"
fromCArray: "Server Key"]; count: 10];
serverKey = [self XMPP_HMACWithKey: saltedPassword serverKey = [self XMPP_HMACWithKey: saltedPassword
data: tmpArray]; data: tmpArray];
@ -343,12 +344,13 @@
* ServerSignature := HMAC(ServerKey, AuthMessage) * ServerSignature := HMAC(ServerKey, AuthMessage)
*/ */
tmpArray = [OFDataArray dataArray]; tmpArray = [OFDataArray dataArray];
[tmpArray addNItems: [hashType digestSize] [tmpArray addItemsFromCArray: serverKey
fromCArray: serverKey]; count: [hashType digestSize]];
serverSignature = [[OFDataArray alloc] init]; serverSignature = [[OFDataArray alloc] init];
[serverSignature addNItems: [hashType digestSize] [serverSignature addItemsFromCArray: [self
fromCArray: [self XMPP_HMACWithKey: tmpArray XMPP_HMACWithKey: tmpArray
data: authMessage]]; data: authMessage]
count: [hashType digestSize]];
/* /*
* IETF RFC 5802: * IETF RFC 5802:
@ -362,11 +364,11 @@
// Add p=<base64(ClientProof)> // Add p=<base64(ClientProof)>
[ret addItem: ","]; [ret addItem: ","];
[ret addNItems: 2 [ret addItemsFromCArray: "p="
fromCArray: "p="]; count: 2];
tmpString = [tmpArray stringByBase64Encoding]; tmpString = [tmpArray stringByBase64Encoding];
[ret addNItems: [tmpString UTF8StringLength] [ret addItemsFromCArray: [tmpString UTF8String]
fromCArray: [tmpString UTF8String]]; count: [tmpString UTF8StringLength]];
return ret; return ret;
} }
@ -437,11 +439,11 @@
hashI = [[[hashType alloc] init] autorelease]; hashI = [[[hashType alloc] init] autorelease];
[hashI updateWithBuffer: [key cArray] [hashI updateWithBuffer: [key cArray]
length: [key itemSize] * [key count]]; length: [key itemSize] * [key count]];
[k addNItems: [hashType digestSize] [k addItemsFromCArray: [hashI digest]
fromCArray: [hashI digest]]; count: [hashType digestSize]];
} else } else
[k addNItems: [key itemSize] * [key count] [k addItemsFromCArray: [key cArray]
fromCArray: [key cArray]]; count: [key itemSize] * [key count]];
@try { @try {
kI = [self allocMemoryWithSize: blockSize]; kI = [self allocMemoryWithSize: blockSize];
@ -495,8 +497,8 @@
memset(result, 0, digestSize); memset(result, 0, digestSize);
salty = [[salt_ copy] autorelease]; salty = [[salt_ copy] autorelease];
[salty addNItems: 4 [salty addItemsFromCArray: "\0\0\0\1"
fromCArray: "\0\0\0\1"]; count: 4];
uOld = [self XMPP_HMACWithKey: str uOld = [self XMPP_HMACWithKey: str
data: salty]; data: salty];
@ -506,8 +508,8 @@
for (j = 0; j < i - 1; j++) { for (j = 0; j < i - 1; j++) {
tmp = [OFDataArray dataArray]; tmp = [OFDataArray dataArray];
[tmp addNItems: digestSize [tmp addItemsFromCArray: uOld
fromCArray: uOld]; count: digestSize];
u = [self XMPP_HMACWithKey: str u = [self XMPP_HMACWithKey: str
data: tmp]; data: tmp];
@ -521,8 +523,8 @@
} }
ret = [OFDataArray dataArray]; ret = [OFDataArray dataArray];
[ret addNItems: digestSize [ret addItemsFromCArray: result
fromCArray: result]; count: digestSize];
} @finally { } @finally {
[self freeMemory: result]; [self freeMemory: result];
} }