X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/0bcb8184cfce875a4dde57621139dd44c433f3a5..a1a6042e24c9873aa6abf668bcb68d39d0eb4190:/f25519.h diff --git a/f25519.h b/f25519.h index 8450748..c0ce117 100644 --- a/f25519.h +++ b/f25519.h @@ -1,42 +1,3 @@ -/* - * f25519.h: arithmetic modulo 2^255 - 19 - */ -/* - * This file is Free Software. It has been modified to as part of its - * incorporation into secnet. - * - * Copyright 2017 Mark Wooding - * - * You may redistribute this file and/or modify it under the terms of - * the permissive licence shown below. - * - * You may redistribute secnet as a whole and/or modify it under the - * terms of the GNU General Public License as published by the Free - * Software Foundation; either version 3, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see - * https://www.gnu.org/licenses/gpl.html. - */ -/* - * Imported from Catacomb, and lightly modified for Secnet (2017-04-30): - * - * * Use `fake-mLib-bits.h' in place of the real . - * - * * Remove the 16/32-bit implementation, since C99 always has 64-bit - * arithmetic. - * - * * Disable some of the operations which aren't needed for X25519. - * (They're used for Ed25519, which we don't need.) - * - * The file's original comment headers are preserved below. - */ /* -*-c-*- * * Arithmetic modulo 2^255 - 19 @@ -46,7 +7,26 @@ /*----- Licensing notice --------------------------------------------------* * - * This file is part of Catacomb. + * This file is part of secnet. + * See README for full list of copyright holders. + * + * secnet is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version d of the License, or + * (at your option) any later version. + * + * secnet is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * version 3 along with secnet; if not, see + * https://www.gnu.org/licenses/gpl.html. + * + * This file was originally part of Catacomb, but has been automatically + * modified for incorporation into secnet: see `import-catacomb-crypto' + * for details. * * Catacomb is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -85,9 +65,9 @@ typedef union { int32 p26[10]; } f25519; -/*----- Functions provided ------------------------------------------------*/ + typedef int32 f25519_piece; -#define F25519_TRIM_X25519 +/*----- Functions provided ------------------------------------------------*/ /* --- @f25519_set@ --- * * @@ -140,8 +120,6 @@ extern void f25519_load(f25519 */*z*/, const octet /*xv*/[32]); extern void f25519_store(octet /*zv*/[32], const f25519 */*x*/); -#ifndef F25519_TRIM_X25519 - /* --- @f25519_pick2@ --- * * * Arguments: @f25519 *z@ = where to put the result (may alias @x@ or @y@) @@ -175,8 +153,6 @@ extern void f25519_pick2(f25519 */*z*/, const f25519 */*x*/, extern void f25519_pickn(f25519 */*z*/, const f25519 */*v*/, size_t /*n*/, size_t /*i*/); -#endif - /* --- @f25519_condswap@ --- * * * Arguments: @f25519 *x, *y@ = two operands @@ -217,8 +193,6 @@ extern void f25519_add(f25519 */*z*/, extern void f25519_sub(f25519 */*z*/, const f25519 */*x*/, const f25519 */*y*/); -#ifndef F25519_TRIM_X25519 - /* --- @f25519_neg@ --- * * * Arguments: @f25519 *z@ = where to put the result (may alias @x@) @@ -246,8 +220,6 @@ extern void f25519_neg(f25519 */*z*/, const f25519 */*x*/); extern void f25519_condneg(f25519 */*z*/, const f25519 */*x*/, uint32 /*m*/); -#endif - /* --- @f25519_mulconst@ --- * * * Arguments: @f25519 *z@ = where to put the result (may alias @x@) @@ -300,8 +272,6 @@ extern void f25519_sqr(f25519 */*z*/, const f25519 */*x*/); extern void f25519_inv(f25519 */*z*/, const f25519 */*x*/); -#ifndef F25519_TRIM_X25519 - /* --- @f25519_quosqrt@ --- * * * Arguments: @f25519 *z@ = where to put the result (may alias @x@ or @y@) @@ -318,8 +288,6 @@ extern void f25519_inv(f25519 */*z*/, const f25519 */*x*/); extern int f25519_quosqrt(f25519 */*z*/, const f25519 */*x*/, const f25519 */*y*/); -#endif - /*----- That's all, folks -------------------------------------------------*/ #ifdef __cplusplus