Jump to content
Fivewin Brasil

Como gerar um hb_sha256


mkyx

Recommended Posts

Boa noite fivewinner,

Alguém sabe como gerar a codificação hb_sha256, quando ao compilar o programa, aparece a mensagem de função inexistente?

uso fivewin com o compilador comercial xharbour

e tbm não consegui achar a lib, dessa função

se alguem puder ajudar, será muito bem vindo

essa necessidade é para codificar e assinar os arquivos json, de boletos, para enviar para o banco bradesco, via webservice.

Ainda não testei o envio ao banco, até agora, só gerei o arquivos json, e travou na assinatura.

Obrigado a todos.

 

Link to comment
Share on other sites

Eu criei um PHP e o coloquei em um FTP, e envio o JSON para este PHP pelo método GET. Este PHP recebe o JSON, processa e retorna o que eu devo enviar para o BRADESCO já em "pkcs7" que é o JSON assinado em base64, que é o padrão que o BRADESCO necessita. O Certificado digital pode ser qualquer um no formato ".pfx".

Segue o PHP

<?php

    function ApagaDir($dir) {
      if($objs = glob($dir."/*")){
        foreach($objs as $obj) {
          is_dir($obj)? ApagaDir($obj) : unlink($obj);
        }
      }
    } 
    $nome_da_pasta="../public_html/data/tmp"; // PASTA PARA ARQUIVO TEMPORARIO
    ApagaDir($nome_da_pasta); 

	$pfx = "";  // lOCAL E NOME DO CERTIFICADO NO FTP EX: CERTS/MEUCERTIFICADO.PFX
	$certPassword = ""; // SENHA DO CERTIFICADO
    $json_str = $_GET['json_str'];
    $certificado_pfx = file_get_contents($pfx);
	
    if (!openssl_pkcs12_read($certificado_pfx, $result, $certPassword)) {
        throw new Exception('Não foi possível ler o certificado .pfx');
    }
	
    $path = sprintf('%s%sdata%stmp%s', realpath('.'), DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR);
    if (@mkdir($path, 0777, true) && !is_dir($path)) {
        throw new Exception('Falha ao criar diretórios. Entre em contato com o administrador');
    }

	$jsonFile   = $path . uniqid('jsonFile', true);
    $signedFile = $path . uniqid('signedFile', true);
	
	file_put_contents($jsonFile, $json_str);

    $certKey = openssl_x509_read($result['cert']);
    $privKey = openssl_pkey_get_private($result['pkey'], $certPassword);
	
	openssl_pkcs7_sign( $jsonFile, $signedFile, $certKey, $privKey, array(), PKCS7_BINARY | PKCS7_TEXT );
	
	$signature = file_get_contents($signedFile);
	$parts = preg_split("#\n\s*\n#Uis", $signature);
    $mensagem_assinada_base64 = $parts[1];
	
	print_r($mensagem_assinada_base64);
	
?>

 

Link to comment
Share on other sites

  • 4 weeks later...

Olá,

Que utilitário você usou para compilar? de terceiro? (sempre prefira o oficial)
Esta função é nativa. Comece testando o básico, compile sem script xHarbour.com, veja na imagem.

[],
Consultorias/Orçamentos:
Delphi, x/Harbour, FastReport, Xailer(IDE/RAD)
Fivewin-VxH-Minigui/HMG-Hwgui

Em 13/01/2024 at 19:59, mkyx disse:

Alguém sabe como gerar a codificação hb_sha256, quando ao compilar o programa, aparece a mensagem de função inexistente?

uso fivewin com o compilador comercial xharbour

e tbm não consegui achar a lib, dessa função

se alguem puder ajudar, será muito bem vindo

essa necessidade é para codificar e assinar os arquivos json, de boletos, para enviar para o banco bradesco, via webservice.

Ainda não testei o envio ao banco, até agora, só gerei o arquivos json, e travou na assinatura

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...