36 lines
1.3 KiB
JavaScript
36 lines
1.3 KiB
JavaScript
const sm2 = require('sm-crypto').sm2;
|
|
const sm3 = require('sm-crypto').sm3;
|
|
|
|
console.log('=== 检查 sm-crypto 版本 ===');
|
|
console.log('sm-crypto 版本:', require('sm-crypto/package.json').version);
|
|
|
|
// 测试公钥格式
|
|
console.log('\n=== 测试公钥格式 ===');
|
|
|
|
// 生成一个有效的 SM2 密钥对
|
|
const keypair = sm2.generateKeyPairHex();
|
|
console.log('生成的公钥:', keypair.publicKey);
|
|
console.log('生成的公钥长度:', keypair.publicKey.length);
|
|
|
|
// 用户提供的公钥
|
|
const userPublicKey = 'bb7754e559f6d158d52fdc4608244f07f12901363a1d6db8fb3219bf8e827efd11d8f18cf9926cfdd61aaf0eea2429e921b7b94f43ca9b2c89213355ad59e731';
|
|
console.log('\n用户提供的公钥:', userPublicKey);
|
|
console.log('用户提供的公钥长度:', userPublicKey.length);
|
|
|
|
// 测试用户公钥
|
|
console.log('\n=== 测试用户公钥 ===');
|
|
try {
|
|
const data = 'test';
|
|
const sig = sm2.doSignature(data, keypair.privateKey);
|
|
|
|
// 尝试使用生成的公钥验证(应该成功)
|
|
const verify1 = sm2.doVerifySignature(data, sig, keypair.publicKey);
|
|
console.log('使用生成的公钥验证:', verify1);
|
|
|
|
// 尝试使用用户公钥验证(应该失败)
|
|
const verify2 = sm2.doVerifySignature(data, sig, userPublicKey);
|
|
console.log('使用用户公钥验证:', verify2);
|
|
} catch (e) {
|
|
console.error('错误:', e.message);
|
|
}
|