UNPKG

wx-ding-aes

Version:

Wechat open platform, Enterprise wechat and DingTalk AES decode library.

36 lines (35 loc) 1.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * PKCS7 模块,用于进行 PKCS7 偏移的编码和解码 * @module pkcs7 */ const defaultSize = 32; /** * @description PKCS7 编码 * @author beary * @param buf { Buffer } 需要进行编码的 Buffer * @param blockSize { string } 偏移块大小 */ exports.encode = (buf, blockSize) => { blockSize = blockSize || defaultSize; const padLen = (blockSize - buf.length % blockSize) || blockSize; const padBuf = Buffer .alloc(buf.length + padLen) .fill(padLen); buf.copy(padBuf); return padBuf; }; /** * @description PKCS7 解码 * @author beary * @param buf { Buffer } 需要进行解码的 Buffer * @param blockSize { string } 偏移块大小 */ exports.decode = (buf, blockSize) => { blockSize = blockSize || defaultSize; let padLen = buf[buf.length - 1]; if (padLen < 1 || padLen > blockSize) padLen = 0; return buf.slice(0, buf.length - padLen); };