Current section
Files
Jump to
Current section
Files
lib/cms_signer.ex
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