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
14a96c5d
Commit
14a96c5d
authored
Dec 11, 2013
by
Manuel Pégourié-Gonnard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Avoid wasting memory with some curves
parent
95b45b7b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
10 deletions
+34
-10
library/ecp_curves.c
library/ecp_curves.c
+34
-10
No files found.
library/ecp_curves.c
View file @
14a96c5d
...
...
@@ -39,19 +39,29 @@
/*
* Conversion macros for embedded constants:
* build lists of t_uint's from lists of unsigned char's grouped by 8
* build lists of t_uint's from lists of unsigned char's grouped by 8
, 4 or 2
*/
#if defined(POLARSSL_HAVE_INT8)
#define BYTES_TO_T_UINT_8( a, b, c, d, e, f, g, h ) \
a, b, c, d, e, f, g, h
#define BYTES_TO_T_UINT_4( a, b, c, d ) \
a, b, c, d
#define BYTES_TO_T_UINT_2( a, b ) \
a, b
#elif defined(POLARSSL_HAVE_INT16)
#define BYTES_TO_T_UINT_2( a, b ) \
( (t_uint) a << 0 ) | \
( (t_uint) b << 8 )
#define BYTES_TO_T_UINT_4( a, b, c, d ) \
BYTES_TO_T_UINT_2( a, b ), \
BYTES_TO_T_UINT_2( c, d )
#define BYTES_TO_T_UINT_8( a, b, c, d, e, f, g, h ) \
BYTES_TO_T_UINT_2( a, b ), \
BYTES_TO_T_UINT_2( c, d ), \
...
...
@@ -66,6 +76,9 @@
( (t_uint) c << 16 ) | \
( (t_uint) d << 24 )
#define BYTES_TO_T_UINT_2( a, b ) \
BYTES_TO_T_UINT_4( a, b, 0, 0 )
#define BYTES_TO_T_UINT_8( a, b, c, d, e, f, g, h ) \
BYTES_TO_T_UINT_4( a, b, c, d ) \
BYTES_TO_T_UINT_4( e, f, g, h )
...
...
@@ -82,8 +95,19 @@
( (t_uint) g << 48 ) | \
( (t_uint) h << 56 )
#define BYTES_TO_T_UINT_4( a, b, c, d ) \
BYTES_TO_T_UINT_8( a, b, c, d, 0, 0, 0, 0 )
#define BYTES_TO_T_UINT_2( a, b ) \
BYTES_TO_T_UINT_8( a, b, 0, 0, 0, 0, 0, 0 )
#endif
/* bits in t_uint */
/*
* Note: the constants are in little-endian order
* to be directly usable in MPIs
*/
/*
* Domain parameters for secp192r1
*/
...
...
@@ -129,25 +153,25 @@ static t_uint secp224r1_b[] = {
BYTES_TO_T_UINT_8
(
0xB4
,
0xFF
,
0x55
,
0x23
,
0x43
,
0x39
,
0x0B
,
0x27
),
BYTES_TO_T_UINT_8
(
0xBA
,
0xD8
,
0xBF
,
0xD7
,
0xB7
,
0xB0
,
0x44
,
0x50
),
BYTES_TO_T_UINT_8
(
0x56
,
0x32
,
0x41
,
0xF5
,
0xAB
,
0xB3
,
0x04
,
0x0C
),
BYTES_TO_T_UINT_
8
(
0x85
,
0x0A
,
0x05
,
0xB4
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
4
(
0x85
,
0x0A
,
0x05
,
0xB4
),
};
static
t_uint
secp224r1_gx
[]
=
{
BYTES_TO_T_UINT_8
(
0x21
,
0x1D
,
0x5C
,
0x11
,
0xD6
,
0x80
,
0x32
,
0x34
),
BYTES_TO_T_UINT_8
(
0x22
,
0x11
,
0xC2
,
0x56
,
0xD3
,
0xC1
,
0x03
,
0x4A
),
BYTES_TO_T_UINT_8
(
0xB9
,
0x90
,
0x13
,
0x32
,
0x7F
,
0xBF
,
0xB4
,
0x6B
),
BYTES_TO_T_UINT_
8
(
0xBD
,
0x0C
,
0x0E
,
0xB7
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
4
(
0xBD
,
0x0C
,
0x0E
,
0xB7
),
};
static
t_uint
secp224r1_gy
[]
=
{
BYTES_TO_T_UINT_8
(
0x34
,
0x7E
,
0x00
,
0x85
,
0x99
,
0x81
,
0xD5
,
0x44
),
BYTES_TO_T_UINT_8
(
0x64
,
0x47
,
0x07
,
0x5A
,
0xA0
,
0x75
,
0x43
,
0xCD
),
BYTES_TO_T_UINT_8
(
0xE6
,
0xDF
,
0x22
,
0x4C
,
0xFB
,
0x23
,
0xF7
,
0xB5
),
BYTES_TO_T_UINT_
8
(
0x88
,
0x63
,
0x37
,
0xBD
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
4
(
0x88
,
0x63
,
0x37
,
0xBD
),
};
static
t_uint
secp224r1_n
[]
=
{
BYTES_TO_T_UINT_8
(
0x3D
,
0x2A
,
0x5C
,
0x5C
,
0x45
,
0x29
,
0xDD
,
0x13
),
BYTES_TO_T_UINT_8
(
0x3E
,
0xF0
,
0xB8
,
0xE0
,
0xA2
,
0x16
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_
8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
4
(
0xFF
,
0xFF
,
0xFF
,
0xFF
),
};
#endif
/* POLARSSL_ECP_DP_SECP224R1_ENABLED */
...
...
@@ -246,7 +270,7 @@ static t_uint secp521r1_p[] = {
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_
8
(
0xFF
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
2
(
0xFF
,
0x01
),
};
static
t_uint
secp521r1_b
[]
=
{
BYTES_TO_T_UINT_8
(
0x00
,
0x3F
,
0x50
,
0x6B
,
0xD4
,
0x1F
,
0x45
,
0xEF
),
...
...
@@ -257,7 +281,7 @@ static t_uint secp521r1_b[] = {
BYTES_TO_T_UINT_8
(
0xF3
,
0x15
,
0xB3
,
0x99
,
0x5B
,
0x72
,
0xDA
,
0xA2
),
BYTES_TO_T_UINT_8
(
0xEE
,
0x40
,
0x85
,
0xB6
,
0xA0
,
0x21
,
0x9A
,
0x92
),
BYTES_TO_T_UINT_8
(
0x1F
,
0x9A
,
0x1C
,
0x8E
,
0x61
,
0xB9
,
0x3E
,
0x95
),
BYTES_TO_T_UINT_
8
(
0x51
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
2
(
0x51
,
0x00
),
};
static
t_uint
secp521r1_gx
[]
=
{
BYTES_TO_T_UINT_8
(
0x66
,
0xBD
,
0xE5
,
0xC2
,
0x31
,
0x7E
,
0x7E
,
0xF9
),
...
...
@@ -268,7 +292,7 @@ static t_uint secp521r1_gx[] = {
BYTES_TO_T_UINT_8
(
0x21
,
0xB5
,
0x3F
,
0x05
,
0x39
,
0x81
,
0x64
,
0x9C
),
BYTES_TO_T_UINT_8
(
0x42
,
0xB4
,
0x95
,
0x23
,
0x66
,
0xCB
,
0x3E
,
0x9E
),
BYTES_TO_T_UINT_8
(
0xCD
,
0xE9
,
0x04
,
0x04
,
0xB7
,
0x06
,
0x8E
,
0x85
),
BYTES_TO_T_UINT_
8
(
0xC6
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
2
(
0xC6
,
0x00
),
};
static
t_uint
secp521r1_gy
[]
=
{
BYTES_TO_T_UINT_8
(
0x50
,
0x66
,
0xD1
,
0x9F
,
0x76
,
0x94
,
0xBE
,
0x88
),
...
...
@@ -279,7 +303,7 @@ static t_uint secp521r1_gy[] = {
BYTES_TO_T_UINT_8
(
0x68
,
0x44
,
0x9B
,
0x57
,
0x49
,
0x44
,
0xF5
,
0x98
),
BYTES_TO_T_UINT_8
(
0xD9
,
0x1B
,
0x7D
,
0x2C
,
0xB4
,
0x5F
,
0x8A
,
0x5C
),
BYTES_TO_T_UINT_8
(
0x04
,
0xC0
,
0x3B
,
0x9A
,
0x78
,
0x6A
,
0x29
,
0x39
),
BYTES_TO_T_UINT_
8
(
0x18
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
2
(
0x18
,
0x01
),
};
static
t_uint
secp521r1_n
[]
=
{
BYTES_TO_T_UINT_8
(
0x09
,
0x64
,
0x38
,
0x91
,
0x1E
,
0xB7
,
0x6F
,
0xBB
),
...
...
@@ -290,7 +314,7 @@ static t_uint secp521r1_n[] = {
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_8
(
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
),
BYTES_TO_T_UINT_
8
(
0xFF
,
0x01
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
),
BYTES_TO_T_UINT_
2
(
0xFF
,
0x01
),
};
#endif
/* POLARSSL_ECP_DP_SECP521R1_ENABLED */
...
...
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