18 lines
412 B
JavaScript
18 lines
412 B
JavaScript
const crypto = require('./crypto');
|
|
|
|
class CTR {
|
|
constructor(key, iv) {
|
|
if (!Buffer.isBuffer(key) || !Buffer.isBuffer(iv) || iv.length !== 16) {
|
|
throw new Error('Key and iv need to be a buffer');
|
|
}
|
|
|
|
this.cipher = crypto.createCipheriv('AES-256-CTR', key, iv);
|
|
}
|
|
|
|
encrypt(data) {
|
|
return Buffer.from(this.cipher.update(data));
|
|
}
|
|
}
|
|
|
|
module.exports = CTR;
|