willmdrs / pdf-signer-brazil

Sign pdf documents with e-cpf and e-cnpj A1 ICP-Brasil .pfx file
MIT License
17 stars 13 forks source link

Falha na autenticação do certificado com a chave privada fornecida #4

Open willmartinsmg opened 3 years ago

willmartinsmg commented 3 years ago

Olá!

Estou usando o certificado original e mesmo assim está dando a seguinte mensagem de erro:

Error: Failed to find a certificate that matches the private key.

Alguém pode me explicar o que precisa ser feito para sair desse erro?

alexxandree1 commented 3 years ago

conseguiu solucionar? estou com a mesma mensagem

spiandorelo commented 3 years ago

Aqui deu esse mesmo problema, resolvi alterando esse metodo aqui:

/node_modules/pdf-signer-brazil/dist/signature/digital-signature.service.js

const getCertificate = (p7, certBags, privateKey) => {
    let certificate;
    Object.keys(certBags).forEach((value, index, array) => {
        var _a, _b;
        const publicKey = (_b = (_a = certBags[index]) === null || _a === void 0 ? void 0 : _a.cert) === null || _b === void 0 ? void 0 : _b.publicKey;
        const rawCertificate = certBags[index].cert;
        p7.addCertificate(rawCertificate);

        //SOH JOGA AQUI SE AINDA NAO ACHOU, PRA EVITAR JOGAR UNDEFINED POR CIMA DE UM Q ACHOU
if(!certificate)
            certificate = getValidatedCertificate(privateKey, publicKey, rawCertificate);
    });
    if (!certificate) {
        throw new Error('Failed to find a certificate that matches the private key.');
    }
    return certificate;
};