domingo, 7 de novembro de 2021

P.U 46 - Erro: Invalid algorithm specified. Ao assinar XML da NF-e

Esse erro começou a surgir após a aplicação do update 46. O core utiliza o algoritimo SHA1 (Secure Hash Algorithm 1), na assinatura do XML da NF-e, no entanto ele já não é seguro e está sendo removido dos produtos Microsoft. Por conta disso, como solução paliativa é necessário abrir uma excessão no escopo da aplicação, para que este algoritmo possa continuar sendo usado. A Microsoft já está a par deste problema. Como Hotfix, adicione a seguinte extension ao seu ambiente:


[ExtensionOf(classStr(EFDocSignXmlDocument_BR))]

internal final class EFDocSignXmlDocument_BR_Extension

{

    public str signDocument(

        KeyVaultCertificateRef _keyVaultCertificateRef,

        DigitalCertificateSubject _certificateSubject,

        XmlElement _xmlDoc,

        str _elementToBeSignedName)

    {

        System.AppContext::SetSwitch("Switch.System.Security.Cryptography.Xml.UseInsecureHashAlgorithms", true);

        System.AppContext::SetSwitch("Switch.System.Security.Cryptography.Pkcs.UseInsecureHashAlgorithms", true);


        return next signDocument(_keyVaultCertificateRef, _certificateSubject, _xmlDoc, _elementToBeSignedName);

    }

}

Nenhum comentário:

Postar um comentário