Init sk if loaded from service blob to be on the curve
diff --git a/src/feature/hs/hs_service.c b/src/feature/hs/hs_service.c
index 81b37eab4..300fedc4f 100644
--- a/src/feature/hs/hs_service.c
+++ b/src/feature/hs/hs_service.c
@@ -3548,6 +3548,12 @@ hs_service_add_ephemeral(ed25519_secret_key_t *sk, smartlist_t *ports,
/* Handle the keys. */
memcpy(&service->keys.identity_sk, sk, sizeof(service->keys.identity_sk));
+
+ /* QAD make sure the scalar is on the curve since ed25519_donna_pubkey will probably return 0 */
+ service->keys.identity_sk[0] &= 248;
+ service->keys.identity_sk[31] &= 127;
+ service->keys.identity_sk[31] |= 64;
+
if (ed25519_public_key_generate(&service->keys.identity_pk,
&service->keys.identity_sk) < 0) {
log_warn(LD_CONFIG, "Unable to generate ed25519 public key"
**Trac**:
**Username**: saibato
issue