Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

clube mobile


Cursos grátis para toda base ACBr
+ Promoção Clube Mobile para o ACBr Pro

Saiba mais

adriano santos

click.png

click.png

click.png

click.png

click.png

click.png

carloscaloca

Membros
  • Content Count

    11
  • Joined

  • Last visited

Community Reputation

3 Neutral

About carloscaloca

  • Rank
    Novato
  1. Eu q tenho que agradecer ao vocês pelo execente trabalho que desenvolvem. Vou testar.
  2. Bom dia, descobri que quando o lazarus inicia o array mHashBuffer deveria ser preenchido #0, fiz uma pequena alteração e, pra mim, funcionou bem. function TDFeWinCrypt.CalcHash(const AStream: TStream; const Digest: TSSLDgst; const Assina: Boolean): AnsiString; var mCryptProvider, mCryptProviderCert: HCRYPTPROV; mHash, aHashType: HCRYPTHASH; hRSAKey, hSessKey, hExpKey: HCRYPTKEY; I: Integer; mTotal: Int64; mBytesLen, mRead, dwKeySpec, WinErro: DWORD; Memory: Pointer; mHashBuffer: array [0..1023] of AnsiChar; // 1024 - Tamanho máximo do maior Ha
  3. sim, verifiquei isso, porem, quando ele vai para a rotina mais abaixo, o valor mBytesLen está errado no lazarus, ele deveria ser 256 mas está com 1024. amanhã farei outro teste e informo.
  4. Depurei ao mesmo tempo com o delphi e o lazarus, a variavel é passada com 1024bytes, quando volta, no delphi ela tem Length(mHashBuffer) = 256bytes, testei varias vezes e no lazarus 1024. No delphi apartir da posição 256 vem cheio de #0 e no lazarus ficam outros bytes. A função que busca a chave é a mesma, mas talves quando o Lazarus aponte pra o endereço da variavel coloque sujeira, como é feita a reversão, o lazarus não pega o valor correto da chave, eu acho.
  5. fiz a alteração mas gerou um erro, não achou o numero do certificado. Fiz outra depuração e achei um erro no seguinte código: ACBrDFeWinCrypt 1229 mBytesLen := Length(mHashBuffer); // aqui, no delphi o mHashBuffer tem tamanho de 256 e no Lazarus 1024 if Assina then begin if CryptSignHash(mHash, dwKeySpec, Nil, 0, @mHashBuffer, mBytesLen ) then begin // MS CryptoAPI retorna assinatura em "Little Endian bit string", invertendo... Result := ''; while (mBytesLen > 256) and (mHashBuffer[m
  6. O que fiz: Rodei o ACBrNFe_Exemplo no delphi e lazarus fui depurando, passo a passo. Até a linha 862, como relatado, estava tudo igual. Apartir daí gerou o erro dos AAAAA.
  7. sim estão atualizados na mesma maquina. Só que no delphi não dá nada.
  8. Sim, consegue consultar status. Parece algum problema na chave: o primeiro em delphi e o outro em lazarus. 43200814620101000170650010000000151740249251-nfe.xml 43200814620101000170650010000000151040520823-nfe.xml Eu achei o seguinte código em ACBrDFeWinCrypt linha 861: {$IfDef DELPHI2009_UP} StoreProvider := CERT_STORE_PROV_SYSTEM_W; {$ELSE} StoreProvider := CERT_STORE_PROV_SYSTEM_A; {$ENDIF}; FpStore := CertOpenStore( StoreProvider, 0, 0, StoreFlag or CERT_STORE_READONLY_FLAG, LPCTSTR( FpDFeSSL.StoreName ) );
  9. Bom dia, estou testando o acbrnfe_exemplo com meu certificado RemoteId. Quando rodo no Delphi, gera as chaves certinho, mas quando rodo no Lazarus a chave fica diferente e o sefaz/rs retorna o erro 297. Podem me dar uma ajuda?? Obrigado
×
×
  • Create New...