Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
N
nettle
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Dmitry Baryshkov
nettle
Commits
2d796c6e
Commit
2d796c6e
authored
12 years ago
by
Niels Möller
Browse files
Options
Downloads
Patches
Plain Diff
Implemented ecc_point_mul and ecc_point_mul_g.
parent
c44b8d2e
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
ChangeLog
+6
-0
6 additions, 0 deletions
ChangeLog
Makefile.in
+1
-1
1 addition, 1 deletion
Makefile.in
ecc-point-mul-g.c
+49
-0
49 additions, 0 deletions
ecc-point-mul-g.c
ecc-point-mul.c
+49
-0
49 additions, 0 deletions
ecc-point-mul.c
ecc.h
+6
-0
6 additions, 0 deletions
ecc.h
with
111 additions
and
1 deletion
ChangeLog
+
6
−
0
View file @
2d796c6e
2013-04-03 Niels Möller <nisse@lysator.liu.se>
2013-04-03 Niels Möller <nisse@lysator.liu.se>
* ecc-point-mul-g.c (ecc_point_mul_g): New file and function.
* ecc-point-mul.c (ecc_point_mul): New file and function.
* ecc.h: Updated declarations and name mangling.
* Makefile.in (hogweed_SOURCES): Added ecc-point-mul.c and
ecc-point-mul-g.c.
* testsuite/salsa20-test.c (test_main): Tests for salsa20r12,
* testsuite/salsa20-test.c (test_main): Tests for salsa20r12,
contributed by Nikos Mavrogiannopoulos.
contributed by Nikos Mavrogiannopoulos.
...
...
This diff is collapsed.
Click to expand it.
Makefile.in
+
1
−
1
View file @
2d796c6e
...
@@ -133,7 +133,7 @@ hogweed_SOURCES = sexp.c sexp-format.c \
...
@@ -133,7 +133,7 @@ hogweed_SOURCES = sexp.c sexp-format.c \
ecc-size.c ecc-j-to-a.c ecc-a-to-j.c
\
ecc-size.c ecc-j-to-a.c ecc-a-to-j.c
\
ecc-dup-jj.c ecc-add-jja.c ecc-add-jjj.c
\
ecc-dup-jj.c ecc-add-jja.c ecc-add-jjj.c
\
ecc-mul-g.c ecc-mul-a.c ecc-hash.c ecc-random.c
\
ecc-mul-g.c ecc-mul-a.c ecc-hash.c ecc-random.c
\
ecc-point.c ecc-scalar.c
\
ecc-point.c ecc-scalar.c
ecc-point-mul.c ecc-point-mul-g.c
\
ecc-ecdsa-sign.c ecdsa-sign.c
\
ecc-ecdsa-sign.c ecdsa-sign.c
\
ecc-ecdsa-verify.c ecdsa-verify.c ecdsa-keygen.c
ecc-ecdsa-verify.c ecdsa-verify.c ecdsa-keygen.c
...
...
This diff is collapsed.
Click to expand it.
ecc-point-mul-g.c
0 → 100644
+
49
−
0
View file @
2d796c6e
/* ecc-point-mul-g.c */
/* nettle, low-level cryptographics library
*
* Copyright (C) 2013 Niels Möller
*
* The nettle library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* The nettle library 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the nettle library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02111-1301, USA.
*/
/* Development of Nettle's ECC support was funded by Internetfonden. */
#if HAVE_CONFIG_H
# include "config.h"
#endif
#include
<assert.h>
#include
"ecc.h"
#include
"ecc-internal.h"
#include
"gmp-glue.h"
#include
"nettle-internal.h"
void
ecc_point_mul_g
(
struct
ecc_point
*
r
,
const
struct
ecc_scalar
*
n
)
{
TMP_DECL
(
scratch
,
mp_limb_t
,
3
*
ECC_MAX_SIZE
+
ECC_MUL_G_ITCH
(
ECC_MAX_SIZE
));
mp_limb_t
size
=
r
->
ecc
->
size
;
mp_size_t
itch
=
3
*
size
+
ECC_MUL_G_ITCH
(
size
);
assert
(
r
->
ecc
==
n
->
ecc
);
TMP_ALLOC
(
scratch
,
itch
);
ecc_mul_g
(
r
->
ecc
,
scratch
,
n
->
p
,
scratch
+
3
*
size
);
ecc_j_to_a
(
r
->
ecc
,
1
,
r
->
p
,
scratch
,
scratch
+
3
*
size
);
}
This diff is collapsed.
Click to expand it.
ecc-point-mul.c
0 → 100644
+
49
−
0
View file @
2d796c6e
/* ecc-point-mul.c */
/* nettle, low-level cryptographics library
*
* Copyright (C) 2013 Niels Möller
*
* The nettle library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* The nettle library 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the nettle library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02111-1301, USA.
*/
/* Development of Nettle's ECC support was funded by Internetfonden. */
#if HAVE_CONFIG_H
# include "config.h"
#endif
#include
<assert.h>
#include
"ecc.h"
#include
"ecc-internal.h"
#include
"gmp-glue.h"
void
ecc_point_mul
(
struct
ecc_point
*
r
,
const
struct
ecc_scalar
*
n
,
const
struct
ecc_point
*
p
)
{
mp_limb_t
size
=
p
->
ecc
->
size
;
mp_size_t
itch
=
3
*
size
+
ECC_MUL_A_ITCH
(
size
);
mp_limb_t
*
scratch
=
gmp_alloc_limbs
(
itch
);
assert
(
n
->
ecc
==
p
->
ecc
);
assert
(
r
->
ecc
==
p
->
ecc
);
ecc_mul_a
(
p
->
ecc
,
1
,
scratch
,
n
->
p
,
p
->
p
,
scratch
+
3
*
size
);
ecc_j_to_a
(
r
->
ecc
,
1
,
r
->
p
,
scratch
,
scratch
+
3
*
size
);
gmp_free_limbs
(
scratch
,
itch
);
}
This diff is collapsed.
Click to expand it.
ecc.h
+
6
−
0
View file @
2d796c6e
...
@@ -38,6 +38,8 @@ extern "C" {
...
@@ -38,6 +38,8 @@ extern "C" {
#define ecc_point_clear nettle_ecc_point_clear
#define ecc_point_clear nettle_ecc_point_clear
#define ecc_point_set nettle_ecc_point_set
#define ecc_point_set nettle_ecc_point_set
#define ecc_point_get nettle_ecc_point_get
#define ecc_point_get nettle_ecc_point_get
#define ecc_point_mul nettle_ecc_point_mul
#define ecc_point_mul_g nettle_ecc_point_mul_g
#define ecc_scalar_init nettle_ecc_scalar_init
#define ecc_scalar_init nettle_ecc_scalar_init
#define ecc_scalar_clear nettle_ecc_scalar_clear
#define ecc_scalar_clear nettle_ecc_scalar_clear
#define ecc_scalar_set nettle_ecc_scalar_set
#define ecc_scalar_set nettle_ecc_scalar_set
...
@@ -118,6 +120,10 @@ void
...
@@ -118,6 +120,10 @@ void
ecc_point_mul
(
struct
ecc_point
*
r
,
const
struct
ecc_scalar
*
n
,
ecc_point_mul
(
struct
ecc_point
*
r
,
const
struct
ecc_scalar
*
n
,
const
struct
ecc_point
*
p
);
const
struct
ecc_point
*
p
);
/* Computes r = n g */
void
ecc_point_mul_g
(
struct
ecc_point
*
r
,
const
struct
ecc_scalar
*
n
);
/* Low-level interface */
/* Low-level interface */
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment