+#define GET_WORD(cp) ((SilcUInt32)(SilcUInt8)(cp)[0]) << 24 \
+ | ((SilcUInt32)(SilcUInt8)(cp)[1] << 16) \
+ | ((SilcUInt32)(SilcUInt8)(cp)[2] << 8) \
+ | ((SilcUInt32)(SilcUInt8)(cp)[3])
+
+/* Returns eight 8-bit bytes, most significant bytes first. */
+#define SILC_GET64_MSB(l, cp) \
+ (l) = ((((SilcUInt64)GET_WORD((cp))) << 32) | \
+ ((SilcUInt64)GET_WORD((cp) + 4)))
+#define SILC_PUT64_MSB(l, cp) \
+do { \
+ SILC_PUT32_MSB((SilcUInt32)((SilcUInt64)(l) >> 32), (cp)); \
+ SILC_PUT32_MSB((SilcUInt32)(l), (cp) + 4); \
+} while(0)
+
+