/* -*-c-*-
*
- * $Id: buf.h,v 1.1 2003/10/11 21:02:33 mdw Exp $
+ * $Id: buf.h,v 1.4 2004/04/08 01:36:15 mdw Exp $
+ *
+ * Reading and writing packet buffers
*
- * [Reading and writing packet buffers *
* (c) 2001 Straylight/Edgeware
*/
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: buf.h,v $
- * Revision 1.1 2003/10/11 21:02:33 mdw
- * Import buf stuff from tripe.
- *
- * Revision 1.1 2001/06/19 22:09:54 mdw
- * Expose interface, for use in the proxy.
- *
- */
-
-#ifndef BUF_H
-#define BUF_H
+#ifndef CATACOMB_BUF_H
+#define CATACOMB_BUF_H
#ifdef __cplusplus
extern "C" {
#include <mLib/bits.h>
-#include <catacomb/mp.h>
+#ifndef CATACOMB_MP_H
+# include "mp.h"
+#endif
+
+#ifndef CATACOMB_EC_H
+# include "ec.h"
+#endif
/*----- Data structures ---------------------------------------------------*/
extern int buf_putmp(buf */*b*/, mp */*m*/);
+/* --- @buf_getec@ --- *
+ *
+ * Arguments: @buf *b@ = pointer to a buffer block
+ * @ec *p@ = where to put the point
+ *
+ * Returns: Zero if it worked, nonzero if it failed.
+ *
+ * Use: Gets a multiprecision integer from a buffer. The point must
+ * be initialized.
+ */
+
+extern int buf_getec(buf */*b*/, ec */*p*/);
+
+/* --- @buf_putec@ --- *
+ *
+ * Arguments: @buf *b@ = pointer to a buffer block
+ * @ec *p@ = an elliptic curve point
+ *
+ * Returns: Zero if it worked, nonzero if there wasn't enough space.
+ *
+ * Use: Puts an elliptic curve point to a buffer.
+ */
+
+extern int buf_putec(buf */*b*/, ec */*p*/);
+
/*----- That's all, folks -------------------------------------------------*/
#ifdef __cplusplus