From f47bb4aaed8896a0f20b5f943228407dcc77282d Mon Sep 17 00:00:00 2001 From: 5HT Date: Wed, 2 Aug 2023 18:58:05 +0300 Subject: [PATCH] signature is {r,s} --- lib/CAdES.ex | 3 ++- lib/ecdsa.ex | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/CAdES.ex b/lib/CAdES.ex index 6658004..548ddb6 100644 --- a/lib/CAdES.ex +++ b/lib/CAdES.ex @@ -24,7 +24,8 @@ defmodule CA.CAdES do def readSignature() do name = "priv/CAdES/CAdES-X-CA.p7s" {:ok, bin} = :file.read_file name - :io.format '~p~n', [parseSignData(bin)] + ber = parseSignData(bin) + ber end def extract(code, person) do diff --git a/lib/ecdsa.ex b/lib/ecdsa.ex index 25b9a69..3ee62d0 100644 --- a/lib/ecdsa.ex +++ b/lib/ecdsa.ex @@ -19,6 +19,12 @@ defmodule CA.ECDSA do [point, :crypto.ec_curve(:pubkey_cert_records.namedCurves(oid))]) end + def signature(name) do + {:ok, sig} = :file.read_file name + {{_,[{_,r},{_,s}]},""} = :asn1rt_nif.decode_ber_tlv sig + {r,s} + end + def sign(file, priv) do {:ok, msg} = :file.read_file file {:ok, key} = :file.read_file priv