ged/api-laravel

Laravel Package para integração com GED API — Assinatura Digital ICP-Brasil

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/ged/api-laravel

v1.1.0 2025-10-09 21:07 UTC

This package is not auto-updated.

Last update: 2025-10-10 00:23:56 UTC


README

Laravel Package oficial para integração com o GED.API.BR — Sistema de Assinatura Digital ICP-Brasil.

🚀 Instalação

composer require ged/api-laravel

O Service Provider será registrado automaticamente.

⚙️ Configuração

Publique o arquivo de configuração:

php artisan vendor:publish --tag=ged-api-config

Configure as variáveis de ambiente no .env:

GED_API_BASE_URL=https://ged.api.br/api/
GED_API_KEY=pk_live_seu_token_aqui
GED_API_POLICY_OID=2.16.76.1.7.1.11.1.1
GED_API_POLICY_URI=https://iti.gov.br/politica/pa.pdf
GED_API_POLICY_HASH=a1b2c3d4...

🎯 Uso Básico

Usando a Facade

use Ged\ApiLaravel\Facades\GedApi;

// Inicia assinatura
$start = GedApi::startSignature(
    base64_encode(file_get_contents('contrato.pdf')),
    config('ged-api.default_policy_oid')
);

// Assina localmente
openssl_pkcs12_read(file_get_contents('certificado.pfx'), $certs, 'senha');
openssl_sign(
    base64_decode($start['signedAttrsDerBase64']), 
    $signature, 
    $certs['pkey'], 
    OPENSSL_ALGO_SHA256
);

// Finaliza assinatura
$complete = GedApi::completeSignature(
    $start['pdfId'],
    base64_encode($signature),
    base64_encode($certs['cert'])
);

// Salva PDF assinado
Storage::put('assinado.pdf', base64_decode($complete['signedPdfBase64']));

Usando Dependency Injection

use Ged\ApiClient\GedApiClient;

class DocumentController extends Controller
{
    public function __construct(
        protected GedApiClient $gedApi
    ) {}

    public function sign(Request $request)
    {
        $start = $this->gedApi->startSignature(
            $request->input('pdf_base64'),
            config('ged-api.default_policy_oid')
        );

        return response()->json($start);
    }
}

📋 Métodos Disponíveis

Todos os métodos do ged/api-client estão disponíveis através da Facade:

GedApi::startSignature(string $pdfBase64, string $policyOid): array

Inicia o processo de assinatura

GedApi::completeSignature(string $pdfId, string $signatureBase64, string $certBase64): array

Finaliza a assinatura

GedApi::verifySignature(string $pdfBase64): array

Verifica PDF assinado

🔐 Políticas ICP-Brasil

Configure no .env:

Política OID ENV
AD-RB 2.16.76.1.7.1.11.1.1 GED_API_POLICY_OID=2.16.76.1.7.1.11.1.1
AD-RT 2.16.76.1.7.1.11.1.2 GED_API_POLICY_OID=2.16.76.1.7.1.11.1.2
AD-RC 2.16.76.1.7.1.11.1.3 GED_API_POLICY_OID=2.16.76.1.7.1.11.1.3

🛠️ Requisitos

  • PHP >= 8.1
  • Laravel >= 10.0
  • ext-openssl

📄 Licença

MIT License - veja LICENSE para detalhes.

🤝 Suporte

Desenvolvido pela equipe do GED.API.BR

📄 Licença

MIT