33 lines
2.1 KiB
JavaScript
33 lines
2.1 KiB
JavaScript
const crypto = require('../src/crypto.js');
|
||
|
||
// 用户提供的 SM2 PKCS7 签名数据
|
||
const sm2P7Base64 = 'MIIDKgYKKoEcz1UGAQQCAqCCAxowggMWAgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICNzCCAjMwggHWoAMCAQICBgD1tfRoKTAMBggqgRzPVQGDdQUAMEAxCzAJBgNVBAYTAkNOMQ8wDQYDVQQKDAZQQkNDUkMxIDAeBgNVBAMMF1BCQ0NSQyBTTTIgT3BlcmF0aW9uIENBMB4XDTI2MDQwMjA4MDEzOVoXDTM2MDMzMDA4MDEzOVowTTELMAkGA1UEBhMCQ04xDzANBgNVBAoMBlBCQ0NSQzEtMCsGA1UEAwwkOTRmMWY5MzgtZjBiZC00NzYyLTkyOGUtZjY4YTdjY2UxNDFkMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEu3dU5Vn20VjVL9xGCCRPB/EpATY6HW24+zIZv46Cfv0R2PGM+ZJs/dYarw7qJCnpIbe5T0PKmyyJITNVrVnnMaOBrDCBqTAfBgNVHSMEGDAWgBRUqfVQHMpD+o+YdrPK1JlRJL757zAJBgNVHRMEAjAAME8GA1UdHwRIMEYwRKBCoECkPjA8MQ4wDAYDVQQDDAVjcmw3MTEMMAoGA1UECwwDY3JsMQ8wDQYDVQQKDAZQQkNDUkMxCzAJBgNVBAYTAkNOMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQU5bG6U0lYzWtkPJE74M/3HdafKKcwDAYIKoEcz1UBg3UFAANJADBGAiEAuLTE36/Eobcui23bFiPvOU4MOT0O0r9SyyHZ1JuvLwMCIQCejuSk03jyUAkbh1SaPx5n7WlDjI6tx9v9RJ7iw5rlojGBtzCBtAIBATBKMEAxCzAJBgNVBAYTAkNOMQ8wDQYDVQQKDAZQQkNDUkMxIDAeBgNVBAMMF1BCQ0NSQyBTTTIgT3BlcmF0aW9uIENBAgYA9bX0aCkwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIALTgWMD7io1JHfzInBwzDQpe9bonchuLFSED//JLDtnAiBmEUtr+ssAQIzFG4wY0CAj9QZxhENyCU2UYL1fhaysUA==';
|
||
|
||
const rs = require('jsrsasign');
|
||
|
||
console.log('=== 使用真实原始数据验证 SM2 PKCS7 ===');
|
||
|
||
// 从 PKCS7 中提取原始数据
|
||
const parser = new rs.KJUR.asn1.cms.CMSParser();
|
||
const p7 = parser.getCMSSignedData(rs.b64tohex(sm2P7Base64));
|
||
|
||
let realOriginalData = null;
|
||
if (p7.econtent && p7.econtent.hex) {
|
||
realOriginalData = Buffer.from(p7.econtent.hex, 'hex').toString();
|
||
console.log('从 PKCS7 提取的原始数据:', realOriginalData);
|
||
}
|
||
|
||
// 使用正确的原始数据进行验证
|
||
if (realOriginalData) {
|
||
console.log('\n使用提取的原始数据进行验证:');
|
||
const result = crypto.verifyPKCS7(sm2P7Base64, realOriginalData);
|
||
console.log('验证结果:', result);
|
||
} else {
|
||
console.log('无法从 PKCS7 中提取原始数据');
|
||
}
|
||
|
||
// 也测试一下不提供原始数据的情况(attach 模式)
|
||
console.log('\n使用 attach 模式(不提供原始数据):');
|
||
const result2 = crypto.verifyPKCS7(sm2P7Base64);
|
||
console.log('验证结果:', result2);
|