X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fcrypto.git;a=blobdiff_plain;f=des.c;fp=des.c;h=db0aba84e072ca4aef5b391d4a4a71d36f5309f8;hp=04951d6af37cc7a5ab3cec51410b56a4ea9dde45;hb=9d84dd2104da5556056f6f9fd53dfcbd672d8f8a;hpb=dc3c48a5257347daf239f187babd2f38c96d7b81 diff --git a/des.c b/des.c index 04951d6..db0aba8 100644 --- a/des.c +++ b/des.c @@ -27,16 +27,16 @@ u8 subkey_perm_table[DES_PERMC_LEN]={ int rotate_right(u8 *obj,int len) { u8 tmp=obj[len-1]; - while(--len) obj[len]=obj[len-1]; - obj[0]=tmp; + while(--len) obj[len]=obj[len]>>1|((obj[len-1]&1)<<7); + obj[0]=obj[0]>>1|((tmp&1)<<7);; return 1; } int rotate_left(u8 *obj,int len) { int i=0; u8 tmp=obj[0]; - while(len-(i++)) obj[i-1]=obj[i]; - obj[len-1]=tmp; + for(i=0;i>7); + obj[len-1]=obj[len-1]<<1|(tmp>>7); return 1; } @@ -53,17 +53,19 @@ key_perm(u8 *key) { int subkey_trans(u8 *key,int round) { int i; for(i=0;i>((8-subkey_perm_table[i]%8)&7)&1))<<(7-i%8)); + return 1; }