summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2003-01-27 23:14:59 +0100
committerNiels Möller <nisse@lysator.liu.se>2003-01-27 23:14:59 +0100
commit42721f776e9b6a62ace78a424aea8d01e0643598 (patch)
treefab6049eb409d83b09ba5275f5066e9110e51359
parentd41a05cbdf72061237d132fa2cc7fad5b0417ee8 (diff)
downloadnettle-42721f776e9b6a62ace78a424aea8d01e0643598.tar.gz
(dsa_signature_from_sexp): New function.
Rev: src/nettle/dsa.h:1.6 Rev: src/nettle/sexp2dsa.c:1.3
-rw-r--r--dsa.h4
-rw-r--r--sexp2dsa.c16
2 files changed, 20 insertions, 0 deletions
diff --git a/dsa.h b/dsa.h
index beb15dda..5214c36a 100644
--- a/dsa.h
+++ b/dsa.h
@@ -154,6 +154,10 @@ dsa_generate_keypair(struct dsa_public_key *pub,
struct sexp_iterator;
int
+dsa_signature_from_sexp(struct dsa_signature *rs,
+ struct sexp_iterator *i);
+
+int
dsa_keypair_from_sexp_alist(struct dsa_public_key *pub,
struct dsa_private_key *priv,
unsigned limit,
diff --git a/sexp2dsa.c b/sexp2dsa.c
index 357b3cf8..4d99cf4a 100644
--- a/sexp2dsa.c
+++ b/sexp2dsa.c
@@ -87,4 +87,20 @@ dsa_keypair_from_sexp(struct dsa_public_key *pub,
&& dsa_keypair_from_sexp_alist(pub, priv, limit, &i);
}
+int
+dsa_signature_from_sexp(struct dsa_signature *rs,
+ struct sexp_iterator *i)
+{
+ static const uint8_t *names[2] = { "r", "s" };
+ struct sexp_iterator values[2];
+
+ if (!sexp_iterator_assoc(i, 2, names, values))
+ return 0;
+
+ GET(rs->r, 160, &values[0]);
+ GET(rs->s, 160, &values[1]);
+
+ return 1;
+}
+
#endif /* WITH_PUBLIC_KEY */