defmodule BrySdkElixir.CmsSigner do @moduledoc false alias BrySdkElixir.Request def get_endpoint() do case Application.get_env(:bry_sdk_elixir, :env) do # :dev -> "https://kms.dev.bry.com.br/kms/rest/v1" # :homologacao -> "https://kms.hom.bry.com.br/kms/rest/v1" _ -> "https://hub2.bry.com.br/fw/v1" end end def assinaturas(kms_type, data) do Request.post("#{get_endpoint()}/cms/kms/assinaturas", data, [{"kms_type",kms_type}]) end def verify_cms(data) do Request.post("https://fw2.bry.com.br/api/cms-verification-service/v1/signatures/verify", data, [{"Content-Type","multipart/form-data"}]) end def verify_pdf(data) do Request.post("#{get_endpoint()}/pdf-verification-service/v1/signatures/verify", data, [{"Content-Type","multipart/form-data"}]) end def test() do filename = "414103-unsigned.pdf" pdf = "/home/renee/Downloads/#{filename}" |> File.read!() |> Base.encode64() data = %{ kms_data: %{ pin: "Q2VydFNpZ25NclRlc3QxMjMh", uuid_cert: "9592e877-f58b-4171-bac5-6c8096b89765" }, formatoDadosEntrada: "Base64", algoritmoHash: "SHA512", padrao: "CADES", perfil: "ADRA", formatoAssinatura: "ATTACHED", hashes: [ pdf ] } with {:ok, response} <- assinaturas("BRYKMS", data) do raw = response.assinaturas |> List.first() File.write!("#{filename}.p7s", Base.decode64!(raw), [:binary]) end end def verify() do filename = "414103-unsigned.pdf.p7s" end end