Skip to content

Commit

Permalink
Fix the ctr mode that does not propagate the carry for the counter
Browse files Browse the repository at this point in the history
  • Loading branch information
X-Ryl669 committed Feb 20, 2019
1 parent 2a6ed4a commit f7a7a34
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
4 changes: 3 additions & 1 deletion core/ctr.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ sjcl.beware["CTR mode is dangerous because it doesn't protect message integrity.
d[i+1] ^= e[1];
d[i+2] ^= e[2];
d[i+3] ^= e[3];
c[3]++;
for(var carry = 3; carry >= 0; carry--) {
if (++c[carry]) break; // If overflowing, it'll be 0 and we'll have to continue propagating the carry
}
}
return sjcl.bitArray.clamp(d, bl);
}
Expand Down
7 changes: 6 additions & 1 deletion test/ctr_vectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,5 +88,10 @@ sjcl.test.vector.ctr = [
{ key: '3d25c893d44c4a831b5df70dd4796e31da1511fbcc01050ed3136a3546587448',
iv: '6d794b58f8f72cc5176fea41d7b8103e',
pt: '77f1a3c4e2abe13f46e978d37eef76eca76561cbb8b5ad55a07300b32e6df3fe',
ct: '9b07440ffb0d8136d0adf8b93784bf24fbabc75def9806b33a7d06887204151e'}
ct: '9b07440ffb0d8136d0adf8b93784bf24fbabc75def9806b33a7d06887204151e'},
{ key: '3d25c893d44c4a831b5df70dd4796e31da1511fbcc01050ed3136a3546587448',
iv: 'abcdef90ffffffffffffffffffffffff',
pt: '77f1a3c4e2abe13f46e978d37eef76eca76561cbb8b5ad55a07300b32e6df3fe',
ct: 'ff9be0c14b6a5c8fa99fa5142ab65951144aa48854785395d5251fe285c053e7'},

];

0 comments on commit f7a7a34

Please sign in to comment.