the rc6 paper say this
Key schedule for RC6-w/r/b
Input: User-supplied b byte key preloaded into the c-word
array L[0; ..., c - 1]
Number r of rounds
Output: w-bit round keys S[0; ..., 2r + 3]
Procedure: S[0] = Pw
for i = 1 to 2r + 3 do
S[i] = S[i - 1] + Qw
A = B = i = j = 0
v = 3* max[c, 2r + 4]
for s = 1 to v do
A = S[i] = (S[i] + A + B)<<<3
B = L[j] = (L[j] + A + B)<<<(A + B)
i = (i + 1)mod(2r + 4)
j = (j + 1)modc
for the key expansion part of the algorithm.
i dont understand the part with B = L[j] = (L[j] + A + B)<<<(A + B). A+B is going to be really a large number, so how do you rotate the value? is A+B just modded by 32? if not, then i dont know what to do, since im getting errors in my program from it