Changeset 3994
- Timestamp:
- 11/25/10 18:28:22 (13 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cscrypt/des.c
r3181 r3994 482 482 } 483 483 484 static byte *des_key_spread(byte *normal) 485 { 486 static byte spread[16]; 487 484 static byte *des_key_spread(byte *normal, byte *spread) 485 { 488 486 spread[ 0] = normal[ 0] & 0xfe; 489 487 spread[ 1] = ((normal[ 0] << 7) | (normal[ 1] >> 1)) & 0xfe; … … 577 575 } 578 576 579 byte *des_login_key_get(byte *key1, byte *key2, int len )577 byte *des_login_key_get(byte *key1, byte *key2, int len, byte *des16) 580 578 { 581 579 byte des14[14]; 582 static byte *des16;583 580 int i; 584 581 585 582 memcpy(des14, key1, sizeof(des14)); 586 583 for (i = 0; i < len; i++) des14[i%14] ^= key2[i]; 587 des16 = des_key_spread(des14 );584 des16 = des_key_spread(des14, des16); 588 585 doPC1(des16); 589 586 doPC1(des16+8); -
trunk/cscrypt/des.h
r8 r3994 34 34 extern int des_encrypt(byte *buffer, int len, byte *deskey); 35 35 extern int des_decrypt(byte *buffer, int len, byte *deskey); 36 extern byte *des_login_key_get(byte *key1, byte *key2, int len );36 extern byte *des_login_key_get(byte *key1, byte *key2, int len, byte *des16); 37 37 38 38 #ifdef __cplusplus -
trunk/cscrypt/rc6.h
r3993 r3994 34 34 #define lgw 5 /* log2(w) -- wussed out */ 35 35 36 #define rc6keylen R24 - 1 ;/* Key schedule */36 #define rc6keylen R24 - 1 /* Key schedule */ 37 37 38 38 typedef unsigned int RC6KEY[rc6keylen]; -
trunk/module-newcamd.c
r3833 r3994 262 262 uint8 buf[CWS_NETMSGSIZE]; 263 263 uint8 keymod[14]; 264 uint8 *key;264 uint8 key[16]; 265 265 int handle=0; 266 266 … … 287 287 } 288 288 cs_ddump(keymod, 14, "server init sequence:"); 289 key = des_login_key_get(keymod, cl->reader->ncd_key, 14);289 des_login_key_get(keymod, cl->reader->ncd_key, 14, key); 290 290 291 291 // 3. Send login info … … 322 322 323 323 // 4. Send MSG_CARD_DATE_REQ 324 key = des_login_key_get(cl->reader->ncd_key, passwdcrypt, strlen((char *)passwdcrypt));324 des_login_key_get(cl->reader->ncd_key, passwdcrypt, strlen((char *)passwdcrypt), key); 325 325 326 326 network_cmd_no_data_send(handle, &cl->reader->ncd_msgid, MSG_CARD_DATA_REQ, … … 592 592 struct s_auth *account; 593 593 uchar buf[14]; 594 uchar *key=0;594 uchar key[16]; 595 595 uchar passwdcrypt[120]; 596 596 struct s_reader *aureader=first_reader; //FIXME strange enough au was initialized to 0 = first reader, and not to -1 = no reader … … 614 614 // send init sequence 615 615 send(cl->udp_fd, buf, 14, 0); 616 key = des_login_key_get(buf, deskey, 14);616 des_login_key_get(buf, deskey, 14, key); 617 617 memcpy(cl->ncd_skey, key, 16); 618 618 cl->ncd_msgid = 0; … … 717 717 FILTER *pufilt = 0; 718 718 719 key = des_login_key_get(deskey, passwdcrypt, strlen((char *)passwdcrypt));719 des_login_key_get(deskey, passwdcrypt, strlen((char *)passwdcrypt), key); 720 720 memcpy(cl->ncd_skey, key, 16); 721 721
Note:
See TracChangeset
for help on using the changeset viewer.