+/* Samve as above but does not allocate any memory. The encoded data is
+ returned into `dst' and it's length to the `ret_len'. */
+
+void silc_mp_mp2bin_noalloc(SilcMPInt *val, unsigned char *dst,
+ SilcUInt32 dst_len)
+{
+ int i;
+ SilcUInt32 size = dst_len;
+ SilcMPInt tmp;
+
+ silc_mp_init(&tmp);
+ silc_mp_set(&tmp, val);
+
+ for (i = size; i > 0; i--) {
+ dst[i - 1] = (unsigned char)(silc_mp_get_ui(&tmp) & 0xff);
+ silc_mp_div_2exp(&tmp, &tmp, 8);
+ }
+
+ silc_mp_uninit(&tmp);
+}
+