25 lines
1.8 KiB
JavaScript
25 lines
1.8 KiB
JavaScript
const rs = require('jsrsasign');
|
|
|
|
// 用户提供的 SM2 PKCS7 签名数据
|
|
const sm2P7Base64 = 'MIIDKgYKKoEcz1UGAQQCAqCCAxowggMWAgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIICNzCCAjMwggHWoAMCAQICBgD1tfRoKTAMBggqgRzPVQGDdQUAMEAxCzAJBgNVBAYTAkNOMQ8wDQYDVQQKDAZQQkNDUkMxIDAeBgNVBAMMF1BCQ0NSQyBTTTIgT3BlcmF0aW9uIENBMB4XDTI2MDQwMjA4MDEzOVoXDTM2MDMzMDA4MDEzOVowTTELMAkGA1UEBhMCQ04xDzANBgNVBAoMBlBCQ0NSQzEtMCsGA1UEAwwkOTRmMWY5MzgtZjBiZC00NzYyLTkyOGUtZjY4YTdjY2UxNDFkMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEu3dU5Vn20VjVL9xGCCRPB/EpATY6HW24+zIZv46Cfv0R2PGM+ZJs/dYarw7qJCnpIbe5T0PKmyyJITNVrVnnMaOBrDCBqTAfBgNVHSMEGDAWgBRUqfVQHMpD+o+YdrPK1JlRJL757zAJBgNVHRMEAjAAME8GA1UdHwRIMEYwRKBCoECkPjA8MQ4wDAYDVQQDDAVjcmw3MTEMMAoGA1UECwwDY3JsMQ8wDQYDVQQKDAZQQkNDUkMxCzAJBgNVBAYTAkNOMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQU5bG6U0lYzWtkPJE74M/3HdafKKcwDAYIKoEcz1UBg3UFAANJADBGAiEAuLTE36/Eobcui23bFiPvOU4MOT0O0r9SyyHZ1JuvLwMCIQCejuSk03jyUAkbh1SaPx5n7WlDjI6tx9v9RJ7iw5rlojGBtzCBtAIBATBKMEAxCzAJBgNVBAYTAkNOMQ8wDQYDVQQKDAZQQkNDUkMxIDAeBgNVBAMMF1BCQ0NSQyBTTTIgT3BlcmF0aW9uIENBAgYA9bX0aCkwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARGMEQCIALTgWMD7io1JHfzInBwzDQpe9bonchuLFSED//JLDtnAiBmEUtr+ssAQIzFG4wY0CAj9QZxhENyCU2UYL1fhaysUA==';
|
|
|
|
console.log('=== 调试签名格式 ===');
|
|
|
|
const parser = new rs.KJUR.asn1.cms.CMSParser();
|
|
const p7 = parser.getCMSSignedData(rs.b64tohex(sm2P7Base64));
|
|
|
|
if (p7.sinfos && p7.sinfos.length > 0) {
|
|
const signer = p7.sinfos[0];
|
|
console.log('签名算法:', signer.sigalg);
|
|
console.log('签名值 (signer.sighex):', signer.sighex);
|
|
console.log('签名值长度:', signer.sighex.length / 2, '字节');
|
|
console.log('签名值开头:', signer.sighex.substring(0, 10));
|
|
|
|
// 检查是否是 ASN.1 DER 格式
|
|
if (signer.sighex.startsWith('30')) {
|
|
console.log('签名格式: ASN.1 DER');
|
|
} else {
|
|
console.log('签名格式: 原始 r|s');
|
|
}
|
|
}
|