Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

ccue2003

AT - SAFT - Facturacao - Php

Mensagens Recomendadas

ccue2003    0
ccue2003

Bom dia

Embora já existe um forum com duvidas sobre o saft, a ideia deste forum é resumos, ou seja, apresentar já o codigo final que funcione:

Assim o meu contributo:

» Para quem pode executar no servidor linhas de comando

# criacao do ficheiro formato - sha1
$comando="openssl dgst -sha1 -sign " . $hash_privada . " -out " . $ficheiro_assinado . " " . $ficheiro_temp;
exec($comando);

# criacao do ficheiro formato - base 64
$comando="openssl enc -base64 -in " . $ficheiro_assinado . " -out " . $ficheiro_encriptado . " -A";
exec($comando);

Cumprimentos

Editado por Rui Carlos
GeSHi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ccue2003    0
ccue2003

Boa tarde

E já que finalmente consegui

» Para quem não pode executar no servidor linhas de comando

# PHP - Script
$fp=fopen($hash_privada,"r"); $priv_key=fread($fp,filesize($hash_privada)); fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
openssl_sign($assinar,$signature,$pkeyid,"sha1");
return base64_encode($signature);

Agradeço a especial atenção que o colega Pepe71 teve e que ajudou, ás vezes temos que ir novamente ao inicio para avançar.

Cumprimentos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ricardo Augusto    0
Ricardo Augusto

E obtens o mesmo resultado que na shell?

Isto é, o problema que estou a ter é que o hash (com as mesmas keys e os mesmos dados claro) feita pela shell com o openssl directo obtenho uma coisa, quando o faço pelo php:

function set_signature($keycert,$data) {
       $privkey = file_get_contents($keycert);
       openssl_sign($data, $crypted, $privkey,OPENSSL_ALGO_SHA1);
       return base64_encode($crypted);
}

obtenho outra...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.