-static void dh_makeshared(void *sst, uint8_t *secret, uint32_t secretlen,
- string_t rempublic, uint8_t *sharedsecret,
- uint32_t buflen)
+static void write_mpbin_anomalous(MP_INT *a, uint8_t *buffer,
+ int32_t buflen)
+ /* If the BN is smaller than buflen, pads it *at the wrong end* */
+{
+ char *hb = write_mpstring(a);
+ int32_t len;
+ hex_decode(buffer, buflen, &len, hb, True);
+ if (len<buflen)
+ memset(buffer+len,0,buflen-len);
+ free(hb);
+}
+
+static dh_makeshared_fn dh_makeshared;
+static void dh_makeshared(void *sst, uint8_t *secret, int32_t secretlen,
+ cstring_t rempublic, uint8_t *sharedsecret,
+ int32_t buflen)