{******************************************************************************} { Projeto: Componentes ACBr } { Biblioteca multiplataforma de componentes Delphi para interação com equipa- } { mentos de Automação Comercial utilizados no Brasil } { } { Direitos Autorais Reservados (c) 2020 Daniel Simoes de Almeida } { } { Você pode obter a última versão desse arquivo na pagina do Projeto ACBr } { Componentes localizado em http://www.sourceforge.net/projects/acbr } { } { Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la } { sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela } { Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) } { qualquer versão posterior. } { } { Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM } { NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU } { ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor} { do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) } { } { Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto} { com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., } { no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. } { Você também pode obter uma copia da licença em: } { http://www.opensource.org/licenses/lgpl-license.php } { } { Daniel Simões de Almeida - daniel@projetoacbr.com.br - www.projetoacbr.com.br} { Rua Coronel Aureliano de Camargo, 963 - Tatuí - SP - 18270-170 } {******************************************************************************} {****************************************************************************** |* ACBrDFeComum |* |* PROPÓSITO: Registro de Alterações ******************************************************************************} Símbolo : Significado [+] : Novo recurso [*] : Recurso modificado/melhorado [-] : Correção de Bug (assim esperamos) 01/03/2023 -- ACBrDFeSSL/ACBrDFeWebService -- [+] Acrescentado a propriedade ValidateReturnCode para não gerar uma Exception quando o código estiver fora da faixa 200..202 Por: Italo Giurizzato Junior 15/02/2023 -- ACBrDFeSSL -- [*] Revertido a alteração, pois poderia gerar um efeito colateral nos demais componentes. Por: Italo Giurizzato Junior 01/02/2023 -- ACBrDFeSSL/ACBrDFeWebService -- [*] Alterações visando atender o consumo de API Rest. Por: Italo Giurizzato Junior -- Diversos -- [+] Incluído o parâmetro sBCC (com cópia oculta) no método EnviarEmail em diversos componentes. Por: Alex Heinen 30/12/2022 -- ACBrDFeXsLibXml2 -- [*] Remoção de Warnings e Hints. Por: Italo Giurizzato Junior 13/12/2022 [*] TK-3390 ACBrDFE - Remoção Create / Default LT_ALL - LT_TLSv1_2 por : Victor H Gonzales - Pandaaa 30/11/2022 -- ACBrXmlDocument -- [*] Incluído uma diretiva de compilação para tratar o LocalName para quando for Delphi ou Lazarus. Por: Italo Giurizzato Junior 09/11/2022 -- ACBrXmlBase -- [*] Incluído o prefixo "nfse:" na lista de prefixos a serem removidos do XML. Por: Italo Giurizzato Junior 07/11/2022 -- ACBrDFeUtil -- [*] Incluído um novo parâmetro que determina se deve ou não gerar uma exception, e também antes de buscar a cidade por código é validado a UF presente no código. Por: Italo Giurizzato Junior/Victor H Gonzales 05/09/2022 -- ACBrXmlBase -- [*] Alterado a leitura de Horário, para ler corretamente HH:MM (sem os segundos) Por: Italo Giurizzato Junior 10/08/2022 -- ACBrDFeUtil -- [+] Adicionado função DataHoraTimeZoneModoDeteccao - Converte o DateTime do Sistema para o TimeZone configurado, para evitar divergência de Fuso Horário em comparação de datas de DFes. por: José M S Junior 05/07/2022 -- ACBrDFeUtil -- [*] Inclui um segundo parâmetro na função GerarCodigoDFe visando atender a NF3e e na função GerarChaveAcesso também. Por: Italo Giurizzato Junior 31/05/2022 -- ACBrNFeNotasFiscais -- [*] Adicionado tag cMunFG na seção Identificação da leitura do .INI, compatibilizando com a estrutura Sefaz, porém mantendo compatibilidade. Por: José M S Junior 25/05/2022 -- ACBrXmlBase -- [*] Incluida o enumerado tcDatUSA para ler datas no formato MM/DD/YYYY. Por: Italo Giurizzato Junior 29/03/2022 -- Diversos -- [*] Remoção de Warnings e Hints. Por: Italo Giurizzato Junior 25/03/2022 -- Diversos -- [*] Remoção de Warnings e Hints. Por: Italo Giurizzato Junior 23/03/2022 -- ACBrXmlBase -- [*] Incluida a remoção do caracter "T" na função: EncodeDataHora. Por: Renato Rubinho 16/03/2022 -- ACBrXmlBase -- [*] Incluida a remoção dos caracteres #10 e #13 na função: RemoverCaracteresDesnecessarios. Por: Italo Giurizzato Junior 15/03/2022 -- ACBrXmlBase -- [+] Inclusão da função EncodeDataHora que tem por finalidade converter uma data/hora em string em TDateTime. Por: Italo Giurizzato Junior 10/03/2022 -- ACBrXmlBase -- [-] Correção na leitura de horário que retorna hora com apenas 1 digito em vez de 2. Por: Italo Giurizzato Junior 04/03/2022 -- ACBrXmlWrite -- [*] Especificado um valor padrão para a quebra de linha. Por: Italo Giurizzato Junior -- ACBrXmlBase -- [*] Melhorias na leitura de datas e checagem de horarios no formato 24h e 12h (PM/AM). Por: Italo Giurizzato Junior 02/03/2022 -- ACBrXmlBase -- [-] Correção na leitura de uma data no formato AAAA/MM/DD estava lento /D em vez de DD. Por: Italo Giurizzato Junior 28/02/2022 -- ACBrXmlBase -- [*] Incluido mais sequencia de Escape a serem removidos do XML na função: RemoverCaracteresDesnecessarios. Por: Italo Giurizzato Junior 28/01/2022 -- ACBrXmlBase -- [+] Criado o tipo TACBrTipoEncoding e a função TipoEncoding com a finalidade de identificar o Encoding do XML. Por: Italo Giurizzato Junior 21/01/2022 -- ACBrXmlBase -- [*] A função LerDatas não estava previso uma data no formato AAAAMMDD. Ajuste foi feito para reconhecer esse formato também. Por: Italo Giurizzato Junior 13/01/2022 -- ACBrXmlBase -- [+] Inclusão do tipo: TACBrTipoEmissao e das funções:TipoEmissaoToStr, StrToTipoEmissao, TipoAmbienteToStr e StrToTipoAmbiente. Por: Italo Giurizzato Junior 04/01/2022 -- ACBrXmlBase/ACBrXmlWrite -- [*] Ajustes para suportar valores Int64. Por: Italo Giurizzato Junior 30/12/2021 -- ACBrXmlBase -- [*] Alteração na função StrToXml para trocar o
por ; Por: Italo Giurizzato Junior 20/12/2021 -- ACBrXmlBase -- [*] Alteração do nome da função de ProcessarConteudoXml para ObterConteudoTag. Por: Italo Giurizzato Junior -- ACBrXmlReader -- [*] Alteração do nome da função de ProcessarCNPJCPF e ProcessarConteudo para ObterCNPJCPF e ObterConteudo respectivamente. Por: Italo Giurizzato Junior 17/12/2021 -- ACBrDFeConfiguracoes -- [*] Ajuste em "TWebServicesConf.LerParamsIniServicos", para ficar mais amigável em ambientes Multi-Thread (por: DSA) 16/12/2021 -- ACBrXmlBase -- [+] Implementado a leitura de atributos em um XML. Por: Italo Giurizzato Junior 08/12/2021 -- ACBrXmlBase -- [*] Possível correção para o AV que ocorria ao ler uma tag numérica ausente no XML. Por: Italo Giurizzato Junior 07/12/2021 -- ACBrXmlBase/ACBrXmlDocument -- [*] Melhoria na leitura de valores decimais. Por: Italo Giurizzato Junior 11/11/2021 -- ACBrXmlBase -- [*] Melhoria na leitura de data de competencia. Por: Italo Giurizzato Junior 10/11/2021 -- ACBrXmlBase -- [*] Possível correção para a leitura de data de competencia. Por: Italo Giurizzato Junior 03/11/2021 -- ACBrDFeUtil/ACBrDFeXsLibXml2 -- [*] Substituição da função LerTagXML por SeparaDados. Por: Italo Giurizzato Junior 21/10/2021 -- ACBrXmlBase -- [*] Ao ler um campo data o seu conteudo vai ser passado pela função LerDatas que tem como objetivo interpretar os varios tipos de formatação de data/hora. Por: Italo Giurizzato Junior 28/09/2021 -- ACBrXmlDocument -- [*] Possível correção para o vazamento de memória. Por: Italo Giurizzato Junior 27/09/2021 -- ACBrXmlBase -- [*] Incluido o tratamento para quando existe no XML o caractere #9 usado por alguns provedores. Por: Italo Giurizzato Junior 24/09/2021 -- ACBrXmlBase -- [*] Incluido o tratamento para quando existe no XML o caractere "
" usado por alguns provedores para quebra de linha. Por: Italo Giurizzato Junior 11/09/2021 -- ACBrXmlBase -- [*] Trocado o StringReplace por FastStringReplace. Por: Italo Giurizzato Junior 10/09/2021 -- ACBrDFeReportFortes -- [*] https://www.projetoacbr.com.br/forum/topic/63913-gerar-pdf-danfe-fortesreport-via-iis/?tab=comments#comment-417640 Por: edv4ld0 09/03/2021 -- ACBrXmlBase/ACBrXmlDocument/ACBrXmlWriter/ACBrXmlReader -- [+] Inclusão da Unit ACBrXmlBase para tormar as outras 3 units idenpendentes das Units PCN. Por: Rafael Dias/Italo Giurizzato Junior 24/12/2020 -- ACBrDFeSSL -- [*] Ajuste em "TDFeSSLHttpClass.Enviar", para exibir as informações do Retorno (por: DSA) 13/11/2020 -- ACBrDFeUtil -- [+] Incluido a função ObterDFeXML que extrai o XML de um DF-e de um XML informado. -- ACBrXmlWriter -- [*] Remoção de warnings. Por: Italo Giurizzato Junior 12/11/2020 -- ACBrDFeSSL, ACBrDFeWebService -- [+] Adicionado o parâmetro ""AuthorizationHeader", no método "Enviar" https://www.projetoacbr.com.br/forum/topic/60033-nfse-em-bragança-paulista/ -- ACBrDFeReportFortes -- [*] Ajuste para permitir a leitura de imagens em formato PNG e JPG, se a IDE permitir https://www.projetoacbr.com.br/forum/topic/60096-wrong-format-invalid-danfe/ 14/09/2020 -- ACBrDFeWinCrypt -- [-] Revertendo diretiva para funcionamento correto em Lazarus. https://www.projetoacbr.com.br/forum/topic/59332-n%C3%A3o-lista-certificados-store-windows/?do=findComment&comment=389520&_rid=775 Por: Antonio Tota 02/09/2020 -- ACBrDFeWinCrypt -- [*] Ajuste em "CalcHash" e "ValidarHash", para inicializar o conteúdo do Buffer do Hash https://www.projetoacbr.com.br/forum/topic/59104-problema-com-certificado-remoteid/ (por: DSA) 22/07/2020 -- ACBrXmlDocument -- [+] Inclusão do método ImportXml e da propriedade OuterXml. Por: Rafael Dias 27/05/2020 -- ACBrDFeWinCrypt -- [-] Correção para remover o terminador #0 no retorno dos métodos "CertSubjectName" e "CertIssuerName". Por: BigWings / DSA -- ACBrDFeOpenSSL -- [*] Ajuste para que o método "CertDataVenc" retorne a hora ajustada para o fuso horário da máquina. Por: BigWings 14/05/2020 -- ACBrDFeXsMsXmlCapicom -- [-] Correção para erro 'Conjunto de chaves não está definido' quando usando certificados A3. (por: BigWings) 13/05/2020 -- ACBrDFeHttpOpenSSL, ACBrDFeSSL -- [-] Correção para exibir Erros não relacionados a transmissão (por: Bigwings e DSA) 07/05/2020 -- ACBrDFeUtil -- [-] Correçao no método: "EncontrarURI", quando "docElement", não for informado https://www.projetoacbr.com.br/forum/topic/57466-erro-cancelamento-nfs-betha/ 28/04/2020 -- ACBrDFeSSL -- [*] Melhoria na rotina de Download do Certificado por URLPFX - Adicionada verificação do código de retorno HTTP - Adicionada verificação da integridade do Certificado baixado - Adicionada verificação do CNPJ, do novo Certificado O Certificado antigo, somente será substituido, se as condições acima foram válidas e o Faltarem menos de 10 dias para o vencimento do Certificado em ArquivoPFX (por: DSA) 13/04/2020 -- ACBrXmlDocument -- [-] Correção na passagem de parametros do método: AddChild. Por: Italo Jurisato Junior 01/04/2020 -- ACBrDFeUtil -- [*] Métodos "ObterCodigoMunicipio" e "ObterNomeMunicipio", modificados para usar o componente ACBrIBGE, e não a antiga e obsoleta listas de TXT de cidades (por: DSA) 31/03/2020 -- ACBrDFeCapicom -- [*] Ajustes para compatibilizar com último refactoring (por: DSA) 30/03/2020 -- ACBrDFe, ACBrDFeConfiguracoes -- [+] Adicionada a propriedade "Configuracoes.Certificados.URLPFX: String" Permite informar uma URL, para Download de um Certificado PFX (A1) - O URL será chamada com o método GET, e deve ser um Link para download direto ao arquivo (URLs com redirecionamentos podem não funcionar) - Após o arquivo ser baixado, se a propriedade Configuracoes.Certificados.ArquivoPFX, também estiver especificada, uma cópia Local será salva, e usada na próxima carga do certificado - Um novo download será efetuado, quando a Data de Vencimento do Certificado atingir 15 dias para expirar. - A tentativa de baixar um novo certificado ocorrerá apenas uma vez por dia -- ACBrDFeSSL, ACBrDFeOpenSSL, ACBrDFeWinCrypt -- [*] TDFeSSLCryptClass, e TDFeSSL, refatoração nas rotinas internas, de Carga do Certificado [+] TDFeSSLHttpClass, refatoração e adicionada as Propriedades: DataReq: TMemoryStream -> Stream com Dados a serem enviados na requisição HeaderReq: THttpHeader -> StringList com Header a serem incluídos na requisição DataResp: TMemoryStream -> Stream com Dados da resposta HeaderResp: THttpHeader -> StringList com Header da resposta URL: String -> URL que será ussada na requisição Method: String -> Método que será ussada na requisição (GET, POST, etc) SoapAction: String -> Informação do SoapAction (apenas se for necessário), para inclusão no Header de requisição MimeType: String -> Informação do MimeType, para inclusão no Header de requisição LastErrorDesc: String -> Retorna a Descrição do último Erro [+] TDFeSSLHttpClass, adicionado as Metodos: procedure HTTPMethod(const AMethod, AURL: String); -> Informa o Método e a URL e Executa a requisição procedure Execute; -> Executa a requisição procedure Clear; -> Limpa da memória, todos os dados enviados e recebidos [+] TDFeSSL, Adicionada a propriedade: "URLPFX: String" [+] TDFeSSL, Adicionado os métodos: procedure HTTPMethod(const AMethod, AURL: String); function HTTPGet(const AURL: String): AnsiString; function HTTPPost(const ADataToSend: AnsiString; const AURL: String): AnsiString; [-] TDFeSSL.SetSSLCryptLib, correção para evitar A.V., quando atribuindo um Modelo desativado por diretiva de compilação 09/02/2020 -- ACBrDFe -- [*] Diversos ajustes para compatibilizar com a compilação em Delphi FMX, Android e Linux -- ACBrDFeOpenSSL -- [*] Ajuestes para mensagens de erros fiquem em Resourcestring. [*] Método TDFeOpenSSL.Versao modificado para sinalizar erro na carga das Libs, quando houver -- ACBrLibXml2 -- [+] Nova Unit de Bind da biblioteca libxml2, substituindo o uso da Unit "libxml2.pas" Permitindo a Carga dinâmica da Biblioteca, e compatibilização com Android FMX -- ACBrDFeXsLibXml2 -- [*] Modificado para usar a nova Unit de Bind "ACBrLibXml2.pas" -- ACBrDFeXsXmlSec -- [*] Unit depreciada. Ajustada para continuar usando a antiga "libxml2.pas" (por: DSA) 23/01/2020 -- ACBrDFeSSL -- [+] Classe TDFeSSLCryptClass, Adicionado o método: "function Versao: String;" - Retorna o número da versão da bibiolteca de Criptografia -- ACBrDFeWinCrypt, ACBrDFeOpenSSL -- [+] Adicionado suporte ao método TDFeSSLCryptClass.Versao -- ACBrDFeOpenSSL -- [-] Possível correção no método "GetCertExt", quando usando OpenSSL 1.1.1 https://www.projetoacbr.com.br/forum/topic/55859-erro-access-violation-ao-atualizar-openssl-11/ (por: DSA) 15/01/2020 -- ACBrDFeReport -- [+] TACBrDFeReport, adicionada a propriedade "FormularioContinuo: Boolea default False", que foi migrada de TACBrNFeDANFEClass (por: DSA) 30/12/2019 -- ACBrDFeUtil -- [*] https://www.projetoacbr.com.br/forum/topic/47753-notas-de-exporta%C3%A7%C3%A3o-ind-obrigando-campo-nre/?do=findComment&comment=363645 Por: Fernando Bolson 10/10/2019 -- ACBrDFeReport -- [-] Correção no método SetPathPDF, para considerar Paths sem PathDelimiter no final [*] Se o Nome do Arquivo for informado em PathPDF, ele será aproveitado e atribuido para a propriedades "NomeArquivo", e PathPDF ficará apenas com o Path [*] Se o Path for informado em "NomeArquivo", ele será extraido e movido para a propriedade "PathPDF" [*] Se o nome do arquivo estiver sem extensão, será incluido '.pdf' (por: DSA) 09/10/2019 -- ACBrDFeSSL -- [-] Correção para quando trocar o tipo de certificado zerar a propriedade do tipo anterior para que o carregamento do novo certificado ocorra corretamente. (por: Rafael Dias) 04/10/2019 -- ACBrDFeReport -- [*] Ajuste no método SetPathPDF, para considerar apenas o Path (por: DSA) 04/09/2019 -- ACBrDFeUtil, ACBrDFeSSL -- [*] Método ExtraiURI, renomeado para EncontrarURI, e otimizado para considerar a URI dentro de docElement -- ACBrDFeXsLibXml2 -- [*] Melhoria no método "LibXmlFindSignatureNode", para encontrar a assinatura em XMLs com identação ou espaços -- ACBrDFeXsXmlSec -- [-] Correção de variável não definidano no método "Assinar" [-] Correção em "VerificarAssinatura", para considerar corretamente os parâmetros "SignatureNode" e "SelectionNamespaces" (por: DSA) 03/09/2019 -- ACBrDFeXsLibXml2 -- [-] Corrigido erro ao assinar xml do provedor Ginfes. (Por: Rafael Teno Dias) 21/09/2019 -- ACBrDFeUtil -- [+] Incluido as funções: CalcularHashDados e CalcularHashArquivo, com objetivo de calcular o Hash de um arquivo passado como Stream ou lido do arquivo mais uma string que pode ser a chave de um DF-e. Podemos utiliza-las para gerar o hashEntrega do evento de Comprovante de Entrega Por: DSA 14/08/2019 -- ACBrDFeXsXmlSec -- [*] Acrescentado o parâmetro docElement no método: TDFeSSLXmlSignXmlSec.XmlSecSign. Por: Italo Jurisato Junior 29/07/2019 -- ACBrDFeUtil -- [*] Se informado código menor ou igual a -2 a chave será gerado com código igual a zero, antes estage gerando uma excessão. Por: Italo Jurisato Junior 24/07/2019 -- ACBrDFeUtil -- [*] Removido da a função ValidarCodigoDFe bem como a sua chamada ao gerar a chave de acesso. Por: Italo Jurisato Junior 27/06/2019 -- ACBrDFeConfiguracoes -- [+] Implementado a classe que contem as propriedades de Download utilizadas pelo método DistribuicaoDFe, acrescentado a função GetPathDownloadEvento. Por: Italo Jurisato Junior 24/06/2019 -- ACBrDFeXsLibXml2 -- [-] Corrigido erro ao assinar lote com RPS contendo assinatura. (Por: Rafael Teno Dias) 14/06/2019 -- ACBrDFeUtil -- [-] Ficou faltando um "not" no IF que chama a função que valida o código do documento fiscal Por: Italo Jurisato Junior 14/06/2019 -- ACBrDFeUtil -- [+] Adicionado as funções: function GerarCodigoDFe(AnDF: Integer): integer; function ValidarCodigoDFe(AcDF, AnDF: Integer): Boolean; responsáveis por gerar e validar o código do documento fiscal. A validação leva em consideração a regra B03-10 publicada na NT 2019/001. Por: Italo Jurisato Junior 28/05/2019 -- ACBrDFeConfiguracoes -- [*] Ajustando os campos do proxy no ini para ficar compativel com o ACBrLib. (Por: Rafael Teno Dias) 24/05/2019 -- ACBrDFeXsLibXml2 -- [-] Correção no método "CanonC14n", para usar todos os atributos de NameSpace especificados no Nó Root do XML https://www.projetoacbr.com.br/forum/topic/51135-notablu-assinatura-difere-do-calculado-no-cancelamento/ [-] Ajuste no método "AdicionarNode", para funcionar com Tags com prefixo (:) (por: DSA, e Italo Jurisato Jr) 13/05/2019 -- ACBrDFeSSL -- [-] Correção no método: TDFeSSLXmlSignClass.AdicionarSignatureElement, que não removia o final do XML, ao adicionar o Grupo de Assinatura... -- ACBrDFeXsLibXml2 -- [-] Método "TDFeSSLXmlSignLibXml2.AdicionarNode", corrigido para adicionar Grupo de Assinatura, dentro do Grupo "docElement" (por: DSA) 26/04/2019 -- ACBrDFeXsLibXml2 -- [*] Otimização de desempenho, no método Assinar https://www.projetoacbr.com.br/forum/topic/50751-bloco-x-estoque-lentidão-ao-gerarxml/ (Por: Rafael Teno Dias e DSA) 27/03/2019 -- ACBrDFeUtil -- [*] Ajuste para transformar o resultado do Hash em Base64. Por: Italo Jurisato Junior 20/01/2019 -- ACBrDFeWinCrypt -- [-] Ajuste para remoção de Chars NUL, no retorno do Hash da Assinatura https://www.projetoacbr.com.br/forum/topic/48899-emissão-de-nfe-com-certificado-na-nuvem-remoteid/ 03/01/2019 -- ACBrDFeXsXmlSec -- [*] Melhoria no codigo de assinatura e remoção de codigo não utilizado. (Por: Rafael Teno Dias) 02/01/2019 -- ACBrDFeXsLibXml2 -- [*] Correção no metodo de assinatura do da LibXml2 quando a URI é vazia. (Por: Rafael Teno Dias) 24/12/2018 -- ACBrDFeXsLibXml2, ACBrDFeXsXmlSec -- [*] Otimizações para melhor velocidade na Assinatura e Verificação de assinatura (Por: Rafael Teno Dias e DSA) 17/12/2018 -- ACBrDFeXsLibXml2 -- [*] Melhoria na rotina de empacotamento do XML, removendo xPath (por: Rafael Teno Dias) https://www.projetoacbr.com.br/forum/topic/48096-melhorias-na-rotina-de-formata%C3%A7%C3%A3o-do-xml-com-a-libxml2-removido-xpath/ 06/12/2018 -- ACBrDFeConfiguracoes -- [*] Ajustes nos métodos LerIni e GravarIni (por: DSA) 29/10/2018 -- ACBrDFeSSL -- [-] Correçao de A.V. quando ocorria um Exception na transmissão HTTP e TimeOutPorThread estava ativo. https://www.projetoacbr.com.br/forum/topic/47120-tratamento-de-erro-na-execução-de-tdfesendthread/ [*] Ajuste para que Vários componentes DFe, possam fazer transmissão simultaneamente https://www.projetoacbr.com.br/forum/topic/47126-d%C3%BAvida-sobre-critical-section-em-m%C3%A9todo-de-envio-tdfessl/ (por: DSA) 10/10/2018 -- ACBrDFeConfiguracoes -- [*] Ajuste dos métodos "CalcSSLLib" e "SetSSLLib" para definir o padrão para a propriedade "SSLXMLSignLib" conforme as diretivas do ACBr.inc. Por: BigWings 18/09/2018 -- ACBrDFeConfiguracoes -- [*] Alterado o nome do campo Salvar (Arquivo INI de configuração) por SalvarGer, SalvarArq e SalvarWS, pois existem 3 propriedades de configuração chamada Salvar e estava ocorrendo sobreposição ao incluir essa propriedade no arquivo INI de configuração. Por: Italo Jurisato Junior 08/08/2018 -- ACBrDFeUtil -- [*] Alterado a linha que trata o CNPJ passado na função GerarChaveAcesso, para que possa gerar chave com o CPF em vez de CNPJ. Por: Italo Jurisato Junior 06/08/2018 -- ACBrDFeUtil -- [*] Migrado a procedure LerIniArquivoOuString para classe ACBrUtil, devido utilização fora das classes do DFe. 17/07/2018 -- ACBrDFe, ACBrDFeWebService -- [+] Adicionado o evento, TACBrDFe.OnTransmit. TACBrDFeOnTransmit = procedure(const Dados, URL, SoapAction, MimeType: String; var Resposta: String; var HTTPResultCode: Integer; var InternalErrorCode: Integer) of object ; Ao programar esse evento, a aplicação utilizará seu próprio meio de transmissão segura, e nesse caso, a rotina de transmissão de TDFeSSL não será utilizada. 21/06/2018 -- ACBrDFe -- [*] Ajuste no método "EnviarEmail" para que os anexos sejam incluídos com o parâmetro "Content-disposition" como "attachment", devido a problemas de visualização em alguns clientes de e-mail. (por: BigWings) 14/06/2018 -- ACBrDFeXsLibXml2 -- [-] Correção no método "SelectElements", para funcionar quando tem namespace na tag. (por: Rafael Dias) 12/06/2018 -- ACBrDFeWinCrypt -- [*] Ajuste no método "PFXDataToCertContextWinApi", para funcionar em Windows XP (por: DSA) 06/06/2018 -- ACBrDFeSSL, ACBrDFeHttpWinApi -- [-] Correção de A.V. quando usando httpWinINet, httpWinHttp e TimeOutPorThread = True -- ACBrDFeHttpWinApi -- [-] Correção na exibição de mensagens de Erro com acentos (por: DSA) 30/05/2018 -- ACBrDFeSSL -- [-] Ajuste em TDFeSendThread, para evitar A.V. em algumas situações (por: DSA) 02/04/2018 -- ACBrDFeConfiguracoes -- [*] Ajuste no método "CalcSSLLib" para definir corretamente a propriedade quando SSLXmlSignLib for xsLibXML2. (por: BigWings) 16/03/2018 -- ACBrDFeXsLibXml2 -- [-] Correção da assinatura do lote das NFSe. (por Rafael Dias) [+] Melhoria no carregamento dos schemas para validação da Xml. (por Rafael Dias) 14/03/2018 -- ACBrDFeConfiguracoes, ACBrDFeSSL -- [*] Ajuste para commit do dia 06/03/2018, considerando que o suporte a OpenSSL ou LibXML2 estejam desativados 06/03/2018 -- ACBrDFeConfiguracoes -- [*] TGeralConf.SSLLib, modificado para que quando tiver o valor "libWinCrypt", assuma a seguinte configuração: SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsLibXml2; Modificando o uso de xsMsXml para xsLibXml2 (por: DSA) [+] Adicionada a propriedade: "TWebServicesConf.TimeOutPorThread: Boolean default False". Se ativa o ACBrDFe, usará uma Thread para medir o Tempo total de transmissão e abandonará a conexão quando o TimeOut ocorrer... Isso pode ajudar em uma medição mais acurada, do tempo de Timeout... [-] Método: "TWebServicesConf.Assign", corrigido para copiar todas as propriedades [*] Métodos "LerIni" e "GravarIni", modificados para salvar o valor de "TimeOutPorThread" -- ACBrDFeSSL -- [+] Classe "TDFeSSLHttpClass", adicionado o método "Abortar". Que permite interromper uma conexão HTTP em andamento... [+] Adicionada a classe "TDFeSendThread", para permitir o funcionamento da propriedade "TWebServicesConf.TimeOutPorThread" [*] Método "TDFeSSL.Enviar", modificado para funcionar de acordo com o valor de "TWebServicesConf.TimeOutPorThread" -- ACBrDFeHttpOpenSSL, ACBrDFeHttpWinApi, ACBrDFeHttpIndy -- [+] Implementado suporte ao método "Abortar" (Por André Moraes e DSA) 05/03/2018 -- ACBrDFeXsLibXml2 -- [-] Remoção de warnings. (por Waldir) 01/03/2018 -- ACBrDFe -- [*] Visibilidade dos métodos: "NomeServicoToNomeSchema" e "AchaArquivoSchema", modificada de Public para Protected [*] Método "AchaArquivoSchema", modificado para Zerar a lista de Schemas carregados na memória, sempre que detectar mudanças em: "Configuracoes.Arquivos.PathSchemas" [+] Adicionados os métodos Protected function ExtrairVersaoNomeArquivoSchema(ArqSchema: String): String; virtual; function VersaoSchemaDoubleToString(AVersao: Double): String; virtual; function VersaoSchemaStringToDouble(AVersao: String): Double; virtual; Para permitir a sobrecarga em classes que usem uma numeração de Schema diferente do padrão -- ACBreSocial -- [+] Implementado sobrecarga nos métodos "VersaoSchemaDoubleToString" e "VersaoSchemaStringToDouble" para conseguir encontrar corretamente as versões nos arquivos de Schema do eSocial (por: DSA) 27/02/2018 -- ACBrDFeHttpOpenSSL -- [-] Melhorias na definição de TimeOut de Conexão (por: André Moraes e DSA) -- ACBrDFeWinCrypt -- [*] Remoção de constantes não necessárias (por: DSA) 26/02/2018 -- ACBrDFeXsLibXml2 -- [-] Corrigido bug de assinatura do xml quando a URI é vazia. https://www.projetoacbr.com.br/forum/topic/41682-assinatura-a3-e-a1-instalado-na-m%C3%A1quina/ (por Rafael Dias e Paulo Aguiar Junior) 15/01/2018 -- ACBrDFeSSL -- [+] Adicionado suporte as diretivas {$DEFINE DFE_SEM_MSXML} e {$DEFINE DFE_SEM_INDY} (por Waldir e DSA) 14/02/2018 -- ACBrDFeUtil -- [*] Remção de funções em duplicidade e a troca das chamadas das funções antigas pelas novas Por: Italo Jurisato Junior 09/02/2018 -- ACBrDFeUtil -- [*] Método: "ObterCodigoMunicipio" / "ObterNomeMunicipio" Ajustes nas classes ACBrDFe para validação e utilização desta funcionalidade na Geração do XML. Validando a propriedade "NormatizarMunicipios" e o path com os arquivos de Municípios IBGE. 04/02/2018 -- ACBrDFeWebService -- [-] Método: "TDFeWebService.EnviarDados": Correção para não tentar converter para UTF8, caso não seja um XML https://www.projetoacbr.com.br/forum/topic/39786-nfse-provedor-ipm-guaramirim-e-massaranduba-sc/?do=findComment&comment=271851 31/01/2018 -- ACBrDFeSSL -- [+] Adicionado o método: function CalcHMAC( const BinaryString: AnsiString; const AKey: AnsiString; const Digest: TSSLDgst): AnsiString; (por: DSA) 17/01/2018 -- ACBrDFe -- [*] Melhoria na tratativa de erro em "LerServicoDeParams", quando não encontrar linha no INI com a URL do Serviço (por: BigWings) 09/01/2017 -- ACBrDFeConfiguracoes -- [*] Ajustes para que TConfiguracoes.Owner possa ser Nulo (por: DSA) 08/01/2017 -- ACBrDFeConfiguracoes -- [+] Adicionado os métodos: GravarIni( const AIni: TCustomIniFile ); LerIni( const AIni: TCustomIniFile ); Que permitem Gravar e Ler os valores de todas as configurações de "TConfiguracoes" em um arquivo INI [+] Classe "TWebServicesConf", adicionada a propriedade "SSLType", que permite repassar a configuração para "TACBrDFe.SSL.SSLType" (por: DSA) 28/12/2017 -- ACBrDFeXsLibXml2 -- [*] Diversos ajustes de String x AnsiString [*] Limpeza e revisão dos fontes.. [-] Correção de Memory Leak em TDFeSSLXmlSignLibXml2.CanonC14n [-] Correção no método "VerificarAssinatura", para conferir se houve alterações no conteúdo do XML, comparando o "DigestValue" (por: DSA) 26/12/2017 -- ACBrDFeXsMsXml -- [-] Correção para assinatura de Certificados A1, quando ProviderType = 24 "The Cryptographic Service Provider Type 24 is not supported" (por: DSA) 20/12/2017 -- ACBrDFeXsLibXml2, ACBrDFeXsXmlSec -- [*] Metodos de assinatura refatorado para usar apenas métodos da LibXml. [+] Adicionado o novo método "ACBrDFeXsLibXml2.LibXmlEstaAssinado" para verificar se o xml está assinado. [*] ACBrDFeXsXmlSec esta herdando agora de ACBrDFeXsLibXml2 para evitar código repetidos. 04/12/2017 -- ACBrDFeSSL, ACBrDFeOpenSSL, ACBrDFeWinCrypt -- [+] Adicionado novo método "TDFeSSL.ValidarHash". function ValidarHash( const AStringList : TStringList; const Digest: TSSLDgst; const Hash: AnsiString; const Assinado: Boolean = False): Boolean; overload; Que permite verificar Hashs, Assinados ou não, gerados pelo comando "CalcHash" (por: Rafael Dias) [+] Adicionada Unit: ACBrDFeXsLibXml2.pas, contendo nova classe para Assinatura e verificação de XML, usando apenas a LibXML2 (não depende da LibXMLSec). A classe "TDFeSSLXmlSignLibXml2", implementa os métodos de "TDFeSSLXmlSignClass": "Assinar", "Validar", "VerificarAssinatura"; e será instanciada quando TDFeSSL.SSLXmlSignClass = "xsLibXml2". Compatível com OpenSSL e WinCrypt, poderá usar Certificados A1 e A3. Eliminando em definitivo a dependencia da MSXML (TDFeSSLXmlSignMsXml) (por: Rafael Dias e DSA) 27/10/2017 -- ACBrDFeSSL, ACBrDFeXsMsXml, ACBrDFeXsXmlSec, ACBrDFeXsMsXmlCapicom -- [*] Classe "TDFeSSLXmlSignClass", adicionado o parâmetro "IdAttr" nos métodos: AdicionarSignatureElement, Assinar e VerificarAssinatura. -- ACBrDFeUtil -- [*] Método "ExtraiURI", nome do parâmetro "IdSignature" modificado para "IdAttr" (por: Renato Rubinho) https://www.projetoacbr.com.br/forum/topic/38501-acbrreinf-fontes/?do=findComment&comment=260051 23/10/2017 -- ACBrDFeWebService -- [*] Ajuste no método: "TDFeWebService.EnviarDados"... para não verificar a validade do certificado dentro do Loop (por: DSA) -- ACBrDFeHttpOpenSSL, ACBrDFeHttpWinApi -- [*] Método "Enviar". Ajuste para capturar o conteúdo do retorno do Servidor, antes da validaçao do HTTPResultCode. https://www.projetoacbr.com.br/forum/topic/39428-obter-retorno-do-webservice-em-caso-de-erro-http-400-ou-500/ 08/09/2017 -- ACBrDFeSSL, ACBrDFeXsMsXml, ACBrDFeXsXmlSec -- [*] Método "TDFeSSLXmlSignClass.VerificarAssinatura", modificado para receber como parâmetro: IdSignature: String = '' (ficando igual ao método "Assinar") Isso permitirá a verificação de assinaturas que usa um padrão de ID diferente de "Id" [+] Adicionado a propriedade "SSLDgst: TSSLDgst", para permitir que o método "Assinar" gere assinaturas dgstSHA256 -- ACBrDFeXsXmlSec -- [*] Métodos "Assinar" e "VerificarAssinatura" modificados para fazer uso do parâmetro "IdSignature". -- ACBrDFeUtil -- [*] Método "SignatureElement" modificado para receber como parâmetro extra "Digest: TSSLDgst = dgstSHA1". Isso permite gerar templates de assinatura para SHA256 [*] Método "ExtraiURI" modificado para receber como parâmetro extra "IdSignature: String = ''". Isso permite diferente tipos de ID como por exemplo: "Id", "id", etc (por: DSA) 30/08/2017 -- ACBrDFeOpenSSL -- [+] Adicionado suporte a Logs de Debug da Synapse, que podem ser ligados com a diretiva {$Define SYNADEBUG} -- ACBrDFeXsMsXml -- [-] Detectado problemas na assinatura gerada, em algumas raras situações. Provavelmente o problema se deve ao uso do objeto "IXMLDigitalSignatureEx" Método "Assinar" modificado, para usar o objeto "IXMLDigitalSignature", ficando compatível com o utilizado em ACBrDFeXsMsXmlCapicom. -- ACBrDFeXsXmlSec -- [+] Método "XmlSecSign" modificado para exibir mais informações de erro, no caso de falha da Assinatura (por: DSA) 21/08/2017 -- ACBrDFeWinCrypt -- [-] Correção para remover o numero de Série do Certificado, de "CertificadosA3ComPin", quando Descarregar o Certificado. http://www.projetoacbr.com.br/forum/topic/38349-problemas-com-pin-a3-assinatura-de-xml/ (por: DSA) 16/08/2017 -- ACBrDFeWebService -- [*] Metodo "TDFeWebService.EnviarDados", ajuste para verificar a Validade do Certificado, mesmo quando configurado para usar DadosPFX ou ArquivoPFX (por: DSA) 25/07/2017 -- Diversos -- [*] Correções visando o provedor NotaBlu. Por: Augusto Fontana 14/07/2017 -- ACBrDFe -- [*] Refatoração do método "EnviarEmail" para usar o recurso recem implementado de ACBrMail, para adição de lista de Emails em um comando. (por: DSA) 07/07/2017 -- ACBrDFeConfiguracoes -- [-] Correção em "TArquivosConf.Assign", onde o Objeto "OrdenacaoPath" não era duplicado, mas sim copiado por referência, causando A.V. na liberação de Objetos copiados. (por: DSA) 26/06/2017 -- ACBrDFeConfiguracoes -- [+] Adicionada a propriedade "TArquivosConf.OrdenacaoPath", que permite definir a ordem de criação dos subdiretórios. Mantém a compatibilidade da ordem anterior, por motivo de compatibilidade, e respeitando as propriedades: SepararPorCNPJ, SepararPorModelo, SepararPorAno/Mes/Dia, AdicionarLiteral http://www.projetoacbr.com.br/forum/topic/35456-salvar-xml-em-diret%C3%B3rio-di%C3%A1rio/?do=findComment&comment=244884 (por: -=Ma®©oS=- e BigWings) 21/06/2016 -- ACBrDFeSSL -- [+] Adicionada a propriedade TDadosCertificado.ThumbPrint -- ACBrDFeWinCrypt, ACBrDFeOpenSSL -- [+] Adicionado o método "GetThumbPrint". [*] Método "GetCertInfo" modificado para preencher "DadosCertificado.ThumbPrint" (por: DSA) 14/06/2017 -- ACBrDFeConfiguracoes -- [*] Classe "TArquivosConf", adicionada a propriedade: "SepararPorAno". [*] Método "GetPath", modificado para suportar a propriedades "SepararPorAno" http://www.projetoacbr.com.br/forum/index.php?showtopic=35456 09/06/2017 -- ACBrDFeConfiguracoes -- [*] Método "GetPath", modificado para permitir que a Descrição do Modelo seja informada pelo método chamador. Isso permite que a Descrição do modelo seja definida, pelo conteúdo do XML a ser Salvo e não apenas pelo Modelo configurado no componente. (por: DSA) 05/06/2017 -- ACBrDFeOpenSSL, ACBrDFeWinCrypt -- [-] Acerto na leitura do CNPJ quando não está no CN, em alguns casos havia lixo no inicio da string o que fazia com que os 2 ultimo digitos do CNPJ fossem perdidos (por: regys.silveira) 24/05/2017 -- ACBrDFeSSL -- [-] Correção em "TDFeSSL.Assinar", para repor corretamente a Declaração do XML, caso a mesma seja desprezada por "AjustarXMLAssinado", por não ser UTF8 -- ACBrDFeWinCrypt -- [*] Método: "GetCSPProviderInfo" renomeado para "GetProviderInfo", e refatorado para suportar Certificados CNG [*] Método: "MsgErroGetCryptProvider", mensagem de erro por falha de hardware do certificado melhorada para melhor clareza [+] Implementado código do método: "GetCNGProviderParamString" -- ACBrDFeXsMsXml -- [*] Método: "VerificarAssinatura", correção na exibição da acentuação das mensagens de Erro de assinatura [*] Método: "Assinar". Melhor documentação das duas formas de como proceder com a assinatura (Antiga, usada na CAPICOM e Atual) (por: DSA) -- ACBrDFeXsXmlSec -- [-] Método "Assinar", correção para assinar corretamente XMLs com acentos, e sem a sessão de Declaração de Encoding (por: DSA) 19/05/2017 -- ACBrDFeSSL -- [*] Ajuste para não usar Documentos que não o CNPJ, do "SubjectName". Pois alguns Certificados de empresas EPP, trazem o CPF no final do Nome. (A leituta do CNPJ/CPF será feita pelas Extensões do Certificado) (Por: DSA) 28/04/2017 -- ACBrDFeWinCrypt -- [*] Ajuste em "SetCertContextPassword", para não disparar erros desconhecidos na atribuição de senha para "PP_SIGNATURE_PIN" http://www.projetoacbr.com.br/forum/topic/36266-falha-ao-definir-pin-do-certificado-erro-80100004/ (por: DSA) -- ACBrDFeConfiguracoes -- [*] Modificada a visibilidade de variável Private, "TArquivosConf.FConfiguracoes" para "TArquivosConf.fpConfiguracoes", Protected (por: DSA) 22/04/2017 -- ACBrDFe -- [*] Método "EnviarEmail", adicionado o parâmetro "ReplyTo: TStrings" http://www.projetoacbr.com.br/forum/topic/36261-acbrnfe-erro-envio-de-e-mail-com-mensagem/?do=findComment&comment=238100 (por Maurício Sareto e DSA) 19/04/2017 -- ACBrDFeWinCrypt -- [*] Método "SetCertContextPassword", ajuste para que não seja disparado Exception, quando o retorno for (000003F0 hex = 1008 decimal = ERROR_NO_TOKEN) -- ACBrDFeXsMsXml -- [-] Ajustes nas chamadas de "CoInitialize", para que funcione com multiplas Threads (por: DSA) -- ACBrDFe -- [*] Método "LerServicoDeParams", modificação para permitir múltiplos redirecionamentos http://www.projetoacbr.com.br/forum/topic/36328-m%C3%BAltiplos-redirecionamentos-usar-no-lerservicodeparams/ (por: BigWings) -- ACBr_NCrypt -- [*] Unit modificada, para usar carga dinâmica, e assim evitar problemas no Windows XP http://www.projetoacbr.com.br/forum/topic/36219-ncryptdll-faltando-no-xp/ (por: DSA) 17/04/2017 -- ACBrDFeCapicom -- [-] Método "CarregarCertificado", ajuste na chamada de "CoInitialize" http://www.projetoacbr.com.br/forum/topic/24934-erro-de-coinitialize-na-emiss%C3%A3o-de-nfe-usando-thread/#comment-237508 13/04/2017 -- ACBrDFeWinCrypt -- [-] Correção para não atribuir Senha para certificados A3, de uma segunda instância do ACBrNFe, que utilize o mesmo certificado. (por: DSA) 12/04/2017 -- ACBrDFeWinCrypt -- [*] Ajuste para compilação com a diretiva "DFE_SEM_NCRYPT", para permitir o suporte a Windows XP (por: DSA) -- ACBr_NCrypt -- [*] Ajuste para efetuara carga da DLL com "Delayed", caso a diretiva "USE_DELAYED" esteja ligada, e o compilador suporte carga tardia.. (por: Waldir Paim) http://www.projetoacbr.com.br/forum/topic/36219-ncryptdll-faltando-no-xp/?do=findComment&comment=237206 10/04/2017 -- ACBrDFeWinCrypt -- [-] Ajustes para possível correção de Certificados compatível apenas com "CNG" que causavam o erro "NTE_BAD_PROV_TYPE - 0x80090014", durante a carga do Certificado. http://www.projetoacbr.com.br/forum/topic/36017-provedor-de-criptografia/?do=findComment&comment=236710 (por: DSA) 04/04/2017 -- ACBrDFeCapicom -- [-] Correção no método "GetCNPJFromExtensions", onde ocorria o erro: "Parâmetro Incorreto" (por: DSA) 03/04/2017 -- ACBrDFeCapicom, ACBrDFeWinCrypt -- [-] Possível correção para o erro "Erro Thread da crypt32", quando usando "cryCapicom" -- ACBrDFeWinCrypt -- [*] Ajuste no método "GetCNPJFromExtensions", quebrando-o em vários, para permitir a leitura de diferentes extensões -- ACBrDFeOpenSSL -- [-] Correção na interpretação do conteúdo das extensões do certificado, corrigndo problemas de leitura de CPF/CNPJ de alguns certificados (por: DSA) 27/03/2017 -- ACBrDFeXsXmlSec -- [*] Remoção da dependencia de "libxslt". (por Waldir Paim) http://www.projetoacbr.com.br/forum/topic/35775-sugest%C3%A3o-limpeza-dos-uses-de-algumas-units/?do=findComment&comment=234842 25/03/2017 -- ACBrDFeHttpOpenSSL, ACBrDFeHttpIndy -- [*] Ajuste para usar a definição MimeType, comforme recebido pela rotina chamadora -- ACBrDFeHttpWinApi -- [*] Ajuste para disparar exceptions, caso o HTTPResultCode não seja 200,201,202 -- ACBrDFeSSL -- [*] Ajuste para que o MimeType padrão, caso nenhum tenha sido informado contenha instrução de UTF8 'application/soap+xml; charset=utf-8' 24/03/2017 -- ACBRDFeWinCrypt -- [-] Correção em "PFXDataToCertContextWinApi", que é usada por "CarregarCertificado", quando informado o certificado por: "ArquivoPFX" ou "DadosPFX". Para que seja possível carregar Certificados com número de série, menor do que 16 (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=35805 22/03/2017 -- ACBrDFeSSL -- [*] Ajustes em "Clear", para evitar problemas quando ocorre a troca de SSLCryptLib via código. -- ACBRDFeWinCrypt -- [*] Ajustes em "CarregarCertificado", para priorizar a busca do certificado por "DadosPFX" seguido de "ArquivoPFX" e depois "NumeroSerie" (por: DSA) 19/03/2017 -- ACBrDFeSSL -- [*] Amplo refactoring promovido, separando a classe "TDFeSSLClass" em 3 novas classes: "TDFeSSLCryptClass" - para Carregar certificados e efetuar criptografia "TDFeSSLHttpClass" - para comunicação HTTP/HTTPS com suporte a Certificados "TDFeSSLXmlSignClass" - Para Validar XMLs, validar assinaturas e Assinar XML com Certificados [+] "TSSLLib", adicionado os tipos "libWinCrypt, libCustom" [+] Criada nova classe "TDadosCertificado", para conter os dados do certificado carregado [+] Criada nova classe "TListaCertificados",para conter uma lista de Objetos do tipo TDadosCertificado, com todos os certificados de uma "Store", e após a chamada do método "TDFeSSL.LerCertificadosStore" [+] Adicionada propriedade "TDFeSSL.StoreName: String", usada apenas no Windows. Nome da Store a ser aberta, padrão "MY" [+] Adicionada propriedade "TDFeSSL.StoreLocation: TSSLStoreLocation", usada apenas no Windows. Default "slCurrentUser". TSSLStoreLocation = (slMemory, slLocalMachine, slCurrentUser, slActiveDirectory, slSmartCard); [+] Adicionado o método: "TDFeSSL.LerCertificadosStore", apenas Windows, para carregar todos os Certifcados de "TDFeSSL.StoreName" para a lista de Objetos: "TDFeSSL.ListaCertificados" [+] Adicionado a propriedade "TDFeSSL.DadosCertificado", para permitir acesso aos dados do certificado carregado [+] Adicionada a propriedade "TDFeSSL.SSLCryptLib: TSSLCryptLib" default cryNone; para definir a classe de criptografia TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt); [+] Adicionada a propriedade "TDFeSSL.SSLHttpLib: TSSLHttpLib" default httpNone; para definir a classe de comunicação HTTP/HTTPS TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); [+] Adicionada a propriedade "TDFeSSL.SSLXmlSignLib: TSSLXmlSignLib" default xsNone; para definir a classe de assinatura de validação de XML TSSLXmlSignLib = (xsNone, xsXmlSec, xsMsXml, xsMsXmlCapicom); [+] Adicionada a propriedades "TDFeSSL"SSLType: TSSLType" default LT_all; para permitir definir o tipo de criptografia em HTTPS sendo: TSSLType = (LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_TLSv1_2, LT_SSHv2) suportado apenas em TDFeHttpOpenSSL e TDFeHttpWinHttp -- ACBrDFeConfiguracoes -- [+] Adicionada as propriedades: property SSLCryptLib: TSSLCryptLib property SSLHttpLib: TSSLHttpLib property SSLXmlSignLib: TSSLXmlSignLib [*] Propriedade "SSLLib: TSSLLib" passou a ser virtual, e mantida por compatibilidade. Ajusta-la irá produzir ajustes em "SSLCryptLib", "SSLHttpLib" e "SSLXmlSignLib". Exemplo: if SSLLib = libOpenSSL then begin SSLCryptLib := cryOpenSSL; SSLHttpLib := httpOpenSSL; SSLXmlSignLib := xsXmlSec; end; -- ACBrDFe -- [+] Adicionado suporte a configurações de "SSLCryptLib", "SSLHttpLib", "SSLXmlSignLib" -- ACBrDFeOpenSSL -- [*] Amplo refactoring. Removido código referente a comunicação HTTP/HTTPs que foi migrado para "ACBrDFeHttpOpenSSL" [*] Removido código referente a assinatura digital e Validação de XML, que foi migrado para "ACBrDFeXsXmlSec" -- ACBRDFeWinCrypt -- [+] Nova Unit, para manipular Certificados do Windows e efetuar assinatura digital, usando a Win API WinCrypt (MSCrypto/CAPI) -- ACBrDFeCapicom -- [*] Refactoring, para usar boa parte do código de "ACBRDFeWinCrypt" -- ACBrDFeHttpOpenSSL -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando a Synapse e OpenSSL -- ACBrDFeHttpWinApi -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando as APIs do Windows WinHttp ou WinINet -- ACBrDFeHttpIndy, ACBrDFeCapicomDelphiSoap -- [*] Unit renomeada de "ACBrDFeCapicomDelphiSoap" para "ACBrDFeHttpIndy", e refatorada para não depender da CAPICOM -- ACBrDFeXsXmlSec -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib XMLSEC -- ACBrDFeXsMsXml -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib MSXML -- ACBrDFeXsMsXmlCapicom -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignMsXml usando a Lib MSXML e CAPICOM -- ACBrDFeException -- [+] Adicionado o exception "EACBrDFeExceptionNoPrivateKey" -- ACBrDFeUtil -- [+] Adicionado o método "SignatureElement: String" (por DSA) 08/03/2017 [+] Adição do separador por dia dos documentos em pastas http://www.projetoacbr.com.br/forum/topic/35456-salvar-xml-em-diretório-diário/ (por: Juliomar Marchetti) 07/02/2017 -- ACBrDFeConfiguracoes -- [+] Adicionada a propriedade Geral.IdentarXML: Boolean default False (por: DSA) 24/01/2017 -- ACBrDFeUtil -- [*] Rafatoração dos métodos: "ValidaDIRE" e "ValidaRE", aplicando simplificação de código, e retornando "False", se houver caracteres não numéricos (por: DSA) 23/12/2016 -- ACBrDFeOpenSSL -- [+] Adicionada a propriedade "SSLType: TSSLType default LT_all", podendo ser: (LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_TLSv1_2, LT_SSHv2) -- ACBrDFe -- [-] Correção de Bug em "LerServicoChaveDeParams". Não era capaz de ler a URL do Serviço com a maior versão existente. (por: DSA) 13/12/2016 -- ACBrDFeOpenSSL, ssl_openssl_lib -- [*] Melhoria no tempo de carga do OpenSSL. [*] Correção na ordem de liberação de Objetos em "VerificarAssinatura" http://www.projetoacbr.com.br/forum/index.php?showtopic=33811 (por: Waldir Paim) 19/11/2016 -- ACBrDFeOpenSSL -- [*] Melhorada a detecção de TimeOut na conexão com o Servidor HTTP http://www.projetoacbr.com.br/forum/topic/20518-nfce-timeout/ 23/10/2016 -- ACBrDFeOpenSSL -- [*] Modificada a implementação dos métodos: "GetSubjectName" e "GetIssuerName", para usar o método do OpenSSL "X509_NAME_print_ex", a fim de resolver problemas de detectação de Encoding em alguns certificados (por: DSA) 22/10/2016 -- ACBrDFeOpenSSL -- [*] Implementada a leitura de CPF por Extensões do Certificado (por: DSA) 21/10/2016 [-] DANFE NFSe Fortes Acerto feito pelo Márcio para não utilizar Datasets 17/10/2016 -- ACBrDFeOpenSSL -- [*] Incluido uma verificação para remover se necessário algum prefixo de infElement ao executar a função: XmlSecFindSignatureNode. Alguns provedores de NFS-e tem prefixos em algumas TAGs. por: Italo Jurisato Junior 14/10/2016 -- ACBrDFeSSL -- [-] Correções no método "AjustarXMLAssinado". - Caso a Tag não fosse encontrada, o Certificado X509 era inserido no inicio do XML - Remoção indevida de espaços no XML, após a tag "" -- ACBrDFeCapicom -- [-] Correção na exibição de memsagem de Erro -- ACBrDFeOpenSSL -- [+] Adicionado o método: "LerX509Info", que permite ler as informações do certificado, através do conteúdo da Tag [*] Métodos "LerPFXInfo" tornado público [+] Nova Propridade publica: "Certificado: pX509" (por: DSA) 26/09/2016 -- ACBrDFeSSL, ACBrDFeOpenSSL, ACBrDFeCapicom -- [+] Adicionada as propriedades: CertIssuerName: String -> Retorna Emissor do Certificado CertCertificadora: String -> Retorna o Nome da Certificadora. Exemplos: "AC VALID" e "AC Certisign". (por: Leonardo Gregianin) http://www.projetoacbr.com.br/forum/index.php?showtopic=32553 13/09/2016 -- ACBrDFe, ACBrDFeSSL -- [+] Adicionado o evento "OnAntesDeAssinar: TDFeSSLAntesDeAssinar", que permite a aplicação, controlar o processo de assinatura, usando por exemplo, algum utilitário externo para a assinatura. Se o valor de "ConteudoXML" for modificado pela aplicação, o TDFeSSL não tentará assinar o documento internamente. (por: DSA) 18/07/2016 -- ACBrDFeOpenSSL -- [*] Incluido o código 202 na checagem do ResultCode, uma vez que o provedor retorna 202 em vez de 200 como resposta ao Envio. por: BigWings 05/07/2016 -- ACBrDFeSSL -- [*] Remoção de uma variável definida e não utilizada. por: Italo Jurisato Junior 01/07/2016 -- ACBrDFeOpenSSL -- [*] Adicionado métodos internos para busca de nós a fim de melhorar a detecção do nó a ser assinado e o nó de assinatura, a fim de suportar os diversos tipos de XMLs da NFSe (por: DSA) 24/06/2016 -- ACBrDFeSSL -- [*] Método "AjustarXMLAssinado" modificado para remover Declaração de XML sem UTF8 (por: DSA) -- ACBrDFeOpenSSL -- [*] Ajuste para permitir a assintura sem informar o parâmetro "infElement". Nesse caso, a assinatura será procurada no ultimo nó do Documento Raiz (por: DSA) 13/06/2016 -- ACBrDFeSSL -- [*] Método: "Assinar", ajuste para usar Declaralção anterior do XML, apenas se a mesma for compatível com UTF8 [*] Método: "AjustarXMLAssinado", modificado para remover Espaços apenas do Elemento de Assinatura, e não de todo final do XML, após a Tag de assinatura; Modificado para permitir informar o Certificado DER_Base64 que constará na Assinatura (usado por OpenSSL) [*] Métodos "Validar", "VerificarAssinatura", modificados para presumir que o XML de entrada, sempre estará em UTF8 -- ACBrDFeOpenSSL -- [-] Correção para correta assinatura de XML com Certificados da "SOLUTI" (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=30247 [*] Método: "XmlSecSign", modificado para conseguir achar a assinatura em XMLs com tag "nfeProc" como Raiz [*] Métodos "Validar", "VerificarAssinatura", modificados para presumir que o XML de entrada, sempre estará em UTF8 [*] Método: "LerPFXInfo", modificado para extrair o Certificado no formato DER_Base64, (o mesmo será utilizado na Tag de Assinatura) -- ACBrDFeCapicom -- [*] Métodos "Validar", "VerificarAssinatura", modificados para presumir que o XML de entrada, sempre estará em UTF8 12/02/2016 -- ACBrDFeSSL, ACBrDFeCapicom, ACBrDFeOpenSSL, ACBrDFeCapicomDelphiSoap -- [*] Removida a propriedde "UseSSL" [*] Removida a propriedde "UseCertificate" [+] Adicionada a propriedade "UseCertificateHTTP", que permite informar se a conexão HTTP precisa do Certificado A1 ou A3. Essa propriedade não irá influenciar o método "Assinar", que SEMPRE exigirá o certificado. (por: DSA) 16/03/2016 -- ACBrDFeOpenSSL -- [*] Método "VerificarAssinatura": Ajuste para retorno de mensagem de erro, quando a Assinatura do XML é inválida (por: DSA) -- ACBrDFeWebService -- [-] Método: "SalvarEnvio", correção para conversão de XML para UTF8, quando o mesmo não foi previamente assinado (por: DSA) 11/03/2016 *-- ACBrDFeOpenSSL -- [*] Modificada a rotina de inicialização de XMLSec, para suportar diretiva de compilação "USE_DELAYED" [-] Corrigida falha na verificação de assinatura com notas Processadas "nfeProc" (por: DSA) 08/03/2016 -- ACBrDFeSSL, ACBrDFeCapicom, ACBrDFeOpenSSL, ACBrHTTPReqResp -- [*] Ajustes para o correto funcionamento, quando a propriedade DFeSSL.UseCertificate = False (por: DSA) -- ACBrDFeCapicom -- [-] Correção no ajuste do Proxy, quando informando valores vazios (por: DSA) -- ACBrDFeOpenSSL -- [-] Correção de encoding nas mensagens de Erro de "VerificarAssinatura" (por: DSA) 07/03/2016 -- ACBrDFeCapicom, ACBrDFeCapicomDelphiSoap -- [*] Ajustes para compilação em 64 bits. Remoção de Hints e Warnings (por: DSA) -- ACBrDFe -- [*] Método "Gravar" modificado, inserido novo parâmetros "ConteudoEhUTF8" function Gravar(NomeArquivo: String; ConteudoXML: String; aPath: String = ''; ConteudoEhUTF8: Boolean = True): Boolean; - Se ConteudoEhUTF8 for True e ConteudoXML não contiver o cabeçalho de Encoding em UTF8, ele será automaticamente adicionado. -- ACBrDFeConfiguracoes -- [+] Adicionada a propriedade Configuracoes.Geral.RetirarEspacos: Boolea, default True -- ACBrDFeWebService -- [*] Método "EnviarDados", modificado para não converter a String recebida do WebService. Ou seja, o conteudo das variáveis "RetornoWS" e "RetWS" sempre permanecerá em UTF8 e sem decodificar os caracteres "HTML Entity" [*] Método "AjustarOpcoes" modificado para suportar "RetirarEspacos" 04/03/2016 (por: DSA) -- ACBrDFeCapicom, ACBrDFeOpenSSL, ACBrDFeWebService -- [*] Ajustes para compilação após modificações em ACBrUtil [*] Modificações para compatibilização com FPC 3.0 -- ACBrDFeWebService -- [+] Adicionado o método protegido "AjustarOpcoes", para permitir que o XML gerado pelo WebService, respeite RetirarAcentos e RetirarEspacos das Opções do componente pai (TACBrDFe). Ex: AjustarOpcoes( InutNFe.Gerador.Opcoes ); 26/02/2016 (por: DSA) -- ACBrDFeSSL, ACBrDFeOpenSSL, ACBrDFeCapicom -- [+] Adicionada a propriedade "CertRazaoSocial", para retornar a "Razão Social" do Certificado [+] Adicionado o método "CalcHash", para permitir o calculo de Hashs nos seguintes modos: dgstMD2, dgstMD4, dgstMD5, dgstRMD160, dgstSHA, dgstSHA1, dgstSHA256, dgstSHA512. O resultado do Hash pode ser apresentado nos formatos: outHexa, outBase64, outBinary. - Também é possível "Assinar" o Hash gerado, com a chave RSA do Certificado (assinatura digital) CalcHash( const AStream : TStream; const Digest: TSSLDgst; const ModoSaida: TSSLHashOutput = outHexa; const Assinar: Boolean = False): AnsiString; - Há sobrecarga do método para permitir entrada de dados como: BinaryString : AnsiString e AStringList : TStringList [+] Adicionado o método: CalcHashArquivo( const NomeArquivo : String; ...), de forma analoga a "CalcHash" -- ACBrDFeCapicom -- [-] Correção nos método "Assinar", "Validar" e "VerificarAssinatura", para tratar corretamente XMLs em UTF8 com acentos. -- ACBrDFeOpenSSL -- [-] Correção nos método "Validar" e "VerificarAssinatura", para tratar corretamente XMLs em UTF8 com acentos. 24/02/2016 -- ACBrDFeWebService -- [*] modificado o metodo GetUrlWsd para virtual e assim poder sobre-escrever ele por: Juliomar Marchetti 23/02/2016 -- ACBrMDFeConfiguracoes -- ACBrCTeConfiguracoes -- ACBrNFeConfiguracoes [-] Correção da criação de pastas, separando os XMLs por nome, no método DistribuicaoDFe() estava criando pasta dentro de pasta. (por Isaque Pinheiro) 18/02/2016 -- ACBrDFeConfiguracoes -- [+] Adicionado a propriedade: TimeZoneConf: TTimeZoneConf em TWebServicesConf, para permitit configurar como o métoto pcnAuxiliar.GetUTC se comportará, na detecção do TimeZone (leia mais em: PCNComum-change-log.txt) 17/02/2016 -- ACBrDFeCapicomDelphiSoap -- [*] Ajuste para definir o TimeOut de DFeSSL para a Indy (por: DSA) -- ACBrDFeSSL -- [+] Adicionado o método TDFeSSL.ValidarCNPJCertificado(CNPJDocumento: String); Dispara exception se o "CNPJDocumento" não contiver a mesma raiz do CNPJ do Certificado (por: DSA) 10/02/2015 -- ACBrDFeWebService -- [-] Ajuste no método TDFeWebService.SalvarEnvio, para que a gravação dos arquivos com os dados de envio, não seja indevidamente convertida para UTF8 (por: DSA) 20/01/2015 -- ACBrDFeWebService -- [*] Ajuste para não tentar verificar a validade do Certificado, se não há certificado informado. -- ACBrDFeCapicomDelphiSoap -- [*] Ajuste para considerar a propriedade "DFeSSL.UseCertificate", e não atribuir o Certificado na conexão se a mesma for "False" http://www.projetoacbr.com.br/forum/index.php?showtopic=27492 05/01/2016 -- ACBrDFe -- [*] Ajuste para melhor exibição de erros em "LerServicoDeParams" (por: DSA) 04/01/2016 -- ACBrDFeOpenSSL -- [-] Correção para os métodos "Assinar" e "VerificarAssinatura", que não funcionavam em Delphi XE7, devido a problemas de String vs AnsiString (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=27085 03/01/2016 -- ACBrDFeWebService -- [+] Adicionado o método: procedure Clear; virtual; que sempre será chamado em "TDFeWebService.Create" e "TDFeWebService.InicializarServico". Isso garantirá que não haverá informações de consultas anteriores, nas propriedades de Retorno do WebService. (por: DSA) 23/12/2015 -- ACBrDFeSSL -- [*] Modificada a assinatura do método "Assinar", para permitir assinar documentos diferentes do XML da NFe function Assinar(const ConteudoXML, docElement, infElement: String; SignatureNode: String = ''; SelectionNamespaces: String = ''; IdSignature: String = '') [*] Modificada a assinatura do método "VerificarAssinatura", para permitir verificar documentos diferentes do XML da NFe function VerificarAssinatura(const ConteudoXML: String; out MsgErro: String; const infElement: String; SignatureNode: String = ''; SelectionNamespaces: String = ''): Boolean; virtual; [*] Adicionanda a propriedade "UseCertificate: Boolean Default True", que permite desligar a comunicação suporte de comunicação com certificado [*] Adicionanda a propriedade "UseSSL: Boolean Default True", que permite desligar a comunição por HTTPs, se necessário [*] Refatoração, criando os métodos:: "AdicionarSignatureElement" e "AjustarXMLAssinado", removendo código semelhante de ACBrDFeCapicom e ACBrDFeOpenSSL -- ACBrDFeOpenSSL -- [*] Ajustes nos métodos "Assinar" e "VerificarAssinatura", para usar os novos parâmettos [*] Mensagens de erro, movidas para constantes [*] Método "VerificarAssinatura", corrigido e funcionando -- ACBrDFeCapicom -- [*] Ajustes nos métodos "Assinar" e "VerificarAssinatura", para usar os novos parâmettos [*] Criadas novas constantes com as strings padrão da assinatura [*] Ajuste nas chamadas de CoInitialize e CoUninitialize, http://www.projetoacbr.com.br/forum/topic/26901-coinitialize/ -- ACBrDFeWebService -- [*] Ajuste no método "AssinarXML" para usar os novos parâmettos de Assinatura [*] Remoção de comentários desnecessários 25/11/2015 [-] Acertos nas impressões para Fortes Report utilizarem corretamente o .lfm alguns relatórios estavam apontando somente para o .dfm gerando problemas de acentuação. 28/10/2015 -- ACBrDFeConfiguracoes -- [*] Alterado o valor padrão de False para True das propriedades: Configuracoes.Geral.Salvar e Configuracoes.Arquivos.Salvar por: Italo Jurisato Junior 22/10/2015 -- ACBrDFeCapicom -- [*] Modificando TDFeCapicom.Enviar para usar TMemoryStream ao invez de TStringStream (por: DSA) -- ACBrHTTPReqResp -- [*] Removida a inclusão do caractere #0 no final do Stream recebido. Remoção de comentários (por: DSA) 21/10/2015 -- ACBrDFeConfiguracoes -- [*] Remoção da propriedade não utilizada Geral.CodModeloDF (por: DSA) 06/10/2015 -- ACBrDFeCapicom -- [-] Ajuste para permitir o uso de TDFeCapicom, em threads diferentes, da mesma aplicação (por: Carlos Marian) http://www.projetoacbr.com.br/forum/index.php?showtopic=24934 02/10/2015 -- ACBrDFeOpenSSL -- [-] Ajuste para detectar a falha na abertura do Certificado, quando a Senha for inválida (por: DSA) 30/09/2015 -- ACBrDFeOpenSSL -- [-] Acerto para garantir que a leitura do certifica nas informações extras seja mais correto. por: Daniel Simões [-] Acerto para forçar a utilizar o CNPJ do evento ao invés do CNPJ do certificado evitando assim problemas na gravação de arquivos onde a filial utiliza o certificado da matriz. por: regys.silveira 29/09/2015 -- ACBrDFeConfiguracoes -- [*] GetPath, ajustado para que Parâmetro CNPJ considere apenas os numéricos http://www.projetoacbr.com.br/forum/index.php?showtopic=24676 -- ACBrDFeOpenSSL -- [-] Acerto na leitura do CNPJ no certificado, encontramos alguns certificados em que na informação adicional os caracteres de inicio do CNPJ são diferentes. 24/09/2015 -- ACBrDFeConfiguracoes -- (por: DSA) [*] Adicionado observações no código sobre o uso das diversas propriedades "Salvar" 23/09/2015 -- ACBrDFeSSL -- [*] Adicionado suporte a diretiva: {$DEFINE DFE_SEM_CAPICOM} Isso irá remover o suporte a CAPICOM de DFeSSL, deixando apenas o suporte a OpenSSL. 21/09/2015 -- ACBrDFeSSL -- [*] Adicionado suporte a diretiva: {$DEFINE DFE_SEM_OPENSSL} Isso irá remover o suporte a OpenSSL / XMLSec de DFeSSL. A vantagem é que a aplicação deixará de ficar dependente das DLLs do XMLSec 19/09/2015 -- ACBrDFeWebService -- (por: DSA) [*] Implementada a propriedade TDFeWebService.Mimetype, para permitir que algum WebService utilize um valor diferente de "application/soap+xml" [*] TDFeWebService.RetornoWS e TDFeWebService.RetWS modificados para retornarem o valor em UTF8, assim como recebido pelo WebService. * Nota para desenvolvedores do ACBr. Para acessar os valores de RetornoWS e RetWS com a String nativa da IDE (Ex: Unicode) utilize os campos Protected "FPRetornoWS, FPRetWS" [*] TDFeWebService.DefinirEnvelopeSoap, modificado para não inserir o cabeçalho "ENCODING_UTF8", nas IDEs Delphi XE, que usam UNICODE e não UTF8 (isso forçará a conversão para UTF8 antes do envio) 18/09/2015 -- ACBrDFeSSL -- (por: DSA) [*] Método "DFeSSL.Enviar" modificado, para permitir informar o "Mimetype". Útil para alguns WebServices que não usam "application/soap+xml".. 16/09/2015 -- ACBrDFe -- (por: DSA) [*] Disparo de Exception com msg clara quando diretório configurado para os Schemas não contiver nenhum Schema [*] Disparo de Exception quando calculo do Arquivo de Schema retornar String vazia [-] Correção na gravação dos XMLs de Pedido, Retorno e Envelopes para sempre usarem UTF8 como Encoding. Este problema somente afetava Delphi com suporte a Unicode (XE) (Por: DSA e Carlos CANTU) 11/09/2015 [+] Adicionada a propriedade CertTipo para retornar se o certificado é A1 ou A3 por: regys.silveira /Daniel 09/09/2015 [-] ACBrMDFeDAEventoRLRetrato.dfm e ACBrMDFeDAMDFeRLRetrato.dfm Conversão para ANSI, não estava imprimindo corretamente no Delphi 7 http://www.projetoacbr.com.br/forum/topic/24136-impressão-do-damdfe-e-eventos/ 09/09/2015 [*] Alterado a condição que defini se vai salvar o não os XMLs de envio/retorno, agora esses arquivos só serão gravado caso a propriedade Salvar de Geral for True. por: Italo Jurisato Junior 08/09/2015 -- ACBrDFeConfiguracoes -- [*] Ajuste para que TDFeSSL.SSLLib default seja por padrão, libCapicomDelphiSoap, no Delphi (por: DSA) 02/09/2015 [-] remoção de metodo não usado [-] alteração para adicionar o path delimiter ao PathPDF por: regys.silveira / Daniel Simões 02/09/2015 -- ACBrDFeCapicomDelphiSoap -- (por: Augusto Fontana) [-] Correção para difinição de URL e SoapAction http://www.projetoacbr.com.br/forum/index.php?showtopic=24107 26/08/2015 (por: DSA) -- ACBrDFeConfiguracoes, ACBrDFeSSL -- [-] Correção para que número do Certificado seja igual em TDFeSSL e TCertificadosConf http://www.projetoacbr.com.br/forum/index.php?showtopic=23128 18/08/2015 (por: DSA) -- ACBrDFeCapicom -- [+] Implementado o uso de Certificados A1 por Arquivo PFX, Sem necessitar da instalação do Certificado. Exemplo: ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := 'c:\temp\CertificadoA1.pfx'; ACBrNFe1.Configuracoes.Certificados.Senha := '1234'; [*] Refatoração de código na atribuição de Senha de Certificados A3 [*] Revisão de rotinas para liberação de Recursos alocados [-] Correção de "Erro no suporte a canais seguros" a partir da segunda requisicao. o que ocorre quando o mesmo Certificado A3 é atribuido a várias instâncias do componente, e com a atribuição automática de Senha (por: Marciano Bandeira) http://www.projetoacbr.com.br/forum/index.php?showtopic=23668 [*] Método "Validar", mais informações sobre o Erro quando falhar ao Ler um XML. -- ACBrHTTPReqResp -- [*] Revisão de rotinas para liberação de Recursos alocados 13/08/2015 (por: DSA) -- ACBrDFe -- [*] Remoção de método não utilizado "GetNomeArquivoServicos" [*] Ajuste para TWebServicesConf.LerParamsIniServicos procurar por "ACBrXXXServicos.ini" na mesma pasta do .EXE, se o mesmo não estiver definido em Configuracoes.Arquivos.IniServicos 10/08/2015 (por: DSA) -- ACBrDFeCapicom -- [-] Tentativa de correção de falha de atribuição de Senha em Certificado A3 http://www.projetoacbr.com.br/forum/index.php?showtopic=23508 07/08/2015 (por: DSA) -- ACBrDFeCapicom -- [-] Tentativa de correção de A.V. http://www.projetoacbr.com.br/forum/topic/23441-migrando-para-o-trunk2/ 06/08/2015 (por: DSA) -- ACBrDFeOpenSSL -- [*] Modificada a maneira de carregar as DLLs de XMLSec, para evitar a dependencia das DLL sem o uso das rotinas 06/08/2015 (por: DSA) -- ACBrDFe, ACBrDFeConfiguracoes -- [*] Remoção da propriedade "UnloadSSLLib" -- ACBrDFeSSL, ACBrDFeCapicom, ACBrDFeOpenSSL -- [*] Remoção da propriedade "Inicializado, UnloadSSLLib" [*] Remoção dos métodos: "Inicializar, DesInicializar". A Inicialização agora é feita em initialization e finalization da Unit, para evitar problemas relacionados a Init e Shutdown das DLLs de SSL a cada Create e Destroy de TACBrDFeSSL, além de obter melhor desempenho. 04/08/2015 -- ACBrDFeOpenSSL -- (por: DSA) [-] Correção para detectação de CNPJ, para Certificados que não tem o CNPJ no Subjectname. Implementado método para detectar o CNPJ através das Extensões do Certificado -- OpenSSLExt -- [*] Efetuado merge com Openssl.pas de FPC -- ACBrDFeCapicom -- (por: DSA) [-] Correção para exibição de erro de TDFeCapicom.Executar com acentos