From 6619623d75b8ace7f70f64dc683c5e9193aa6aea Mon Sep 17 00:00:00 2001 From: Benedict Date: Fri, 9 Dec 2016 18:35:45 +0100 Subject: set5: task37: completed --- lib/lib5.c | 14 ++++++++++++++ lib/lib5.h | 1 + 2 files changed, 15 insertions(+) (limited to 'lib') diff --git a/lib/lib5.c b/lib/lib5.c index f637469..04c7806 100644 --- a/lib/lib5.c +++ b/lib/lib5.c @@ -265,6 +265,20 @@ void srp_compute_uH(struct srp_context *srpc) BN_bin2bn(uH, 20, srpc->u); } +void srp_client_s_0_prepare_k(struct srp_context *srpc) +{ + SHA1Context sha1; + BIGNUM *S = BN_new(); + BN_zero(S); + + char *s_str = malloc(BN_num_bytes(S)); + BN_bn2bin(S, s_str); + SHA1Reset(&sha1); + SHA1Input(&sha1, s_str, BN_num_bytes(S)); + SHA1Result(&sha1); + memcpy(srpc->client_K, &(sha1.Message_Digest), 20); +} + void srp_client_prepare_k(struct srp_context *srpc, char *password) { SHA1Context sha1; diff --git a/lib/lib5.h b/lib/lib5.h index 4aaa7d6..bf71802 100644 --- a/lib/lib5.h +++ b/lib/lib5.h @@ -116,4 +116,5 @@ void srp_compute_uH(struct srp_context *srpc); void srp_client_prepare_k(struct srp_context *srpc, char *password); void srp_server_prepare_k(struct srp_context *srpc); void srp_context_init(struct srp_context *s); +void srp_client_s_0_prepare_k(struct srp_context *srpc); #endif -- cgit v1.2.3-70-g09d2