Merged change from readdir_r() to readdir() + threading
This commit is contained in:
commit
c3d0d07a7a
@ -5,6 +5,7 @@ Changes
|
||||
* gen_prime() speedup
|
||||
* Speedup of ECP multiplication operation
|
||||
* Relaxed some SHA2 ciphersuite's version requirements
|
||||
* Dropped use of readdir_r() instead of readdir() with threading support
|
||||
|
||||
Bugfix
|
||||
* Fixed X.509 hostname comparison (with non-regular characters)
|
||||
|
@ -93,17 +93,6 @@
|
||||
*/
|
||||
//#define POLARSSL_HAVE_SSE2
|
||||
|
||||
/**
|
||||
* \def POLARSSL_HAVE_READDIR_R
|
||||
*
|
||||
* (Non Windows) System has readdir_r().
|
||||
*
|
||||
* Required for x509_crt_parse_path() in non-Windows systems.
|
||||
*
|
||||
* Comment if your system does not have support.
|
||||
*/
|
||||
#define POLARSSL_HAVE_READDIR_R
|
||||
|
||||
/**
|
||||
* \def POLARSSL_HAVE_TIME
|
||||
*
|
||||
|
@ -172,6 +172,11 @@ int x509_crt_parse_file( x509_crt *chain, const char *path );
|
||||
* of failed certificates it encountered. If none complete
|
||||
* correctly, the first error is returned.
|
||||
*
|
||||
* \warning This function is NOT thread-safe unless
|
||||
* POLARSSL_THREADING_PTHREADS is defined. If you're using an
|
||||
* alternative threading implementation, you should either use
|
||||
* this function only in the main thread, or mutex it.
|
||||
*
|
||||
* \param chain points to the start of the chain
|
||||
* \param path directory / folder to read the certificate files from
|
||||
*
|
||||
|
@ -51,6 +51,10 @@
|
||||
#define polarssl_free free
|
||||
#endif
|
||||
|
||||
#if defined(POLARSSL_THREADING_C)
|
||||
#include "polarssl/threading.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
|
||||
@ -936,6 +940,10 @@ int x509_crt_parse_file( x509_crt *chain, const char *path )
|
||||
return( ret );
|
||||
}
|
||||
|
||||
#if defined(POLARSSL_THREADING_PTHREAD)
|
||||
static threading_mutex_t readdir_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
#endif
|
||||
|
||||
int x509_crt_parse_path( x509_crt *chain, const char *path )
|
||||
{
|
||||
int ret = 0;
|
||||
@ -991,29 +999,29 @@ int x509_crt_parse_path( x509_crt *chain, const char *path )
|
||||
|
||||
FindClose( hFind );
|
||||
#else /* _WIN32 */
|
||||
#if defined(POLARSSL_HAVE_READDIR_R)
|
||||
int t_ret, i;
|
||||
int t_ret;
|
||||
struct stat sb;
|
||||
struct dirent entry, *result = NULL;
|
||||
struct dirent *entry;
|
||||
char entry_name[255];
|
||||
DIR *dir = opendir( path );
|
||||
|
||||
if( dir == NULL)
|
||||
return( POLARSSL_ERR_X509_FILE_IO_ERROR );
|
||||
|
||||
while( ( t_ret = readdir_r( dir, &entry, &result ) ) == 0 )
|
||||
#if defined(POLARSSL_THREADING_PTHREAD)
|
||||
if( ( ret = polarssl_mutex_lock( &readdir_mutex ) ) != 0 )
|
||||
return( ret );
|
||||
#endif
|
||||
|
||||
while( ( entry = readdir( dir ) ) != NULL )
|
||||
{
|
||||
if( result == NULL )
|
||||
break;
|
||||
snprintf( entry_name, sizeof entry_name, "%s/%s", path, entry->d_name );
|
||||
|
||||
snprintf( entry_name, sizeof(entry_name), "%s/%s", path, entry.d_name );
|
||||
|
||||
i = stat( entry_name, &sb );
|
||||
|
||||
if( i == -1 )
|
||||
if( stat( entry_name, &sb ) == -1 )
|
||||
{
|
||||
closedir( dir );
|
||||
return( POLARSSL_ERR_X509_FILE_IO_ERROR );
|
||||
ret = POLARSSL_ERR_X509_FILE_IO_ERROR;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if( !S_ISREG( sb.st_mode ) )
|
||||
@ -1028,11 +1036,13 @@ int x509_crt_parse_path( x509_crt *chain, const char *path )
|
||||
ret += t_ret;
|
||||
}
|
||||
closedir( dir );
|
||||
#else /* POLARSSL_HAVE_READDIR_R */
|
||||
((void) chain);
|
||||
((void) path);
|
||||
ret = POLARSSL_ERR_X509_FEATURE_UNAVAILABLE;
|
||||
#endif /* POLARSSL_HAVE_READDIR_R */
|
||||
|
||||
cleanup:
|
||||
#if defined(POLARSSL_THREADING_PTHREAD)
|
||||
if( polarssl_mutex_unlock( &readdir_mutex ) != 0 )
|
||||
ret = POLARSSL_ERR_THREADING_MUTEX_ERROR;
|
||||
#endif
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
return( ret );
|
||||
|
80
tests/data_files/dir1/test-ca.crt
Normal file
80
tests/data_files/dir1/test-ca.crt
Normal file
@ -0,0 +1,80 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Validity
|
||||
Not Before: Feb 12 14:44:00 2011 GMT
|
||||
Not After : Feb 12 14:44:00 2021 GMT
|
||||
Subject: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (2048 bit)
|
||||
Modulus (2048 bit):
|
||||
00:c0:df:37:fc:17:bb:e0:96:9d:3f:86:de:96:32:
|
||||
7d:44:a5:16:a0:cd:21:f1:99:d4:ec:ea:cb:7c:18:
|
||||
58:08:94:a5:ec:9b:c5:8b:df:1a:1e:99:38:99:87:
|
||||
1e:7b:c0:8d:39:df:38:5d:70:78:07:d3:9e:d9:93:
|
||||
e8:b9:72:51:c5:ce:a3:30:52:a9:f2:e7:40:70:14:
|
||||
cb:44:a2:72:0b:c2:e5:40:f9:3e:e5:a6:0e:b3:f9:
|
||||
ec:4a:63:c0:b8:29:00:74:9c:57:3b:a8:a5:04:90:
|
||||
71:f1:bd:83:d9:3f:d6:a5:e2:3c:2a:8f:ef:27:60:
|
||||
c3:c6:9f:cb:ba:ec:60:7d:b7:e6:84:32:be:4f:fb:
|
||||
58:26:22:03:5b:d4:b4:d5:fb:f5:e3:96:2e:70:c0:
|
||||
e4:2e:bd:fc:2e:ee:e2:41:55:c0:34:2e:7d:24:72:
|
||||
69:cb:47:b1:14:40:83:7d:67:f4:86:f6:31:ab:f1:
|
||||
79:a4:b2:b5:2e:12:f9:84:17:f0:62:6f:27:3e:13:
|
||||
58:b1:54:0d:21:9a:73:37:a1:30:cf:6f:92:dc:f6:
|
||||
e9:fc:ac:db:2e:28:d1:7e:02:4b:23:a0:15:f2:38:
|
||||
65:64:09:ea:0c:6e:8e:1b:17:a0:71:c8:b3:9b:c9:
|
||||
ab:e9:c3:f2:cf:87:96:8f:80:02:32:9e:99:58:6f:
|
||||
a2:d5
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
DirName:/C=NL/O=PolarSSL/CN=PolarSSL Test CA
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
b8:fd:54:d8:00:54:90:8b:25:b0:27:dd:95:cd:a2:f7:84:07:
|
||||
1d:87:89:4a:c4:78:11:d8:07:b5:d7:22:50:8e:48:eb:62:7a:
|
||||
32:89:be:63:47:53:ff:b6:be:f1:2e:8c:54:c0:99:3f:a0:b9:
|
||||
37:23:72:5f:0d:46:59:8f:d8:47:cd:97:4c:9f:07:0c:12:62:
|
||||
09:3a:24:e4:36:d9:e9:2c:da:38:d0:73:75:61:d7:c1:6c:26:
|
||||
8b:9b:e0:d5:dc:67:ed:8c:6b:33:d7:74:22:3c:4c:db:b5:8d:
|
||||
2a:ce:2c:0d:08:59:05:09:05:a6:39:9f:b3:67:1b:e2:83:e5:
|
||||
e1:8f:53:f6:67:93:c7:f9:6f:76:44:58:12:e8:3a:d4:97:e7:
|
||||
e9:c0:3e:a8:7a:72:3d:87:53:1f:e5:2c:84:84:e7:9a:9e:7f:
|
||||
66:d9:1f:9b:f5:13:48:b0:4d:14:d1:de:b2:24:d9:78:7d:f5:
|
||||
35:cc:58:19:d1:d2:99:ef:4d:73:f8:1f:89:d4:5a:d0:52:ce:
|
||||
09:f5:b1:46:51:6a:00:8e:3b:cc:6f:63:01:00:99:ed:9d:a6:
|
||||
08:60:cd:32:18:d0:73:e0:58:71:d9:e5:d2:53:d7:8d:d0:ca:
|
||||
e9:5d:2a:0a:0d:5d:55:ec:21:50:17:16:e6:06:4a:cd:5e:de:
|
||||
f7:e0:e9:54
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDhzCCAm+gAwIBAgIBADANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
|
||||
MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
|
||||
MTEwMjEyMTQ0NDAwWhcNMjEwMjEyMTQ0NDAwWjA7MQswCQYDVQQGEwJOTDERMA8G
|
||||
A1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwggEiMA0G
|
||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA3zf8F7vglp0/ht6WMn1EpRagzSHx
|
||||
mdTs6st8GFgIlKXsm8WL3xoemTiZhx57wI053zhdcHgH057Zk+i5clHFzqMwUqny
|
||||
50BwFMtEonILwuVA+T7lpg6z+exKY8C4KQB0nFc7qKUEkHHxvYPZP9al4jwqj+8n
|
||||
YMPGn8u67GB9t+aEMr5P+1gmIgNb1LTV+/Xjli5wwOQuvfwu7uJBVcA0Ln0kcmnL
|
||||
R7EUQIN9Z/SG9jGr8XmksrUuEvmEF/Bibyc+E1ixVA0hmnM3oTDPb5Lc9un8rNsu
|
||||
KNF+AksjoBXyOGVkCeoMbo4bF6BxyLObyavpw/LPh5aPgAIynplYb6LVAgMBAAGj
|
||||
gZUwgZIwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUtFrkpbPe0lL2udWmlQ/rPrzH
|
||||
/f8wYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/rPrzH/f+hP6Q9MDsxCzAJBgNV
|
||||
BAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVz
|
||||
dCBDQYIBADANBgkqhkiG9w0BAQUFAAOCAQEAuP1U2ABUkIslsCfdlc2i94QHHYeJ
|
||||
SsR4EdgHtdciUI5I62J6Mom+Y0dT/7a+8S6MVMCZP6C5NyNyXw1GWY/YR82XTJ8H
|
||||
DBJiCTok5DbZ6SzaONBzdWHXwWwmi5vg1dxn7YxrM9d0IjxM27WNKs4sDQhZBQkF
|
||||
pjmfs2cb4oPl4Y9T9meTx/lvdkRYEug61Jfn6cA+qHpyPYdTH+UshITnmp5/Ztkf
|
||||
m/UTSLBNFNHesiTZeH31NcxYGdHSme9Nc/gfidRa0FLOCfWxRlFqAI47zG9jAQCZ
|
||||
7Z2mCGDNMhjQc+BYcdnl0lPXjdDK6V0qCg1dVewhUBcW5gZKzV7e9+DpVA==
|
||||
-----END CERTIFICATE-----
|
80
tests/data_files/dir2/test-ca.crt
Normal file
80
tests/data_files/dir2/test-ca.crt
Normal file
@ -0,0 +1,80 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Validity
|
||||
Not Before: Feb 12 14:44:00 2011 GMT
|
||||
Not After : Feb 12 14:44:00 2021 GMT
|
||||
Subject: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (2048 bit)
|
||||
Modulus (2048 bit):
|
||||
00:c0:df:37:fc:17:bb:e0:96:9d:3f:86:de:96:32:
|
||||
7d:44:a5:16:a0:cd:21:f1:99:d4:ec:ea:cb:7c:18:
|
||||
58:08:94:a5:ec:9b:c5:8b:df:1a:1e:99:38:99:87:
|
||||
1e:7b:c0:8d:39:df:38:5d:70:78:07:d3:9e:d9:93:
|
||||
e8:b9:72:51:c5:ce:a3:30:52:a9:f2:e7:40:70:14:
|
||||
cb:44:a2:72:0b:c2:e5:40:f9:3e:e5:a6:0e:b3:f9:
|
||||
ec:4a:63:c0:b8:29:00:74:9c:57:3b:a8:a5:04:90:
|
||||
71:f1:bd:83:d9:3f:d6:a5:e2:3c:2a:8f:ef:27:60:
|
||||
c3:c6:9f:cb:ba:ec:60:7d:b7:e6:84:32:be:4f:fb:
|
||||
58:26:22:03:5b:d4:b4:d5:fb:f5:e3:96:2e:70:c0:
|
||||
e4:2e:bd:fc:2e:ee:e2:41:55:c0:34:2e:7d:24:72:
|
||||
69:cb:47:b1:14:40:83:7d:67:f4:86:f6:31:ab:f1:
|
||||
79:a4:b2:b5:2e:12:f9:84:17:f0:62:6f:27:3e:13:
|
||||
58:b1:54:0d:21:9a:73:37:a1:30:cf:6f:92:dc:f6:
|
||||
e9:fc:ac:db:2e:28:d1:7e:02:4b:23:a0:15:f2:38:
|
||||
65:64:09:ea:0c:6e:8e:1b:17:a0:71:c8:b3:9b:c9:
|
||||
ab:e9:c3:f2:cf:87:96:8f:80:02:32:9e:99:58:6f:
|
||||
a2:d5
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
DirName:/C=NL/O=PolarSSL/CN=PolarSSL Test CA
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
b8:fd:54:d8:00:54:90:8b:25:b0:27:dd:95:cd:a2:f7:84:07:
|
||||
1d:87:89:4a:c4:78:11:d8:07:b5:d7:22:50:8e:48:eb:62:7a:
|
||||
32:89:be:63:47:53:ff:b6:be:f1:2e:8c:54:c0:99:3f:a0:b9:
|
||||
37:23:72:5f:0d:46:59:8f:d8:47:cd:97:4c:9f:07:0c:12:62:
|
||||
09:3a:24:e4:36:d9:e9:2c:da:38:d0:73:75:61:d7:c1:6c:26:
|
||||
8b:9b:e0:d5:dc:67:ed:8c:6b:33:d7:74:22:3c:4c:db:b5:8d:
|
||||
2a:ce:2c:0d:08:59:05:09:05:a6:39:9f:b3:67:1b:e2:83:e5:
|
||||
e1:8f:53:f6:67:93:c7:f9:6f:76:44:58:12:e8:3a:d4:97:e7:
|
||||
e9:c0:3e:a8:7a:72:3d:87:53:1f:e5:2c:84:84:e7:9a:9e:7f:
|
||||
66:d9:1f:9b:f5:13:48:b0:4d:14:d1:de:b2:24:d9:78:7d:f5:
|
||||
35:cc:58:19:d1:d2:99:ef:4d:73:f8:1f:89:d4:5a:d0:52:ce:
|
||||
09:f5:b1:46:51:6a:00:8e:3b:cc:6f:63:01:00:99:ed:9d:a6:
|
||||
08:60:cd:32:18:d0:73:e0:58:71:d9:e5:d2:53:d7:8d:d0:ca:
|
||||
e9:5d:2a:0a:0d:5d:55:ec:21:50:17:16:e6:06:4a:cd:5e:de:
|
||||
f7:e0:e9:54
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDhzCCAm+gAwIBAgIBADANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
|
||||
MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
|
||||
MTEwMjEyMTQ0NDAwWhcNMjEwMjEyMTQ0NDAwWjA7MQswCQYDVQQGEwJOTDERMA8G
|
||||
A1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwggEiMA0G
|
||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA3zf8F7vglp0/ht6WMn1EpRagzSHx
|
||||
mdTs6st8GFgIlKXsm8WL3xoemTiZhx57wI053zhdcHgH057Zk+i5clHFzqMwUqny
|
||||
50BwFMtEonILwuVA+T7lpg6z+exKY8C4KQB0nFc7qKUEkHHxvYPZP9al4jwqj+8n
|
||||
YMPGn8u67GB9t+aEMr5P+1gmIgNb1LTV+/Xjli5wwOQuvfwu7uJBVcA0Ln0kcmnL
|
||||
R7EUQIN9Z/SG9jGr8XmksrUuEvmEF/Bibyc+E1ixVA0hmnM3oTDPb5Lc9un8rNsu
|
||||
KNF+AksjoBXyOGVkCeoMbo4bF6BxyLObyavpw/LPh5aPgAIynplYb6LVAgMBAAGj
|
||||
gZUwgZIwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUtFrkpbPe0lL2udWmlQ/rPrzH
|
||||
/f8wYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/rPrzH/f+hP6Q9MDsxCzAJBgNV
|
||||
BAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVz
|
||||
dCBDQYIBADANBgkqhkiG9w0BAQUFAAOCAQEAuP1U2ABUkIslsCfdlc2i94QHHYeJ
|
||||
SsR4EdgHtdciUI5I62J6Mom+Y0dT/7a+8S6MVMCZP6C5NyNyXw1GWY/YR82XTJ8H
|
||||
DBJiCTok5DbZ6SzaONBzdWHXwWwmi5vg1dxn7YxrM9d0IjxM27WNKs4sDQhZBQkF
|
||||
pjmfs2cb4oPl4Y9T9meTx/lvdkRYEug61Jfn6cA+qHpyPYdTH+UshITnmp5/Ztkf
|
||||
m/UTSLBNFNHesiTZeH31NcxYGdHSme9Nc/gfidRa0FLOCfWxRlFqAI47zG9jAQCZ
|
||||
7Z2mCGDNMhjQc+BYcdnl0lPXjdDK6V0qCg1dVewhUBcW5gZKzV7e9+DpVA==
|
||||
-----END CERTIFICATE-----
|
15
tests/data_files/dir2/test-ca2.crt
Normal file
15
tests/data_files/dir2/test-ca2.crt
Normal file
@ -0,0 +1,15 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICUjCCAdegAwIBAgIJAMFD4n5iQ8zoMAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
||||
QyBDQTAeFw0xMzA5MjQxNTQ5NDhaFw0yMzA5MjIxNTQ5NDhaMD4xCzAJBgNVBAYT
|
||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqOBoDCBnTAdBgNVHQ4EFgQUnW0g
|
||||
JEkBPyvLeLUZvH4kydv7NnwwbgYDVR0jBGcwZYAUnW0gJEkBPyvLeLUZvH4kydv7
|
||||
NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UE
|
||||
AxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAwGA1UdEwQFMAMBAf8w
|
||||
CgYIKoZIzj0EAwIDaQAwZgIxAMO0YnNWKJUAfXgSJtJxexn4ipg+kv4znuR50v56
|
||||
t4d0PCu412mUC6Nnd7izvtE2MgIxAP1nnJQjZ8BWukszFQDG48wxCCyci9qpdSMv
|
||||
uCjn8pwUOkABXK8Mss90fzCfCEOtIA==
|
||||
-----END CERTIFICATE-----
|
1
tests/data_files/dir3/Readme
Normal file
1
tests/data_files/dir3/Readme
Normal file
@ -0,0 +1 @@
|
||||
This is just to make sure files that don't parse as certs are ignored.
|
80
tests/data_files/dir3/test-ca.crt
Normal file
80
tests/data_files/dir3/test-ca.crt
Normal file
@ -0,0 +1,80 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Validity
|
||||
Not Before: Feb 12 14:44:00 2011 GMT
|
||||
Not After : Feb 12 14:44:00 2021 GMT
|
||||
Subject: C=NL, O=PolarSSL, CN=PolarSSL Test CA
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (2048 bit)
|
||||
Modulus (2048 bit):
|
||||
00:c0:df:37:fc:17:bb:e0:96:9d:3f:86:de:96:32:
|
||||
7d:44:a5:16:a0:cd:21:f1:99:d4:ec:ea:cb:7c:18:
|
||||
58:08:94:a5:ec:9b:c5:8b:df:1a:1e:99:38:99:87:
|
||||
1e:7b:c0:8d:39:df:38:5d:70:78:07:d3:9e:d9:93:
|
||||
e8:b9:72:51:c5:ce:a3:30:52:a9:f2:e7:40:70:14:
|
||||
cb:44:a2:72:0b:c2:e5:40:f9:3e:e5:a6:0e:b3:f9:
|
||||
ec:4a:63:c0:b8:29:00:74:9c:57:3b:a8:a5:04:90:
|
||||
71:f1:bd:83:d9:3f:d6:a5:e2:3c:2a:8f:ef:27:60:
|
||||
c3:c6:9f:cb:ba:ec:60:7d:b7:e6:84:32:be:4f:fb:
|
||||
58:26:22:03:5b:d4:b4:d5:fb:f5:e3:96:2e:70:c0:
|
||||
e4:2e:bd:fc:2e:ee:e2:41:55:c0:34:2e:7d:24:72:
|
||||
69:cb:47:b1:14:40:83:7d:67:f4:86:f6:31:ab:f1:
|
||||
79:a4:b2:b5:2e:12:f9:84:17:f0:62:6f:27:3e:13:
|
||||
58:b1:54:0d:21:9a:73:37:a1:30:cf:6f:92:dc:f6:
|
||||
e9:fc:ac:db:2e:28:d1:7e:02:4b:23:a0:15:f2:38:
|
||||
65:64:09:ea:0c:6e:8e:1b:17:a0:71:c8:b3:9b:c9:
|
||||
ab:e9:c3:f2:cf:87:96:8f:80:02:32:9e:99:58:6f:
|
||||
a2:d5
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:B4:5A:E4:A5:B3:DE:D2:52:F6:B9:D5:A6:95:0F:EB:3E:BC:C7:FD:FF
|
||||
DirName:/C=NL/O=PolarSSL/CN=PolarSSL Test CA
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
b8:fd:54:d8:00:54:90:8b:25:b0:27:dd:95:cd:a2:f7:84:07:
|
||||
1d:87:89:4a:c4:78:11:d8:07:b5:d7:22:50:8e:48:eb:62:7a:
|
||||
32:89:be:63:47:53:ff:b6:be:f1:2e:8c:54:c0:99:3f:a0:b9:
|
||||
37:23:72:5f:0d:46:59:8f:d8:47:cd:97:4c:9f:07:0c:12:62:
|
||||
09:3a:24:e4:36:d9:e9:2c:da:38:d0:73:75:61:d7:c1:6c:26:
|
||||
8b:9b:e0:d5:dc:67:ed:8c:6b:33:d7:74:22:3c:4c:db:b5:8d:
|
||||
2a:ce:2c:0d:08:59:05:09:05:a6:39:9f:b3:67:1b:e2:83:e5:
|
||||
e1:8f:53:f6:67:93:c7:f9:6f:76:44:58:12:e8:3a:d4:97:e7:
|
||||
e9:c0:3e:a8:7a:72:3d:87:53:1f:e5:2c:84:84:e7:9a:9e:7f:
|
||||
66:d9:1f:9b:f5:13:48:b0:4d:14:d1:de:b2:24:d9:78:7d:f5:
|
||||
35:cc:58:19:d1:d2:99:ef:4d:73:f8:1f:89:d4:5a:d0:52:ce:
|
||||
09:f5:b1:46:51:6a:00:8e:3b:cc:6f:63:01:00:99:ed:9d:a6:
|
||||
08:60:cd:32:18:d0:73:e0:58:71:d9:e5:d2:53:d7:8d:d0:ca:
|
||||
e9:5d:2a:0a:0d:5d:55:ec:21:50:17:16:e6:06:4a:cd:5e:de:
|
||||
f7:e0:e9:54
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDhzCCAm+gAwIBAgIBADANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER
|
||||
MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN
|
||||
MTEwMjEyMTQ0NDAwWhcNMjEwMjEyMTQ0NDAwWjA7MQswCQYDVQQGEwJOTDERMA8G
|
||||
A1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwggEiMA0G
|
||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA3zf8F7vglp0/ht6WMn1EpRagzSHx
|
||||
mdTs6st8GFgIlKXsm8WL3xoemTiZhx57wI053zhdcHgH057Zk+i5clHFzqMwUqny
|
||||
50BwFMtEonILwuVA+T7lpg6z+exKY8C4KQB0nFc7qKUEkHHxvYPZP9al4jwqj+8n
|
||||
YMPGn8u67GB9t+aEMr5P+1gmIgNb1LTV+/Xjli5wwOQuvfwu7uJBVcA0Ln0kcmnL
|
||||
R7EUQIN9Z/SG9jGr8XmksrUuEvmEF/Bibyc+E1ixVA0hmnM3oTDPb5Lc9un8rNsu
|
||||
KNF+AksjoBXyOGVkCeoMbo4bF6BxyLObyavpw/LPh5aPgAIynplYb6LVAgMBAAGj
|
||||
gZUwgZIwDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUtFrkpbPe0lL2udWmlQ/rPrzH
|
||||
/f8wYwYDVR0jBFwwWoAUtFrkpbPe0lL2udWmlQ/rPrzH/f+hP6Q9MDsxCzAJBgNV
|
||||
BAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEZMBcGA1UEAxMQUG9sYXJTU0wgVGVz
|
||||
dCBDQYIBADANBgkqhkiG9w0BAQUFAAOCAQEAuP1U2ABUkIslsCfdlc2i94QHHYeJ
|
||||
SsR4EdgHtdciUI5I62J6Mom+Y0dT/7a+8S6MVMCZP6C5NyNyXw1GWY/YR82XTJ8H
|
||||
DBJiCTok5DbZ6SzaONBzdWHXwWwmi5vg1dxn7YxrM9d0IjxM27WNKs4sDQhZBQkF
|
||||
pjmfs2cb4oPl4Y9T9meTx/lvdkRYEug61Jfn6cA+qHpyPYdTH+UshITnmp5/Ztkf
|
||||
m/UTSLBNFNHesiTZeH31NcxYGdHSme9Nc/gfidRa0FLOCfWxRlFqAI47zG9jAQCZ
|
||||
7Z2mCGDNMhjQc+BYcdnl0lPXjdDK6V0qCg1dVewhUBcW5gZKzV7e9+DpVA==
|
||||
-----END CERTIFICATE-----
|
15
tests/data_files/dir3/test-ca2.crt
Normal file
15
tests/data_files/dir3/test-ca2.crt
Normal file
@ -0,0 +1,15 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICUjCCAdegAwIBAgIJAMFD4n5iQ8zoMAoGCCqGSM49BAMCMD4xCzAJBgNVBAYT
|
||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
||||
QyBDQTAeFw0xMzA5MjQxNTQ5NDhaFw0yMzA5MjIxNTQ5NDhaMD4xCzAJBgNVBAYT
|
||||
Ak5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBF
|
||||
QyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMPaKzRBN1gvh1b+/Im6KUNLTuBu
|
||||
ww5XUzM5WNRStJGVOQsj318XJGJI/BqVKc4sLYfCiFKAr9ZqqyHduNMcbli4yuiy
|
||||
aY7zQa0pw7RfdadHb9UZKVVpmlM7ILRmFmAzHqOBoDCBnTAdBgNVHQ4EFgQUnW0g
|
||||
JEkBPyvLeLUZvH4kydv7NnwwbgYDVR0jBGcwZYAUnW0gJEkBPyvLeLUZvH4kydv7
|
||||
NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xhclNTTDEcMBoGA1UE
|
||||
AxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAwGA1UdEwQFMAMBAf8w
|
||||
CgYIKoZIzj0EAwIDaQAwZgIxAMO0YnNWKJUAfXgSJtJxexn4ipg+kv4znuR50v56
|
||||
t4d0PCu412mUC6Nnd7izvtE2MgIxAP1nnJQjZ8BWukszFQDG48wxCCyci9qpdSMv
|
||||
uCjn8pwUOkABXK8Mss90fzCfCEOtIA==
|
||||
-----END CERTIFICATE-----
|
@ -722,3 +722,15 @@ x509parse_crl:"305c3047020100300d06092a864886f70d01010e0500300f310d300b060355040
|
||||
|
||||
X509 CRL ASN1 (TBSCertList, no entries)
|
||||
x509parse_crl:"30463031020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030300d06092a864886f70d01010e050003020001":"CRL version \: 1\nissuer name \: CN=ABCD\nthis update \: 2009-01-01 00\:00\:00\nnext update \: 0000-00-00 00\:00\:00\nRevoked certificates\:\nsigned using \: RSA with SHA-224\n":0
|
||||
|
||||
X509 CRT parse path #1 (empty dir)
|
||||
x509_crt_parse_path:"data_files/dir0":0:0
|
||||
|
||||
X509 CRT parse path #2 (one cert)
|
||||
x509_crt_parse_path:"data_files/dir1":0:1
|
||||
|
||||
X509 CRT parse path #3 (two certs)
|
||||
x509_crt_parse_path:"data_files/dir2":0:2
|
||||
|
||||
X509 CRT parse path #4 (two certs, one non-cert)
|
||||
x509_crt_parse_path:"data_files/dir3":1:2
|
||||
|
@ -224,6 +224,27 @@ void x509parse_crl( char *crl_data, char *result_str, int result )
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:POLARSSL_FS_IO:POLARSSL_X509_CRT_PARSE_C */
|
||||
void x509_crt_parse_path( char *crt_path, int ret, int nb_crt )
|
||||
{
|
||||
x509_crt chain, *cur;
|
||||
int i;
|
||||
|
||||
x509_crt_init( &chain );
|
||||
|
||||
TEST_ASSERT( x509_crt_parse_path( &chain, crt_path ) == ret );
|
||||
|
||||
/* Check how many certs we got */
|
||||
for( i = 0, cur = &chain; cur != NULL; cur = cur->next )
|
||||
if( cur->raw.p != NULL )
|
||||
i++;
|
||||
|
||||
TEST_ASSERT( i == nb_crt );
|
||||
|
||||
x509_crt_init( &chain );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:POLARSSL_X509_CRT_PARSE_C:POLARSSL_SELF_TEST */
|
||||
void x509_selftest()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user