Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 604844
Collapse All | Expand All

(-)src/crypto.c (+23 lines)
Lines 288-294 Link Here
288
void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80], unsigned char mic[20]) {
288
void calc_mic (struct AP_info *ap, unsigned char pmk[32], unsigned char ptk[80], unsigned char mic[20]) {
289
	int i;
289
	int i;
290
	unsigned char pke[100];
290
	unsigned char pke[100];
291
	#if defined(USE_GCRYPT) || OPENSSL_VERSION_NUMBER < 0x10100000L
292
		#define HMAC_USE_NO_PTR
293
	#endif
294
295
	#ifdef HMAC_USE_NO_PTR
291
	HMAC_CTX ctx;
296
	HMAC_CTX ctx;
297
	#else
298
	HMAC_CTX * ctx;
299
	#endif
292
300
293
	memcpy( pke, "Pairwise key expansion", 23 );
301
	memcpy( pke, "Pairwise key expansion", 23 );
294
302
Lines 314-319 Link Here
314
		memcpy( pke + 67, ap->wpa.snonce, 32 );
322
		memcpy( pke + 67, ap->wpa.snonce, 32 );
315
	}
323
	}
316
324
325
	#ifdef HMAC_USE_NO_PTR
317
	HMAC_CTX_init(&ctx);
326
	HMAC_CTX_init(&ctx);
318
	HMAC_Init_ex(&ctx, pmk, 32, EVP_sha1(), NULL);
327
	HMAC_Init_ex(&ctx, pmk, 32, EVP_sha1(), NULL);
319
	for(i = 0; i < 4; i++ )
328
	for(i = 0; i < 4; i++ )
Lines 325-330 Link Here
325
		HMAC_Final(&ctx, ptk + i*20, NULL);
334
		HMAC_Final(&ctx, ptk + i*20, NULL);
326
	}
335
	}
327
	HMAC_CTX_cleanup(&ctx);
336
	HMAC_CTX_cleanup(&ctx);
337
	#else
338
	ctx = HMAC_CTX_new();
339
	HMAC_Init_ex(ctx, pmk, 32, EVP_sha1(), NULL);
340
	for(i = 0; i < 4; i++ )
341
	{
342
		pke[99] = i;
343
		//HMAC(EVP_sha1(), values[0], 32, pke, 100, ptk + i * 20, NULL);
344
		HMAC_Init_ex(ctx, 0, 0, 0, 0);
345
		HMAC_Update(ctx, pke, 100);
346
		HMAC_Final(ctx, ptk + i*20, NULL);
347
	}
348
	HMAC_CTX_free(ctx);
349
	#endif
350
	#undef HMAC_USE_NO_PTR
328
351
329
	if( ap->wpa.keyver == 1 )
352
	if( ap->wpa.keyver == 1 )
330
	{
353
	{

Return to bug 604844