const openpgp = typeof window !== 'undefined' && window.openpgp ? window.openpgp : require('../../dist/openpgp'); const expect = require('chai').expect; describe('PKCS5 padding', function() { function repeat(pattern, count) { let result = ''; for (let k=0; k 8, 8..15 -> 16 const l = Math.ceil((s.length+1)/8)*8; const c = l - s.length; expect(r.length).to.equal(l); expect(c).is.at.least(1).is.at.most(8); expect(r.substr(-1)).to.equal(String.fromCharCode(c)); s += ' '; } }); it('Remove padding', function () { for (let k=1; k<=8; ++k) { const s = repeat(' ', 8-k); const r = s + repeat(String.fromCharCode(k), k); const t = pkcs5.decode(r); expect(t).to.equal(s); } }); it('Invalid padding', function () { expect(function () { pkcs5.decode(' '); }).to.throw(Error, /Invalid padding/); expect(function () { pkcs5.decode(''); }).to.throw(Error, /Invalid padding/); }); });