Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
mbedtls
Commits
19bd297d
Commit
19bd297d
authored
Jun 14, 2013
by
Paul Bakker
Browse files
PKCS#5 module added. Moved PBKDF2 functionality inside and deprecated
old PBKDF2 module.
parent
52b845be
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
390 additions
and
166 deletions
+390
-166
ChangeLog
ChangeLog
+2
-0
include/polarssl/config.h
include/polarssl/config.h
+15
-1
include/polarssl/error.h
include/polarssl/error.h
+1
-1
include/polarssl/pbkdf2.h
include/polarssl/pbkdf2.h
+3
-1
include/polarssl/pkcs5.h
include/polarssl/pkcs5.h
+79
-0
library/CMakeLists.txt
library/CMakeLists.txt
+1
-0
library/Makefile
library/Makefile
+1
-1
library/error.c
library/error.c
+9
-0
library/pbkdf2.c
library/pbkdf2.c
+5
-160
library/pkcs5.c
library/pkcs5.c
+214
-0
scripts/generate_errors.pl
scripts/generate_errors.pl
+1
-1
tests/CMakeLists.txt
tests/CMakeLists.txt
+1
-0
tests/Makefile
tests/Makefile
+5
-1
tests/suites/test_suite_pkcs5.data
tests/suites/test_suite_pkcs5.data
+14
-0
tests/suites/test_suite_pkcs5.function
tests/suites/test_suite_pkcs5.function
+39
-0
No files found.
ChangeLog
View file @
19bd297d
...
...
@@ -13,6 +13,8 @@ Changes
* Added mechanism to provide alternative implementations for all
symmetric cipher and hash algorithms (e.g. POLARSSL_AES_ALT in
config.h)
* PKCS#5 module added. Moved PBKDF2 functionality inside and deprecated
old PBKDF2 module
Bugfix
* Secure renegotiation extension should only be sent in case client
...
...
include/polarssl/config.h
View file @
19bd297d
...
...
@@ -711,10 +711,11 @@
* \def POLARSSL_PBKDF2_C
*
* Enable PKCS#5 PBKDF2 key derivation function
* DEPRECATED: Use POLARSSL_PKCS5_C instead
*
* Module: library/pbkdf2.c
*
* Requires: POLARSSL_
MD
_C
* Requires: POLARSSL_
PKCS5
_C
*
* This module adds support for the PKCS#5 PBKDF2 key derivation function.
#define POLARSSL_PBKDF2_C
...
...
@@ -734,6 +735,19 @@
*/
#define POLARSSL_PEM_C
/**
* \def POLARSSL_PKCS5_C
*
* Enable PKCS#5 functions
*
* Module: library/pkcs5.c
*
* Requires: POLARSSL_MD_C
*
* This module adds support for the PKCS#5 functions.
*/
#define POLARSSL_PKCS5_C
/**
* \def POLARSSL_PKCS11_C
*
...
...
include/polarssl/error.h
View file @
19bd297d
...
...
@@ -69,7 +69,7 @@
* SHA1 1 0x0076-0x0076
* SHA2 1 0x0078-0x0078
* SHA4 1 0x007A-0x007A
* P
BKDF2
1 0x007C-0x007C
* P
KCS5
1 0x007C-0x007C
*
* High-level module nr (3 bits - 0x1...-0x8...)
* Name ID Nr of Errors
...
...
include/polarssl/pbkdf2.h
View file @
19bd297d
...
...
@@ -2,6 +2,7 @@
* \file pbkdf2.h
*
* \brief Password-Based Key Derivation Function 2 (from PKCS#5)
* DEPRECATED: use pkcs5.h instead.
*
* \author Mathias Olsson <mathias@kompetensum.com>
*
...
...
@@ -48,6 +49,7 @@ extern "C" {
/**
* \brief PKCS#5 PBKDF2 using HMAC
* DEPRECATED: Use pkcs5_pbkdf2_hmac() instead!
*
* \param ctx Generic HMAC context
* \param password Password to use when generating key
...
...
@@ -65,9 +67,9 @@ int pbkdf2_hmac( md_context_t *ctx, const unsigned char *password,
unsigned
int
iteration_count
,
uint32_t
key_length
,
unsigned
char
*
output
);
/**
* \brief Checkup routine
* DEPRECATED: Use pkcs5_self_test() instead!
*
* \return 0 if successful, or 1 if the test failed
*/
...
...
include/polarssl/pkcs5.h
0 → 100644
View file @
19bd297d
/**
* \file pkcs#5.h
*
* \brief PKCS#5 functions
*
* \author Mathias Olsson <mathias@kompetensum.com>
*
* Copyright (C) 2006-2013, Brainspark B.V.
*
* This file is part of PolarSSL (http://www.polarssl.org)
* Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
*
* All rights reserved.
*
* This program 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 2 of the License, 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef POLARSSL_PKCS5_H
#define POLARSSL_PKCS5_H
#include <string.h>
#include "md.h"
#ifdef _MSC_VER
#include <basetsd.h>
typedef
UINT32
uint32_t
;
#else
#include <inttypes.h>
#endif
#define POLARSSL_ERR_PKCS5_BAD_INPUT_DATA -0x007C
/**< Bad input parameters to function. */
#ifdef __cplusplus
extern
"C"
{
#endif
/**
* \brief PKCS#5 PBKDF2 using HMAC
*
* \param ctx Generic HMAC context
* \param password Password to use when generating key
* \param plen Length of password
* \param salt Salt to use when generating key
* \param slen Length of salt
* \param iteration_count Iteration count
* \param key_length Length of generated key
* \param output Generated key. Must be at least as big as key_length
*
* \returns 0 on success, or a PolarSSL error code if verification fails.
*/
int
pkcs5_pbkdf2_hmac
(
md_context_t
*
ctx
,
const
unsigned
char
*
password
,
size_t
plen
,
const
unsigned
char
*
salt
,
size_t
slen
,
unsigned
int
iteration_count
,
uint32_t
key_length
,
unsigned
char
*
output
);
/**
* \brief Checkup routine
*
* \return 0 if successful, or 1 if the test failed
*/
int
pkcs5_self_test
(
int
verbose
);
#ifdef __cplusplus
}
#endif
#endif
/* pkcs5.h */
library/CMakeLists.txt
View file @
19bd297d
...
...
@@ -30,6 +30,7 @@ set(src
padlock.c
pbkdf2.c
pem.c
pkcs5.c
pkcs11.c
pkcs12.c
rsa.c
...
...
library/Makefile
View file @
19bd297d
...
...
@@ -44,7 +44,7 @@ OBJS= aes.o arc4.o asn1parse.o \
md.o md_wrap.o md2.o
\
md4.o md5.o net.o
\
padlock.o pbkdf2.o pem.o
\
pkcs11.o pkcs12.o
\
pkcs5.o
pkcs11.o pkcs12.o
\
rsa.o sha1.o sha2.o
\
sha4.o ssl_cache.o ssl_cli.o
\
ssl_srv.o
\
...
...
library/error.c
View file @
19bd297d
...
...
@@ -109,6 +109,10 @@
#include "polarssl/pkcs12.h"
#endif
#if defined(POLARSSL_PKCS5_C)
#include "polarssl/pkcs5.h"
#endif
#if defined(POLARSSL_RSA_C)
#include "polarssl/rsa.h"
#endif
...
...
@@ -544,6 +548,11 @@ void error_strerror( int ret, char *buf, size_t buflen )
snprintf
(
buf
,
buflen
,
"PBKDF2 - Bad input parameters to function"
);
#endif
/* POLARSSL_PBKDF2_C */
#if defined(POLARSSL_PKCS5_C)
if
(
use_ret
==
-
(
POLARSSL_ERR_PKCS5_BAD_INPUT_DATA
)
)
snprintf
(
buf
,
buflen
,
"PKCS5 - Bad input parameters to function"
);
#endif
/* POLARSSL_PKCS5_C */
#if defined(POLARSSL_SHA1_C)
if
(
use_ret
==
-
(
POLARSSL_ERR_SHA1_FILE_IO_ERROR
)
)
snprintf
(
buf
,
buflen
,
"SHA1 - Read/write error in file"
);
...
...
library/pbkdf2.c
View file @
19bd297d
...
...
@@ -2,6 +2,7 @@
* \file pbkdf2.c
*
* \brief Password-Based Key Derivation Function 2 (from PKCS#5)
* DEPRECATED: Use pkcs5.c instead
*
* \author Mathias Olsson <mathias@kompetensum.com>
*
...
...
@@ -38,178 +39,22 @@
#if defined(POLARSSL_PBKDF2_C)
#include "polarssl/pbkdf2.h"
#include "polarssl/pkcs5.h"
int
pbkdf2_hmac
(
md_context_t
*
ctx
,
const
unsigned
char
*
password
,
size_t
plen
,
const
unsigned
char
*
salt
,
size_t
slen
,
unsigned
int
iteration_count
,
uint32_t
key_length
,
unsigned
char
*
output
)
{
int
ret
,
j
;
unsigned
int
i
;
unsigned
char
md1
[
POLARSSL_MD_MAX_SIZE
];
unsigned
char
work
[
POLARSSL_MD_MAX_SIZE
];
unsigned
char
md_size
=
md_get_size
(
ctx
->
md_info
);
size_t
use_len
;
unsigned
char
*
out_p
=
output
;
unsigned
char
counter
[
4
];
memset
(
counter
,
0
,
4
);
counter
[
3
]
=
1
;
if
(
iteration_count
>
0xFFFFFFFF
)
return
(
POLARSSL_ERR_PBKDF2_BAD_INPUT_DATA
);
while
(
key_length
)
{
// U1 ends up in work
//
if
(
(
ret
=
md_hmac_starts
(
ctx
,
password
,
plen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
salt
,
slen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
counter
,
4
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_finish
(
ctx
,
work
)
)
!=
0
)
return
(
ret
);
memcpy
(
md1
,
work
,
md_size
);
for
(
i
=
1
;
i
<
iteration_count
;
i
++
)
{
// U2 ends up in md1
//
if
(
(
ret
=
md_hmac_starts
(
ctx
,
password
,
plen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
md1
,
md_size
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_finish
(
ctx
,
md1
)
)
!=
0
)
return
(
ret
);
// U1 xor U2
//
for
(
j
=
0
;
j
<
md_size
;
j
++
)
work
[
j
]
^=
md1
[
j
];
}
use_len
=
(
key_length
<
md_size
)
?
key_length
:
md_size
;
memcpy
(
out_p
,
work
,
use_len
);
key_length
-=
use_len
;
out_p
+=
use_len
;
for
(
i
=
4
;
i
>
0
;
i
--
)
if
(
++
counter
[
i
-
1
]
!=
0
)
break
;
}
return
(
0
);
return
pkcs5_pbkdf2_hmac
(
ctx
,
password
,
plen
,
salt
,
slen
,
iteration_count
,
key_length
,
output
);
}
#if defined(POLARSSL_SELF_TEST)
#include <stdio.h>
#define MAX_TESTS 6
size_t
plen
[
MAX_TESTS
]
=
{
8
,
8
,
8
,
8
,
24
,
9
};
unsigned
char
password
[
MAX_TESTS
][
32
]
=
{
"password"
,
"password"
,
"password"
,
"password"
,
"passwordPASSWORDpassword"
,
"pass
\0
word"
,
};
size_t
slen
[
MAX_TESTS
]
=
{
4
,
4
,
4
,
4
,
36
,
5
};
unsigned
char
salt
[
MAX_TESTS
][
40
]
=
{
"salt"
,
"salt"
,
"salt"
,
"salt"
,
"saltSALTsaltSALTsaltSALTsaltSALTsalt"
,
"sa
\0
lt"
,
};
uint32_t
it_cnt
[
MAX_TESTS
]
=
{
1
,
2
,
4096
,
16777216
,
4096
,
4096
};
uint32_t
key_len
[
MAX_TESTS
]
=
{
20
,
20
,
20
,
20
,
25
,
16
};
unsigned
char
result_key
[
MAX_TESTS
][
32
]
=
{
{
0x0c
,
0x60
,
0xc8
,
0x0f
,
0x96
,
0x1f
,
0x0e
,
0x71
,
0xf3
,
0xa9
,
0xb5
,
0x24
,
0xaf
,
0x60
,
0x12
,
0x06
,
0x2f
,
0xe0
,
0x37
,
0xa6
},
{
0xea
,
0x6c
,
0x01
,
0x4d
,
0xc7
,
0x2d
,
0x6f
,
0x8c
,
0xcd
,
0x1e
,
0xd9
,
0x2a
,
0xce
,
0x1d
,
0x41
,
0xf0
,
0xd8
,
0xde
,
0x89
,
0x57
},
{
0x4b
,
0x00
,
0x79
,
0x01
,
0xb7
,
0x65
,
0x48
,
0x9a
,
0xbe
,
0xad
,
0x49
,
0xd9
,
0x26
,
0xf7
,
0x21
,
0xd0
,
0x65
,
0xa4
,
0x29
,
0xc1
},
{
0xee
,
0xfe
,
0x3d
,
0x61
,
0xcd
,
0x4d
,
0xa4
,
0xe4
,
0xe9
,
0x94
,
0x5b
,
0x3d
,
0x6b
,
0xa2
,
0x15
,
0x8c
,
0x26
,
0x34
,
0xe9
,
0x84
},
{
0x3d
,
0x2e
,
0xec
,
0x4f
,
0xe4
,
0x1c
,
0x84
,
0x9b
,
0x80
,
0xc8
,
0xd8
,
0x36
,
0x62
,
0xc0
,
0xe4
,
0x4a
,
0x8b
,
0x29
,
0x1a
,
0x96
,
0x4c
,
0xf2
,
0xf0
,
0x70
,
0x38
},
{
0x56
,
0xfa
,
0x6a
,
0xa7
,
0x55
,
0x48
,
0x09
,
0x9d
,
0xcc
,
0x37
,
0xd7
,
0xf0
,
0x34
,
0x25
,
0xe0
,
0xc3
},
};
int
pbkdf2_self_test
(
int
verbose
)
{
md_context_t
sha1_ctx
;
const
md_info_t
*
info_sha1
;
int
ret
,
i
;
unsigned
char
key
[
64
];
info_sha1
=
md_info_from_type
(
POLARSSL_MD_SHA1
);
if
(
info_sha1
==
NULL
)
return
(
1
);
if
(
(
ret
=
md_init_ctx
(
&
sha1_ctx
,
info_sha1
)
)
!=
0
)
return
(
1
);
for
(
i
=
0
;
i
<
MAX_TESTS
;
i
++
)
{
printf
(
" PBKDF2 (SHA1) #%d: "
,
i
);
ret
=
pbkdf2_hmac
(
&
sha1_ctx
,
password
[
i
],
plen
[
i
],
salt
[
i
],
slen
[
i
],
it_cnt
[
i
],
key_len
[
i
],
key
);
if
(
ret
!=
0
||
memcmp
(
result_key
[
i
],
key
,
key_len
[
i
]
)
!=
0
)
{
if
(
verbose
!=
0
)
printf
(
"failed
\n
"
);
return
(
1
);
}
if
(
verbose
!=
0
)
printf
(
"passed
\n
"
);
}
printf
(
"
\n
"
);
return
(
0
);
return
pkcs5_self_test
(
verbose
);
}
#endif
/* POLARSSL_SELF_TEST */
#endif
/* POLARSSL_PBKDF2_C */
library/pkcs5.c
0 → 100644
View file @
19bd297d
/**
* \file pkcs5.c
*
* \brief PKCS#5 functions
*
* \author Mathias Olsson <mathias@kompetensum.com>
*
* Copyright (C) 2006-2013, Brainspark B.V.
*
* This file is part of PolarSSL (http://www.polarssl.org)
* Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
*
* All rights reserved.
*
* This program 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 2 of the License, 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*
* PKCS#5 includes PBKDF2 and more
*
* http://tools.ietf.org/html/rfc2898 (Specification)
* http://tools.ietf.org/html/rfc6070 (Test vectors)
*/
#include "polarssl/config.h"
#if defined(POLARSSL_PKCS5_C)
#include "polarssl/pkcs5.h"
int
pkcs5_pbkdf2_hmac
(
md_context_t
*
ctx
,
const
unsigned
char
*
password
,
size_t
plen
,
const
unsigned
char
*
salt
,
size_t
slen
,
unsigned
int
iteration_count
,
uint32_t
key_length
,
unsigned
char
*
output
)
{
int
ret
,
j
;
unsigned
int
i
;
unsigned
char
md1
[
POLARSSL_MD_MAX_SIZE
];
unsigned
char
work
[
POLARSSL_MD_MAX_SIZE
];
unsigned
char
md_size
=
md_get_size
(
ctx
->
md_info
);
size_t
use_len
;
unsigned
char
*
out_p
=
output
;
unsigned
char
counter
[
4
];
memset
(
counter
,
0
,
4
);
counter
[
3
]
=
1
;
if
(
iteration_count
>
0xFFFFFFFF
)
return
(
POLARSSL_ERR_PKCS5_BAD_INPUT_DATA
);
while
(
key_length
)
{
// U1 ends up in work
//
if
(
(
ret
=
md_hmac_starts
(
ctx
,
password
,
plen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
salt
,
slen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
counter
,
4
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_finish
(
ctx
,
work
)
)
!=
0
)
return
(
ret
);
memcpy
(
md1
,
work
,
md_size
);
for
(
i
=
1
;
i
<
iteration_count
;
i
++
)
{
// U2 ends up in md1
//
if
(
(
ret
=
md_hmac_starts
(
ctx
,
password
,
plen
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_update
(
ctx
,
md1
,
md_size
)
)
!=
0
)
return
(
ret
);
if
(
(
ret
=
md_hmac_finish
(
ctx
,
md1
)
)
!=
0
)
return
(
ret
);
// U1 xor U2
//
for
(
j
=
0
;
j
<
md_size
;
j
++
)
work
[
j
]
^=
md1
[
j
];
}
use_len
=
(
key_length
<
md_size
)
?
key_length
:
md_size
;
memcpy
(
out_p
,
work
,
use_len
);
key_length
-=
use_len
;
out_p
+=
use_len
;
for
(
i
=
4
;
i
>
0
;
i
--
)
if
(
++
counter
[
i
-
1
]
!=
0
)
break
;
}
return
(
0
);
}
#if defined(POLARSSL_SELF_TEST)
#include <stdio.h>
#define MAX_TESTS 6
size_t
plen
[
MAX_TESTS
]
=
{
8
,
8
,
8
,
8
,
24
,
9
};
unsigned
char
password
[
MAX_TESTS
][
32
]
=
{
"password"
,
"password"
,
"password"
,
"password"
,
"passwordPASSWORDpassword"
,
"pass
\0
word"
,
};
size_t
slen
[
MAX_TESTS
]
=
{
4
,
4
,
4
,
4
,
36
,
5
};
unsigned
char
salt
[
MAX_TESTS
][
40
]
=
{
"salt"
,
"salt"
,
"salt"
,
"salt"
,
"saltSALTsaltSALTsaltSALTsaltSALTsalt"
,
"sa
\0
lt"
,
};
uint32_t
it_cnt
[
MAX_TESTS
]
=
{
1
,
2
,
4096
,
16777216
,
4096
,
4096
};
uint32_t
key_len
[
MAX_TESTS
]
=
{
20
,
20
,
20
,
20
,
25
,
16
};
unsigned
char
result_key
[
MAX_TESTS
][
32
]
=
{
{
0x0c
,
0x60
,
0xc8
,
0x0f
,
0x96
,
0x1f
,
0x0e
,
0x71
,
0xf3
,
0xa9
,
0xb5
,
0x24
,
0xaf
,
0x60
,
0x12
,
0x06
,
0x2f
,
0xe0
,
0x37
,
0xa6
},
{
0xea
,
0x6c
,
0x01
,
0x4d
,
0xc7
,
0x2d
,
0x6f
,
0x8c
,
0xcd
,
0x1e
,
0xd9
,
0x2a
,
0xce
,
0x1d
,
0x41
,
0xf0
,
0xd8
,
0xde
,
0x89
,
0x57
},
{
0x4b
,
0x00
,
0x79
,
0x01
,
0xb7
,
0x65
,
0x48
,
0x9a
,
0xbe
,
0xad
,
0x49
,
0xd9
,
0x26
,
0xf7
,
0x21
,
0xd0
,
0x65
,
0xa4
,
0x29
,
0xc1
},
{
0xee
,
0xfe
,
0x3d
,
0x61
,
0xcd
,
0x4d
,
0xa4
,
0xe4
,
0xe9
,
0x94
,
0x5b
,
0x3d
,
0x6b
,
0xa2
,
0x15
,
0x8c
,
0x26
,
0x34
,
0xe9
,
0x84
},
{
0x3d
,
0x2e
,
0xec
,
0x4f
,
0xe4
,
0x1c
,
0x84
,
0x9b
,
0x80
,
0xc8
,
0xd8
,
0x36
,
0x62
,
0xc0
,
0xe4
,
0x4a
,
0x8b
,
0x29
,
0x1a
,
0x96
,
0x4c
,
0xf2
,
0xf0
,
0x70
,
0x38
},
{
0x56
,
0xfa
,
0x6a
,
0xa7
,
0x55
,
0x48
,
0x09
,
0x9d
,
0xcc
,
0x37
,
0xd7
,
0xf0
,
0x34
,
0x25
,
0xe0
,
0xc3
},
};
int
pkcs5_self_test
(
int
verbose
)
{
md_context_t
sha1_ctx
;
const
md_info_t
*
info_sha1
;
int
ret
,
i
;
unsigned
char
key
[
64
];
info_sha1
=
md_info_from_type
(
POLARSSL_MD_SHA1
);
if
(
info_sha1
==
NULL
)
return
(
1
);
if
(
(
ret
=
md_init_ctx
(
&
sha1_ctx
,
info_sha1
)
)
!=
0
)
return
(
1
);
for
(
i
=
0
;
i
<
MAX_TESTS
;
i
++
)
{
printf
(
" PBKDF2 (SHA1) #%d: "
,
i
);
ret
=
pkcs5_pbkdf2_hmac
(
&
sha1_ctx
,
password
[
i
],
plen
[
i
],
salt
[
i
],
slen
[
i
],
it_cnt
[
i
],
key_len
[
i
],
key
);
if
(
ret
!=
0
||
memcmp
(
result_key
[
i
],
key
,
key_len
[
i
]
)
!=
0
)
{
if
(
verbose
!=
0
)
printf
(
"failed
\n
"
);
return
(
1
);
}
if
(
verbose
!=
0
)
printf
(
"passed
\n
"
);
}
printf
(
"
\n
"
);
return
(
0
);
}
#endif
/* POLARSSL_SELF_TEST */
#endif
/* POLARSSL_PKCS5_C */
scripts/generate_errors.pl
View file @
19bd297d
...
...
@@ -9,7 +9,7 @@ my $error_file = shift or die "Missing destination file";
my
$error_format_file
=
$data_dir
.
'
/error.fmt
';
my
@low_level_modules
=
(
"
AES
",
"
ASN1
",
"
BLOWFISH
",
"
CAMELLIA
",
"
BIGNUM
",
"
BASE64
",
"
XTEA
",
"
PBKDF2
",
"
BASE64
",
"
XTEA
",
"
PBKDF2
",
"
PKCS5
",
"
PADLOCK
",
"
DES
",
"
NET
",
"
CTR_DRBG
",
"
ENTROPY
",
"
MD2
",
"
MD4
",
"
MD5
",
"
SHA1
",
"
SHA2
",
"
SHA4
",
"
GCM
"
);