Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
BC
public
external
mbedtls
Commits
73cc01d7
Commit
73cc01d7
authored
Dec 06, 2013
by
Manuel Pégourié-Gonnard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove last non-static parts of known EC groups
parent
731d08b4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
13 deletions
+35
-13
library/ecp.c
library/ecp.c
+22
-3
library/ecp_curves.c
library/ecp_curves.c
+13
-10
No files found.
library/ecp.c
View file @
73cc01d7
...
@@ -527,7 +527,6 @@ int ecp_group_read_string( ecp_group *grp, int radix,
...
@@ -527,7 +527,6 @@ int ecp_group_read_string( ecp_group *grp, int radix,
int
ret
;
int
ret
;
MPI_CHK
(
mpi_read_string
(
&
grp
->
P
,
radix
,
p
)
);
MPI_CHK
(
mpi_read_string
(
&
grp
->
P
,
radix
,
p
)
);
MPI_CHK
(
mpi_add_int
(
&
grp
->
A
,
&
grp
->
P
,
-
3
)
);
MPI_CHK
(
mpi_read_string
(
&
grp
->
B
,
radix
,
b
)
);
MPI_CHK
(
mpi_read_string
(
&
grp
->
B
,
radix
,
b
)
);
MPI_CHK
(
ecp_point_read_string
(
&
grp
->
G
,
radix
,
gx
,
gy
)
);
MPI_CHK
(
ecp_point_read_string
(
&
grp
->
G
,
radix
,
gx
,
gy
)
);
MPI_CHK
(
mpi_read_string
(
&
grp
->
N
,
radix
,
n
)
);
MPI_CHK
(
mpi_read_string
(
&
grp
->
N
,
radix
,
n
)
);
...
@@ -868,7 +867,17 @@ static int ecp_double_jac( const ecp_group *grp, ecp_point *R,
...
@@ -868,7 +867,17 @@ static int ecp_double_jac( const ecp_group *grp, ecp_point *R,
MPI_CHK
(
mpi_mul_mpi
(
&
Z3
,
&
P
->
Z
,
&
P
->
Z
)
);
MOD_MUL
(
Z3
);
MPI_CHK
(
mpi_mul_mpi
(
&
Z3
,
&
P
->
Z
,
&
P
->
Z
)
);
MOD_MUL
(
Z3
);
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
Z3
,
&
Z3
)
);
MOD_MUL
(
X3
);
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
Z3
,
&
Z3
)
);
MOD_MUL
(
X3
);
MPI_CHK
(
mpi_mul_int
(
&
T3
,
&
T3
,
3
)
);
MOD_ADD
(
T3
);
MPI_CHK
(
mpi_mul_int
(
&
T3
,
&
T3
,
3
)
);
MOD_ADD
(
T3
);
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
X3
,
&
grp
->
A
)
);
MOD_MUL
(
X3
);
/* Special case for A = -3 */
if
(
grp
->
A
.
p
==
NULL
)
{
MPI_CHK
(
mpi_mul_int
(
&
X3
,
&
X3
,
3
)
);
X3
.
s
=
-
1
;
/* mpi_mul_int doesn't handle negative numbers */
MOD_SUB
(
X3
);
}
else
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
X3
,
&
grp
->
A
)
);
MOD_MUL
(
X3
);
MPI_CHK
(
mpi_add_mpi
(
&
T3
,
&
T3
,
&
X3
)
);
MOD_ADD
(
T3
);
MPI_CHK
(
mpi_add_mpi
(
&
T3
,
&
T3
,
&
X3
)
);
MOD_ADD
(
T3
);
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
T3
,
&
T3
)
);
MOD_MUL
(
X3
);
MPI_CHK
(
mpi_mul_mpi
(
&
X3
,
&
T3
,
&
T3
)
);
MOD_MUL
(
X3
);
MPI_CHK
(
mpi_sub_mpi
(
&
X3
,
&
X3
,
&
T1
)
);
MOD_SUB
(
X3
);
MPI_CHK
(
mpi_sub_mpi
(
&
X3
,
&
X3
,
&
T1
)
);
MOD_SUB
(
X3
);
...
@@ -1633,7 +1642,17 @@ static int ecp_check_pubkey_sw( const ecp_group *grp, const ecp_point *pt )
...
@@ -1633,7 +1642,17 @@ static int ecp_check_pubkey_sw( const ecp_group *grp, const ecp_point *pt )
*/
*/
MPI_CHK
(
mpi_mul_mpi
(
&
YY
,
&
pt
->
Y
,
&
pt
->
Y
)
);
MOD_MUL
(
YY
);
MPI_CHK
(
mpi_mul_mpi
(
&
YY
,
&
pt
->
Y
,
&
pt
->
Y
)
);
MOD_MUL
(
YY
);
MPI_CHK
(
mpi_mul_mpi
(
&
RHS
,
&
pt
->
X
,
&
pt
->
X
)
);
MOD_MUL
(
RHS
);
MPI_CHK
(
mpi_mul_mpi
(
&
RHS
,
&
pt
->
X
,
&
pt
->
X
)
);
MOD_MUL
(
RHS
);
MPI_CHK
(
mpi_add_mpi
(
&
RHS
,
&
RHS
,
&
grp
->
A
)
);
MOD_ADD
(
RHS
);
/* Special case for A = -3 */
if
(
grp
->
A
.
p
==
NULL
)
{
MPI_CHK
(
mpi_sub_int
(
&
RHS
,
&
RHS
,
3
)
);
MOD_SUB
(
RHS
);
}
else
{
MPI_CHK
(
mpi_add_mpi
(
&
RHS
,
&
RHS
,
&
grp
->
A
)
);
MOD_ADD
(
RHS
);
}
MPI_CHK
(
mpi_mul_mpi
(
&
RHS
,
&
RHS
,
&
pt
->
X
)
);
MOD_MUL
(
RHS
);
MPI_CHK
(
mpi_mul_mpi
(
&
RHS
,
&
RHS
,
&
pt
->
X
)
);
MOD_MUL
(
RHS
);
MPI_CHK
(
mpi_add_mpi
(
&
RHS
,
&
RHS
,
&
grp
->
B
)
);
MOD_ADD
(
RHS
);
MPI_CHK
(
mpi_add_mpi
(
&
RHS
,
&
RHS
,
&
grp
->
B
)
);
MOD_ADD
(
RHS
);
...
...
library/ecp_curves.c
View file @
73cc01d7
...
@@ -450,6 +450,17 @@ static inline void ecp_mpi_load( mpi *X, const t_uint *p, size_t len )
...
@@ -450,6 +450,17 @@ static inline void ecp_mpi_load( mpi *X, const t_uint *p, size_t len )
X
->
p
=
(
t_uint
*
)
p
;
X
->
p
=
(
t_uint
*
)
p
;
}
}
/*
* Set an MPI to static value 1
*/
static
inline
void
ecp_mpi_set1
(
mpi
*
X
)
{
static
t_uint
one
[]
=
{
1
};
X
->
s
=
1
;
X
->
n
=
1
;
X
->
p
=
one
;
}
/*
/*
* Make group available from embedded constants
* Make group available from embedded constants
*/
*/
...
@@ -461,28 +472,20 @@ static int ecp_group_load( ecp_group *grp,
...
@@ -461,28 +472,20 @@ static int ecp_group_load( ecp_group *grp,
const
t_uint
*
gy
,
size_t
gylen
,
const
t_uint
*
gy
,
size_t
gylen
,
const
t_uint
*
n
,
size_t
nlen
)
const
t_uint
*
n
,
size_t
nlen
)
{
{
int
ret
;
ecp_mpi_load
(
&
grp
->
P
,
p
,
plen
);
ecp_mpi_load
(
&
grp
->
P
,
p
,
plen
);
if
(
a
!=
NULL
)
if
(
a
!=
NULL
)
ecp_mpi_load
(
&
grp
->
A
,
a
,
alen
);
ecp_mpi_load
(
&
grp
->
A
,
a
,
alen
);
else
MPI_CHK
(
mpi_sub_int
(
&
grp
->
A
,
&
grp
->
P
,
3
)
);
ecp_mpi_load
(
&
grp
->
B
,
b
,
blen
);
ecp_mpi_load
(
&
grp
->
B
,
b
,
blen
);
ecp_mpi_load
(
&
grp
->
N
,
n
,
nlen
);
ecp_mpi_load
(
&
grp
->
N
,
n
,
nlen
);
ecp_mpi_load
(
&
grp
->
G
.
X
,
gx
,
gxlen
);
ecp_mpi_load
(
&
grp
->
G
.
X
,
gx
,
gxlen
);
ecp_mpi_load
(
&
grp
->
G
.
Y
,
gy
,
gylen
);
ecp_mpi_load
(
&
grp
->
G
.
Y
,
gy
,
gylen
);
MPI_CHK
(
mpi_
l
set
(
&
grp
->
G
.
Z
,
1
)
);
ecp_
mpi_set
1
(
&
grp
->
G
.
Z
);
grp
->
pbits
=
mpi_msb
(
&
grp
->
P
);
grp
->
pbits
=
mpi_msb
(
&
grp
->
P
);
grp
->
nbits
=
mpi_msb
(
&
grp
->
N
);
grp
->
nbits
=
mpi_msb
(
&
grp
->
N
);
cleanup:
return
(
0
);
if
(
ret
!=
0
)
ecp_group_free
(
grp
);
return
(
ret
);
}
}
#if defined(POLARSSL_ECP_NIST_OPTIM)
#if defined(POLARSSL_ECP_NIST_OPTIM)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment