/*****************************************************************************/ /* */ /* RIGHT-SHIFT 1024 BITS */ /* 03/28/10 (dkc) */ /* */ /*****************************************************************************/ void shift1024(unsigned int A[32], unsigned int B[32], unsigned int shift) { unsigned int temp; B[0]=A[0]; B[1]=A[1]; B[2]=A[2]; B[3]=A[3]; B[4]=A[4]; B[5]=A[5]; B[6]=A[6]; B[7]=A[7]; B[8]=A[8]; B[9]=A[9]; B[10]=A[10]; B[11]=A[11]; B[12]=A[12]; B[13]=A[13]; B[14]=A[14]; B[15]=A[15]; B[16]=A[16]; B[17]=A[17]; B[18]=A[18]; B[19]=A[19]; B[20]=A[20]; B[21]=A[21]; B[22]=A[22]; B[23]=A[23]; B[24]=A[24]; B[25]=A[25]; B[26]=A[26]; B[27]=A[27]; B[28]=A[28]; B[29]=A[29]; B[30]=A[30]; B[31]=A[31]; while (shift>31) { B[31]=B[30]; B[30]=B[29]; B[29]=B[28]; B[28]=B[27]; B[27]=B[26]; B[26]=B[25]; B[25]=B[24]; B[24]=B[23]; B[23]=B[22]; B[22]=B[21]; B[21]=B[20]; B[20]=B[19]; B[19]=B[18]; B[18]=B[17]; B[17]=B[16]; B[16]=B[15]; B[15]=B[14]; B[14]=B[13]; B[13]=B[12]; B[12]=B[11]; B[11]=B[10]; B[10]=B[9]; B[9]=B[8]; B[8]=B[7]; B[7]=B[6]; B[6]=B[5]; B[5]=B[4]; B[4]=B[3]; B[3]=B[2]; B[2]=B[1]; B[1]=B[0]; B[0]=0; shift=shift-32; } if (shift==0) return; B[31]=B[31]>>shift; temp=B[30]<<(32-shift); B[31]=B[31]|temp; B[30]=B[30]>>shift; temp=B[29]<<(32-shift); B[30]=B[30]|temp; B[29]=B[29]>>shift; temp=B[28]<<(32-shift); B[29]=B[29]|temp; B[28]=B[28]>>shift; temp=B[27]<<(32-shift); B[28]=B[28]|temp; B[27]=B[27]>>shift; temp=B[26]<<(32-shift); B[27]=B[27]|temp; B[26]=B[26]>>shift; temp=B[25]<<(32-shift); B[26]=B[26]|temp; B[25]=B[25]>>shift; temp=B[24]<<(32-shift); B[25]=B[25]|temp; B[24]=B[24]>>shift; temp=B[23]<<(32-shift); B[24]=B[24]|temp; B[23]=B[23]>>shift; temp=B[22]<<(32-shift); B[23]=B[23]|temp; B[22]=B[22]>>shift; temp=B[21]<<(32-shift); B[22]=B[22]|temp; B[21]=B[21]>>shift; temp=B[20]<<(32-shift); B[21]=B[21]|temp; B[20]=B[20]>>shift; temp=B[19]<<(32-shift); B[20]=B[20]|temp; B[19]=B[19]>>shift; temp=B[18]<<(32-shift); B[19]=B[19]|temp; B[18]=B[18]>>shift; temp=B[17]<<(32-shift); B[18]=B[18]|temp; B[17]=B[17]>>shift; temp=B[16]<<(32-shift); B[17]=B[17]|temp; B[16]=B[16]>>shift; temp=B[15]<<(32-shift); B[16]=B[16]|temp; B[15]=B[15]>>shift; temp=B[14]<<(32-shift); B[15]=B[15]|temp; B[14]=B[14]>>shift; temp=B[13]<<(32-shift); B[14]=B[14]|temp; B[13]=B[13]>>shift; temp=B[12]<<(32-shift); B[13]=B[13]|temp; B[12]=B[12]>>shift; temp=B[11]<<(32-shift); B[12]=B[12]|temp; B[11]=B[11]>>shift; temp=B[10]<<(32-shift); B[11]=B[11]|temp; B[10]=B[10]>>shift; temp=B[9]<<(32-shift); B[10]=B[10]|temp; B[9]=B[9]>>shift; temp=B[8]<<(32-shift); B[9]=B[9]|temp; B[8]=B[8]>>shift; temp=B[7]<<(32-shift); B[8]=B[8]|temp; B[7]=B[7]>>shift; temp=B[6]<<(32-shift); B[7]=B[7]|temp; B[6]=B[6]>>shift; temp=B[5]<<(32-shift); B[6]=B[6]|temp; B[5]=B[5]>>shift; temp=B[4]<<(32-shift); B[5]=B[5]|temp; B[4]=B[4]>>shift; temp=B[3]<<(32-shift); B[4]=B[4]|temp; B[3]=B[3]>>shift; temp=B[2]<<(32-shift); B[3]=B[3]|temp; B[2]=B[2]>>shift; temp=B[1]<<(32-shift); B[2]=B[2]|temp; B[1]=B[1]>>shift; temp=B[0]<<(32-shift); B[1]=B[1]|temp; B[0]=B[0]>>shift; return; }