PolarSSL v1.3.2
config.h
Go to the documentation of this file.
1 
31 #ifndef POLARSSL_CONFIG_H
32 #define POLARSSL_CONFIG_H
33 
34 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
35 #define _CRT_SECURE_NO_DEPRECATE 1
36 #endif
37 
52 //#define POLARSSL_HAVE_INT8
53 
61 //#define POLARSSL_HAVE_INT16
62 
69 #define POLARSSL_HAVE_LONGLONG
70 
85 #define POLARSSL_HAVE_ASM
86 
94 //#define POLARSSL_HAVE_SSE2
95 
105 #define POLARSSL_HAVE_READDIR_R
106 
114 #define POLARSSL_HAVE_TIME
115 /* \} name SECTION: System support */
116 
141 //#define POLARSSL_AES_ALT
142 //#define POLARSSL_ARC4_ALT
143 //#define POLARSSL_BLOWFISH_ALT
144 //#define POLARSSL_CAMELLIA_ALT
145 //#define POLARSSL_DES_ALT
146 //#define POLARSSL_XTEA_ALT
147 //#define POLARSSL_MD2_ALT
148 //#define POLARSSL_MD4_ALT
149 //#define POLARSSL_MD5_ALT
150 //#define POLARSSL_SHA1_ALT
151 //#define POLARSSL_SHA256_ALT
152 //#define POLARSSL_SHA512_ALT
153 
162 //#define POLARSSL_AES_ROM_TABLES
163 
169 #define POLARSSL_CIPHER_MODE_CBC
170 
176 #define POLARSSL_CIPHER_MODE_CFB
177 
183 #define POLARSSL_CIPHER_MODE_CTR
184 
226 #define POLARSSL_CIPHER_PADDING_PKCS7
227 #define POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS
228 #define POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN
229 #define POLARSSL_CIPHER_PADDING_ZEROS
230 
254 #define POLARSSL_ECP_DP_SECP192R1_ENABLED
255 #define POLARSSL_ECP_DP_SECP224R1_ENABLED
256 #define POLARSSL_ECP_DP_SECP256R1_ENABLED
257 #define POLARSSL_ECP_DP_SECP384R1_ENABLED
258 #define POLARSSL_ECP_DP_SECP521R1_ENABLED
259 #define POLARSSL_ECP_DP_BP256R1_ENABLED
260 #define POLARSSL_ECP_DP_BP384R1_ENABLED
261 #define POLARSSL_ECP_DP_BP512R1_ENABLED
262 
272 #define POLARSSL_ECP_NIST_OPTIM
273 
294 #define POLARSSL_KEY_EXCHANGE_PSK_ENABLED
295 
318 #define POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED
319 
338 #define POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED
339 
363 #define POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED
364 
391 #define POLARSSL_KEY_EXCHANGE_RSA_ENABLED
392 
417 #define POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED
418 
442 #define POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED
443 
466 #define POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
467 
477 #define POLARSSL_ERROR_STRERROR_BC
478 
488 #define POLARSSL_ERROR_STRERROR_DUMMY
489 
497 #define POLARSSL_GENPRIME
498 
504 #define POLARSSL_FS_IO
505 
517 //#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
518 
528 //#define POLARSSL_NO_PLATFORM_ENTROPY
529 
542 //#define POLARSSL_MEMORY_DEBUG
543 
554 //#define POLARSSL_MEMORY_BACKTRACE
555 
565 #define POLARSSL_PKCS1_V15
566 
576 #define POLARSSL_PKCS1_V21
577 
586 //#define POLARSSL_RSA_NO_CRT
587 
593 #define POLARSSL_SELF_TEST
594 
607 #define POLARSSL_SSL_ALERT_MESSAGES
608 
623 //#define POLARSSL_SSL_DEBUG_ALL
624 
633 //#define POLARSSL_SSL_HW_RECORD_ACCEL
634 
643 #define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
644 
652 #define POLARSSL_SSL_MAX_FRAGMENT_LENGTH
653 
664 #define POLARSSL_SSL_PROTO_SSL3
665 
676 #define POLARSSL_SSL_PROTO_TLS1
677 
688 #define POLARSSL_SSL_PROTO_TLS1_1
689 
700 #define POLARSSL_SSL_PROTO_TLS1_2
701 
713 #define POLARSSL_SSL_SESSION_TICKETS
714 
722 #define POLARSSL_SSL_SERVER_NAME_INDICATION
723 
731 #define POLARSSL_SSL_TRUNCATED_HMAC
732 
742 //#define POLARSSL_THREADING_ALT
743 
755 //#define POLARSSL_THREADING_DUMMY
756 
766 //#define POLARSSL_THREADING_PTHREAD
767 
776 //#define POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3
777 
786 //#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
787 
802 //#define POLARSSL_ZLIB_SUPPORT
803 /* \} name SECTION: PolarSSL feature support */
804 
873 #define POLARSSL_AES_C
874 
894 #define POLARSSL_ARC4_C
895 
908 #define POLARSSL_ASN1_PARSE_C
909 
922 #define POLARSSL_ASN1_WRITE_C
923 
934 #define POLARSSL_BASE64_C
935 
949 #define POLARSSL_BIGNUM_C
950 
958 #define POLARSSL_BLOWFISH_C
959 
1005 #define POLARSSL_CAMELLIA_C
1006 
1019 #define POLARSSL_CERTS_C
1020 
1031 #define POLARSSL_CIPHER_C
1032 
1045 #define POLARSSL_CTR_DRBG_C
1046 
1059 #define POLARSSL_DEBUG_C
1060 
1083 #define POLARSSL_DES_C
1084 
1097 #define POLARSSL_DHM_C
1098 
1113 #define POLARSSL_ECDH_C
1114 
1128 #define POLARSSL_ECDSA_C
1129 
1141 #define POLARSSL_ECP_C
1142 
1155 #define POLARSSL_ENTROPY_C
1156 
1167 #define POLARSSL_ERROR_C
1168 
1181 #define POLARSSL_GCM_C
1182 
1204 //#define POLARSSL_HAVEGE_C
1205 
1216 #define POLARSSL_MD_C
1217 
1228 //#define POLARSSL_MD2_C
1229 
1240 //#define POLARSSL_MD4_C
1241 
1255 #define POLARSSL_MD5_C
1256 
1269 //#define POLARSSL_MEMORY_C
1270 
1284 //#define POLARSSL_MEMORY_BUFFER_ALLOC_C
1285 
1295 #define POLARSSL_NET_C
1296 
1318 #define POLARSSL_OID_C
1319 
1330 #define POLARSSL_PADLOCK_C
1331 
1344 #define POLARSSL_PBKDF2_C
1345 
1362 #define POLARSSL_PEM_PARSE_C
1363 
1378 #define POLARSSL_PEM_WRITE_C
1379 
1394 #define POLARSSL_PK_C
1395 
1409 #define POLARSSL_PK_PARSE_C
1410 
1423 #define POLARSSL_PK_WRITE_C
1424 
1436 #define POLARSSL_PKCS5_C
1437 
1451 //#define POLARSSL_PKCS11_C
1452 
1467 #define POLARSSL_PKCS12_C
1468 
1485 #define POLARSSL_RSA_C
1486 
1501 #define POLARSSL_SHA1_C
1502 
1519 #define POLARSSL_SHA256_C
1520 
1535 #define POLARSSL_SHA512_C
1536 
1547 #define POLARSSL_SSL_CACHE_C
1548 
1561 #define POLARSSL_SSL_CLI_C
1562 
1575 #define POLARSSL_SSL_SRV_C
1576 
1591 #define POLARSSL_SSL_TLS_C
1592 
1612 //#define POLARSSL_THREADING_C
1613 
1624 #define POLARSSL_TIMING_C
1625 
1635 #define POLARSSL_VERSION_C
1636 
1652 #define POLARSSL_X509_USE_C
1653 
1668 #define POLARSSL_X509_CRT_PARSE_C
1669 
1682 #define POLARSSL_X509_CRL_PARSE_C
1683 
1696 #define POLARSSL_X509_CSR_PARSE_C
1697 
1709 #define POLARSSL_X509_CREATE_C
1710 
1722 #define POLARSSL_X509_CRT_WRITE_C
1723 
1735 #define POLARSSL_X509_CSR_WRITE_C
1736 
1745 #define POLARSSL_XTEA_C
1746 
1747 /* \} name SECTION: PolarSSL modules */
1748 
1767 //#define POLARSSL_CONFIG_OPTIONS /**< Enable config.h module value configuration */
1768 
1769 #if defined(POLARSSL_CONFIG_OPTIONS)
1770 
1771 // MPI / BIGNUM options
1772 //
1773 #define POLARSSL_MPI_WINDOW_SIZE 6
1774 #define POLARSSL_MPI_MAX_SIZE 512
1776 // CTR_DRBG options
1777 //
1778 #define CTR_DRBG_ENTROPY_LEN 48
1779 #define CTR_DRBG_RESEED_INTERVAL 10000
1780 #define CTR_DRBG_MAX_INPUT 256
1781 #define CTR_DRBG_MAX_REQUEST 1024
1782 #define CTR_DRBG_MAX_SEED_INPUT 384
1784 // Entropy options
1785 //
1786 #define ENTROPY_MAX_SOURCES 20
1787 #define ENTROPY_MAX_GATHER 128
1789 // Memory options
1790 #define MEMORY_ALIGN_MULTIPLE 4
1791 #define POLARSSL_MEMORY_STDMALLOC malloc
1792 #define POLARSSL_MEMORY_STDFREE free
1794 // SSL Cache options
1795 //
1796 #define SSL_CACHE_DEFAULT_TIMEOUT 86400
1797 #define SSL_CACHE_DEFAULT_MAX_ENTRIES 50
1799 // SSL options
1800 //
1801 #define SSL_MAX_CONTENT_LEN 16384
1802 #define SSL_DEFAULT_TICKET_LIFETIME 86400
1804 #endif /* POLARSSL_CONFIG_OPTIONS */
1805 
1806 /* \} name */
1807 
1808 /*
1809  * Sanity checks on defines and dependencies
1810  */
1811 #if defined(POLARSSL_CERTS_C) && !defined(POLARSSL_PEM_PARSE_C)
1812 #error "POLARSSL_CERTS_C defined, but not all prerequisites"
1813 #endif
1814 
1815 #if defined(POLARSSL_CTR_DRBG_C) && !defined(POLARSSL_AES_C)
1816 #error "POLARSSL_CTR_DRBG_C defined, but not all prerequisites"
1817 #endif
1818 
1819 #if defined(POLARSSL_DHM_C) && !defined(POLARSSL_BIGNUM_C)
1820 #error "POLARSSL_DHM_C defined, but not all prerequisites"
1821 #endif
1822 
1823 #if defined(POLARSSL_ECDH_C) && !defined(POLARSSL_ECP_C)
1824 #error "POLARSSL_ECDH_C defined, but not all prerequisites"
1825 #endif
1826 
1827 #if defined(POLARSSL_ECDSA_C) && \
1828  ( !defined(POLARSSL_ECP_C) || \
1829  !defined(POLARSSL_ASN1_PARSE_C) || \
1830  !defined(POLARSSL_ASN1_WRITE_C) )
1831 #error "POLARSSL_ECDSA_C defined, but not all prerequisites"
1832 #endif
1833 
1834 #if defined(POLARSSL_ECP_C) && ( !defined(POLARSSL_BIGNUM_C) || ( \
1835  !defined(POLARSSL_ECP_DP_SECP192R1_ENABLED) && \
1836  !defined(POLARSSL_ECP_DP_SECP224R1_ENABLED) && \
1837  !defined(POLARSSL_ECP_DP_SECP256R1_ENABLED) && \
1838  !defined(POLARSSL_ECP_DP_SECP384R1_ENABLED) && \
1839  !defined(POLARSSL_ECP_DP_SECP521R1_ENABLED) && \
1840  !defined(POLARSSL_ECP_DP_BP256R1_ENABLED) && \
1841  !defined(POLARSSL_ECP_DP_BP384R1_ENABLED) && \
1842  !defined(POLARSSL_ECP_DP_BP512R1_ENABLED) ) )
1843 #error "POLARSSL_ECP_C defined, but not all prerequisites"
1844 #endif
1845 
1846 #if defined(POLARSSL_ENTROPY_C) && (!defined(POLARSSL_SHA512_C) && \
1847  !defined(POLARSSL_SHA256_C))
1848 #error "POLARSSL_ENTROPY_C defined, but not all prerequisites"
1849 #endif
1850 #if defined(POLARSSL_ENTROPY_C) && defined(POLARSSL_SHA512_C) && \
1851  defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 64)
1852 #error "CTR_DRBG_ENTROPY_LEN value too high"
1853 #endif
1854 #if defined(POLARSSL_ENTROPY_C) && !defined(POLARSSL_SHA512_C) && \
1855  defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 32)
1856 #error "CTR_DRBG_ENTROPY_LEN value too high"
1857 #endif
1858 
1859 #if defined(POLARSSL_GCM_C) && ( \
1860  !defined(POLARSSL_AES_C) && !defined(POLARSSL_CAMELLIA_C) )
1861 #error "POLARSSL_GCM_C defined, but not all prerequisites"
1862 #endif
1863 
1864 #if defined(POLARSSL_HAVEGE_C) && !defined(POLARSSL_TIMING_C)
1865 #error "POLARSSL_HAVEGE_C defined, but not all prerequisites"
1866 #endif
1867 
1868 #if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(POLARSSL_DHM_C)
1869 #error "POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites"
1870 #endif
1871 
1872 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \
1873  !defined(POLARSSL_ECDH_C)
1874 #error "POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
1875 #endif
1876 
1877 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) && \
1878  ( !defined(POLARSSL_DHM_C) || !defined(POLARSSL_RSA_C) || \
1879  !defined(POLARSSL_X509_CRT_PARSE_C) || !defined(POLARSSL_PKCS1_V15) )
1880 #error "POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites"
1881 #endif
1882 
1883 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \
1884  ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_RSA_C) || \
1885  !defined(POLARSSL_X509_CRT_PARSE_C) || !defined(POLARSSL_PKCS1_V15) )
1886 #error "POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
1887 #endif
1888 
1889 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \
1890  ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_ECDSA_C) || \
1891  !defined(POLARSSL_X509_CRT_PARSE_C) )
1892 #error "POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
1893 #endif
1894 
1895 #if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED) && \
1896  ( !defined(POLARSSL_RSA_C) || !defined(POLARSSL_X509_CRT_PARSE_C) ||\
1897  !defined(POLARSSL_PKCS1_V15) )
1898 #error "POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites"
1899 #endif
1900 
1901 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED) && \
1902  ( !defined(POLARSSL_RSA_C) || !defined(POLARSSL_X509_CRT_PARSE_C) ||\
1903  !defined(POLARSSL_PKCS1_V15) )
1904 #error "POLARSSL_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites"
1905 #endif
1906 
1907 #if defined(POLARSSL_MEMORY_BUFFER_ALLOC_C) && !defined(POLARSSL_MEMORY_C)
1908 #error "POLARSSL_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
1909 #endif
1910 
1911 #if defined(POLARSSL_PBKDF2_C) && !defined(POLARSSL_MD_C)
1912 #error "POLARSSL_PBKDF2_C defined, but not all prerequisites"
1913 #endif
1914 
1915 #if defined(POLARSSL_PEM_PARSE_C) && !defined(POLARSSL_BASE64_C)
1916 #error "POLARSSL_PEM_PARSE_C defined, but not all prerequisites"
1917 #endif
1918 
1919 #if defined(POLARSSL_PEM_WRITE_C) && !defined(POLARSSL_BASE64_C)
1920 #error "POLARSSL_PEM_WRITE_C defined, but not all prerequisites"
1921 #endif
1922 
1923 #if defined(POLARSSL_PK_PARSE_C) && !defined(POLARSSL_PK_C)
1924 #error "POLARSSL_PK_PARSE_C defined, but not all prerequisites"
1925 #endif
1926 
1927 #if defined(POLARSSL_PK_WRITE_C) && !defined(POLARSSL_PK_C)
1928 #error "POLARSSL_PK_WRITE_C defined, but not all prerequisites"
1929 #endif
1930 
1931 #if defined(POLARSSL_PKCS11_C) && !defined(POLARSSL_PK_C)
1932 #error "POLARSSL_PKCS11_C defined, but not all prerequisites"
1933 #endif
1934 
1935 #if defined(POLARSSL_RSA_C) && ( !defined(POLARSSL_BIGNUM_C) || \
1936  !defined(POLARSSL_OID_C) )
1937 #error "POLARSSL_RSA_C defined, but not all prerequisites"
1938 #endif
1939 
1940 #if defined(POLARSSL_SSL_PROTO_SSL3) && ( !defined(POLARSSL_MD5_C) || \
1941  !defined(POLARSSL_SHA1_C) )
1942 #error "POLARSSL_SSL_PROTO_SSL3 defined, but not all prerequisites"
1943 #endif
1944 
1945 #if defined(POLARSSL_SSL_PROTO_TLS1) && ( !defined(POLARSSL_MD5_C) || \
1946  !defined(POLARSSL_SHA1_C) )
1947 #error "POLARSSL_SSL_PROTO_TLS1 defined, but not all prerequisites"
1948 #endif
1949 
1950 #if defined(POLARSSL_SSL_PROTO_TLS1_1) && ( !defined(POLARSSL_MD5_C) || \
1951  !defined(POLARSSL_SHA1_C) )
1952 #error "POLARSSL_SSL_PROTO_TLS1_1 defined, but not all prerequisites"
1953 #endif
1954 
1955 #if defined(POLARSSL_SSL_PROTO_TLS1_2) && ( !defined(POLARSSL_SHA1_C) && \
1956  !defined(POLARSSL_SHA256_C) && !defined(POLARSSL_SHA512_C) )
1957 #error "POLARSSL_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
1958 #endif
1959 
1960 #if defined(POLARSSL_SSL_CLI_C) && !defined(POLARSSL_SSL_TLS_C)
1961 #error "POLARSSL_SSL_CLI_C defined, but not all prerequisites"
1962 #endif
1963 
1964 #if defined(POLARSSL_SSL_TLS_C) && ( !defined(POLARSSL_CIPHER_C) || \
1965  !defined(POLARSSL_MD_C) )
1966 #error "POLARSSL_SSL_TLS_C defined, but not all prerequisites"
1967 #endif
1968 
1969 #if defined(POLARSSL_SSL_SRV_C) && !defined(POLARSSL_SSL_TLS_C)
1970 #error "POLARSSL_SSL_SRV_C defined, but not all prerequisites"
1971 #endif
1972 
1973 #if defined(POLARSSL_SSL_TLS_C) && (!defined(POLARSSL_SSL_PROTO_SSL3) && \
1974  !defined(POLARSSL_SSL_PROTO_TLS1) && !defined(POLARSSL_SSL_PROTO_TLS1_1) && \
1975  !defined(POLARSSL_SSL_PROTO_TLS1_2))
1976 #error "POLARSSL_SSL_TLS_C defined, but no protocols are active"
1977 #endif
1978 
1979 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_SSL3) && \
1980  defined(POLARSSL_SSL_PROTO_TLS1_1) && !defined(POLARSSL_SSL_PROTO_TLS1))
1981 #error "Illegal protocol selection"
1982 #endif
1983 
1984 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_TLS1) && \
1985  defined(POLARSSL_SSL_PROTO_TLS1_2) && !defined(POLARSSL_SSL_PROTO_TLS1_1))
1986 #error "Illegal protocol selection"
1987 #endif
1988 
1989 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_SSL3) && \
1990  defined(POLARSSL_SSL_PROTO_TLS1_2) && (!defined(POLARSSL_SSL_PROTO_TLS1) || \
1991  !defined(POLARSSL_SSL_PROTO_TLS1_1)))
1992 #error "Illegal protocol selection"
1993 #endif
1994 
1995 #if defined(POLARSSL_SSL_SESSION_TICKETS) && defined(POLARSSL_SSL_TLS_C) && \
1996  ( !defined(POLARSSL_AES_C) || !defined(POLARSSL_SHA256_C) || \
1997  !defined(POLARSSL_CIPHER_MODE_CBC) )
1998 #error "POLARSSL_SSL_SESSION_TICKETS_C defined, but not all prerequisites"
1999 #endif
2000 
2001 #if defined(POLARSSL_THREADING_DUMMY)
2002 #if !defined(POLARSSL_THREADING_C) || defined(POLARSSL_THREADING_IMPL)
2003 #error "POLARSSL_THREADING_DUMMY defined, but not all prerequisites"
2004 #endif
2005 #define POLARSSL_THREADING_IMPL
2006 #endif
2007 
2008 #if defined(POLARSSL_THREADING_PTHREAD)
2009 #if !defined(POLARSSL_THREADING_C) || defined(POLARSSL_THREADING_IMPL)
2010 #error "POLARSSL_THREADING_PTHREAD defined, but not all prerequisites"
2011 #endif
2012 #define POLARSSL_THREADING_IMPL
2013 #endif
2014 
2015 #if defined(POLARSSL_THREADING_ALT)
2016 #if !defined(POLARSSL_THREADING_C) || defined(POLARSSL_THREADING_IMPL)
2017 #error "POLARSSL_THREADING_ALT defined, but not all prerequisites"
2018 #endif
2019 #define POLARSSL_THREADING_IMPL
2020 #endif
2021 
2022 #if defined(POLARSSL_THREADING_C) && !defined(POLARSSL_THREADING_IMPL)
2023 #error "POLARSSL_THREADING_C defined, single threading implementation required"
2024 #endif
2025 #undef POLARSSL_THREADING_IMPL
2026 
2027 #if defined(POLARSSL_X509_USE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
2028  !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_PARSE_C) || \
2029  !defined(POLARSSL_PK_PARSE_C) )
2030 #error "POLARSSL_X509_USE_C defined, but not all prerequisites"
2031 #endif
2032 
2033 #if defined(POLARSSL_X509_CREATE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
2034  !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_WRITE_C) || \
2035  !defined(POLARSSL_PK_WRITE_C) )
2036 #error "POLARSSL_X509_CREATE_C defined, but not all prerequisites"
2037 #endif
2038 
2039 #if defined(POLARSSL_X509_CRT_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
2040 #error "POLARSSL_X509_CRT_PARSE_C defined, but not all prerequisites"
2041 #endif
2042 
2043 #if defined(POLARSSL_X509_CRL_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
2044 #error "POLARSSL_X509_CRL_PARSE_C defined, but not all prerequisites"
2045 #endif
2046 
2047 #if defined(POLARSSL_X509_CSR_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
2048 #error "POLARSSL_X509_CSR_PARSE_C defined, but not all prerequisites"
2049 #endif
2050 
2051 #if defined(POLARSSL_X509_CRT_WRITE_C) && ( !defined(POLARSSL_X509_CREATE_C) )
2052 #error "POLARSSL_X509_CRT_WRITE_C defined, but not all prerequisites"
2053 #endif
2054 
2055 #if defined(POLARSSL_X509_CSR_WRITE_C) && ( !defined(POLARSSL_X509_CREATE_C) )
2056 #error "POLARSSL_X509_CSR_WRITE_C defined, but not all prerequisites"
2057 #endif
2058 
2059 #endif /* config.h */