@ivujs/i-utils
Version:
前端模块化 JavaScript 工具库
112 lines (99 loc) • 3.56 kB
JavaScript
import { generateKeyPairHex as generateKeyPairHex$1, compressPublicKeyHex as compressPublicKeyHex$1, comparePublicKeyHex as comparePublicKeyHex$1, verifyPublicKey as verifyPublicKey$1, doEncrypt, doDecrypt, doSignature as doSignature$1, doVerifySignature as doVerifySignature$1, getPoint as getPoint$1, getPublicKeyFromPrivateKey as getPublicKeyFromPrivateKey$1 } from './sm2.mjs';
// 获取密钥对
/**
* sm2 生成公钥和私钥
* @param {String} str 字符串
* @param {Number} rnd 随机数
* @returns {Object} 返回公钥和私钥
*/
function generateKeyPairHex(str, rnd) {
return generateKeyPairHex$1(str, rnd);
}
/**
* sm2 压缩公钥
* @param {String} publicKey 公钥
* @returns {String} 返回公钥字符串
*/
function compressPublicKeyHex(publicKey) {
return compressPublicKeyHex$1(publicKey);
}
/**
* sm2 对比公钥是否等价
* @param {String} publicKey 公钥
* @param {String} compressedPublicKey 压缩后的公钥
* @returns {Boolean} 返回结果
*/
function comparePublicKeyHex(publicKey, compressedPublicKey) {
return comparePublicKeyHex$1(publicKey, compressedPublicKey);
}
// 验证密钥对
/**
* sm2 验证公钥
* @param {String} publicKey 公钥,也可以传压缩后的公钥
* @returns {Boolean} 返回结果
*/
function verifyPublicKey(publicKey) {
return verifyPublicKey$1(publicKey);
}
// 加密解密
/**
* sm2 加密
* @param {String} str 字符串
* @param {String} publicKey 公钥
* @param {Number} cipherMode 加密模式,1(C1C3C2)和0(C1C2C3),默认1
* @returns {String} 返回加密后的字符串
*/
function encrypt(str, publicKey, cipherMode = 1) {
return doEncrypt(str, publicKey, cipherMode);
}
/**
* sm2 解密
* @param {String} str 字符串
* @param {String} privateKey 私钥
* @param {Number} cipherMode 解密模式,1(C1C3C2)和0(C1C2C3),默认1
* @param {Object} outputConfig 输出结果配置,{output:'string/array'}
* @returns {String,Array} 返回解密后的数据
*/
function decrypt(str, privateKey, cipherMode = 1, outputConfig = { output: "string" }) {
return doDecrypt(str, privateKey, cipherMode, outputConfig);
}
// 签名验签
/**
* sm2 生成签名
* @param {String} str 字符串
* @param {String} privateKey 私钥
* @param {Object} signatureConfig 签名配置
* @returns {String} 返回签名信息
*/
function doSignature(str, privateKey, signatureConfig) {
return doSignature$1(str, privateKey, signatureConfig);
}
/**
* sm2 验证签名
* @param {String} str 字符串
* @param {String} signHex 生成签名的信息
* @param {String} publicKey 公钥
* @param {Object} verifyConfig 验证配置
* @returns {String} 返回结果
*/
function doVerifySignature(str, signHex, publicKey, verifyConfig) {
return doVerifySignature$1(str, signHex, publicKey, verifyConfig);
}
// 获取椭圆曲线点
/**
* sm2 获取椭圆曲线点
* @returns {Object} 返回椭圆曲线点,可在sm2签名时传入
*/
function getPoint() {
return getPoint$1();
}
// 根据私钥获取公钥
/**
* sm2 根据私钥获取公钥
* @param {String} privateKey 私钥
* @returns {String} 返回公钥
*/
function getPublicKeyFromPrivateKey(privateKey) {
return getPublicKeyFromPrivateKey$1(privateKey);
}
export { comparePublicKeyHex, compressPublicKeyHex, decrypt, doSignature, doVerifySignature, encrypt, generateKeyPairHex, getPoint, getPublicKeyFromPrivateKey, verifyPublicKey };