import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'

// 密钥对生成 http://web.chacuo.net/netrsakeypair
// 生成密钥位数：1024位(bit)
// 密钥格式：PKCS#8
// 输出格式：PEM/Base64

/**
 * RSA根据公钥加密
 * @param txt
 * @param publicKey
 * @returns {string | false | Promise<ArrayBuffer>}
 */
export function encrypt(txt, publicKey) {
    const encryptor = new JSEncrypt()
    // 设置公钥
    encryptor.setPublicKey(publicKey)
    // 对数据进行加密
    return encryptor.encrypt(txt)
}

/**
 * RSA内容解密
 * @param txt
 * @param privateKey
 * @returns {string | false | Promise<ArrayBuffer>}
 */
export function decrypt(txt, privateKey) {
    const encryptor = new JSEncrypt()
    // 设置私钥
    encryptor.setPrivateKey(privateKey)
    // 对数据进行解密
    return encryptor.decrypt(txt)
}