INNER CODE UNIT · TypeScript

left

paulmillr/noble-ciphers · benchmark/thirdparty/index.ts:80

    let left = c.blockSize - (buf.length % c.blockSize);
    if (!left) left = c.blockSize;
    const out = new Uint8Array(buf.length + left);
    let prev = opts.iv.slice();
    let b = buf,
      o = out;
    while (b.length) {
      for (let i = 0; i < c.blockSize; i++) prev[i] ^= b[i];
      if (b.length < c.blockSize) break;
      c.encryptBlock(prev, prev);
      o.set(prev, 0);
      b = b.subarray(c.blockSize);
      o = o.subarray(c.blockSize);
    }
    // pcks7 padding
    for (let i = c.blockSize - left; i < c.blockSize; i++) prev[i] ^= left;
    c.encryptBlock(prev, o);
    return out;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…