/* -*-c-*-
*
- * $Id: field.h,v 1.7 2004/03/27 00:04:46 mdw Exp $
+ * $Id: field.h,v 1.8 2004/03/27 17:54:11 mdw Exp $
*
* Definitions for field arithmetic
*
/*----- Revision history --------------------------------------------------*
*
* $Log: field.h,v $
+ * Revision 1.8 2004/03/27 17:54:11 mdw
+ * Standard curves and curve checking.
+ *
* Revision 1.7 2004/03/27 00:04:46 mdw
* Implement efficient reduction for pleasant-looking primes.
*
# include "mp.h"
#endif
+#ifndef CATACOMB_QDPARSE_H
+# include "qdparse.h"
+#endif
+
/*----- Data structures ---------------------------------------------------*/
typedef struct field {
const struct field_ops *ops; /* Field operations */
mp *zero, *one; /* Identities in the field */
+ mp *m; /* Modulus (prime and binary) */
+ unsigned long nbits; /* Length of field element in bits */
+ size_t noctets; /* Length of element in octets */
} field;
enum {
extern field *field_binpoly(mp */*p*/);
+/* --- @field_parse@ --- *
+ *
+ * Arguments: @qd_parse *qd@ = parser context
+ *
+ * Returns: Field pointer if OK, or null.
+ *
+ * Use: Parses a field description, which has the form
+ *
+ * * `prime', `niceprime' or `binpoly'
+ * * an optional `:'
+ * * the field modulus
+ */
+
+extern field *field_parse(qd_parse */*qd*/);
+
/*----- That's all, folks -------------------------------------------------*/
#ifdef __cplusplus