<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>PolarSSL v1.3.8: x509.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">PolarSSL v1.3.8 </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6a9bbd12bf4e19a18c45e270f8fae3fd.html">include</a></li><li class="navelem"><a class="el" href="dir_04272d44da4745cf8b8bfc767d6c6523.html">polarssl</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">x509.h</div> </div> </div><!--header--> <div class="contents"> <a href="x509_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifndef POLARSSL_X509_H</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor">#define POLARSSL_X509_H</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#if !defined(POLARSSL_CONFIG_FILE)</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="config_8h.html">config.h</a>"</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#include POLARSSL_CONFIG_FILE</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="asn1_8h.html">asn1.h</a>"</span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="pk_8h.html">pk.h</a>"</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#if defined(POLARSSL_RSA_C)</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="rsa_8h.html">rsa.h</a>"</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="group__x509__module.html#gaa1ff85472d1f06bac7aadef70dbc404f"> 52</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_FEATURE_UNAVAILABLE -0x2080 </span></div> <div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga55c4c1d62914da0514be0e48c02a91f6"> 53</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_UNKNOWN_OID -0x2100 </span></div> <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="group__x509__module.html#gabbb0baf5d3e9281b059e3177138f4eaf"> 54</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_FORMAT -0x2180 </span></div> <div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga7fb5d1b9bb950f41cf57a6e156a318ff"> 55</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_VERSION -0x2200 </span></div> <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga5dfc778ab9a1d46f8c31296050fb0e84"> 56</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_SERIAL -0x2280 </span></div> <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="group__x509__module.html#gac2a509391d78d52ac972979a8c149aaa"> 57</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_ALG -0x2300 </span></div> <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga3cf47af101f614432b19192a7a239fe3"> 58</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_NAME -0x2380 </span></div> <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga4c0033b4b5ea413f79b133b9172d967b"> 59</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_DATE -0x2400 </span></div> <div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga56da6070740e4f0e102fd473dbe54b8c"> 60</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_SIGNATURE -0x2480 </span></div> <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="group__x509__module.html#gaefb797397f3fc132f0d825b77b10ff47"> 61</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_INVALID_EXTENSIONS -0x2500 </span></div> <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga04dc192b55781ef24910bd1dfa53e6f3"> 62</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_UNKNOWN_VERSION -0x2580 </span></div> <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga87606217fba12ea921df66f51ad8c2e9"> 63</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_UNKNOWN_SIG_ALG -0x2600 </span></div> <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="group__x509__module.html#gac00b6c62043eca7ddf8809888961454b"> 64</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_SIG_MISMATCH -0x2680 </span></div> <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga2712a2708993f706e6c3f3716ec1f275"> 65</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_CERT_VERIFY_FAILED -0x2700 </span></div> <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga2a86f0efb25d083307eadf96585d4222"> 66</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_CERT_UNKNOWN_FORMAT -0x2780 </span></div> <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga59ea8fbabf8eae3f006824230bc27d6c"> 67</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_BAD_INPUT_DATA -0x2800 </span></div> <div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga60a90a6a7f6ee7a23c186d6870d8e4c8"> 68</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_MALLOC_FAILED -0x2880 </span></div> <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga87e65fdadeba914a5555ef09ab35c48b"> 69</a></span> <span class="preprocessor">#define POLARSSL_ERR_X509_FILE_IO_ERROR -0x2900 </span></div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span><span class="comment">/* \} name */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga64e936014215ef18f026ff101b6f8369"> 76</a></span> <span class="preprocessor">#define BADCERT_EXPIRED 0x01 </span></div> <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga4ecb1ad0da0f9d6bb0017e091ea4ee2a"> 77</a></span> <span class="preprocessor">#define BADCERT_REVOKED 0x02 </span></div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__x509__module.html#gacfafc04b8cd60bd1819cf41bc78a24de"> 78</a></span> <span class="preprocessor">#define BADCERT_CN_MISMATCH 0x04 </span></div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga71c9686585580f77964a3653e147ad0a"> 79</a></span> <span class="preprocessor">#define BADCERT_NOT_TRUSTED 0x08 </span></div> <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="group__x509__module.html#gad3e80bd3df035edaa81dcd44da586153"> 80</a></span> <span class="preprocessor">#define BADCRL_NOT_TRUSTED 0x10 </span></div> <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group__x509__module.html#gad5d4bfa3090cb468e734596094f39a1f"> 81</a></span> <span class="preprocessor">#define BADCRL_EXPIRED 0x20 </span></div> <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga99f857088210c1d15a11039026830a0d"> 82</a></span> <span class="preprocessor">#define BADCERT_MISSING 0x40 </span></div> <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga70f5b5dce099c759ac5a49489587c385"> 83</a></span> <span class="preprocessor">#define BADCERT_SKIP_VERIFY 0x80 </span></div> <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="group__x509__module.html#gabeaea946ef3512d85af10fd3f16b2b5f"> 84</a></span> <span class="preprocessor">#define BADCERT_OTHER 0x0100 </span></div> <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga277aa22d31ad26e5256ec96e589bd5b9"> 85</a></span> <span class="preprocessor">#define BADCERT_FUTURE 0x0200 </span></div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga8dbe1ef936bb47a2f13759e7e4380be0"> 86</a></span> <span class="preprocessor">#define BADCRL_FUTURE 0x0400 </span></div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"></span><span class="comment">/* \} name */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"></span><span class="comment">/* \} addtogroup x509_module */</span></div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/*</span></div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * X.509 v3 Key Usage Extension flags</span></div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> */</span></div> <div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="x509_8h.html#a34abc95bf0fa471e18d1dd3b295492f6"> 93</a></span> <span class="preprocessor">#define KU_DIGITAL_SIGNATURE (0x80) </span><span class="comment">/* bit 0 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="x509_8h.html#aa97f2a6fc340bc3a22004fe7a245a1c6"> 94</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_NON_REPUDIATION (0x40) </span><span class="comment">/* bit 1 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="x509_8h.html#a64f1e2e3dd57557fdad2ca9c07f63ec4"> 95</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_KEY_ENCIPHERMENT (0x20) </span><span class="comment">/* bit 2 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="x509_8h.html#a5d7af2d0048312e611b8af54eabd064a"> 96</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_DATA_ENCIPHERMENT (0x10) </span><span class="comment">/* bit 3 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="x509_8h.html#a349ec0e59749ed5ca9ac9e030c06049f"> 97</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_KEY_AGREEMENT (0x08) </span><span class="comment">/* bit 4 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="x509_8h.html#a5da71e896dc465af98e4004ea40eb230"> 98</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_KEY_CERT_SIGN (0x04) </span><span class="comment">/* bit 5 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="x509_8h.html#a14185258174d3ae78dbccd55de36b0a8"> 99</a></span> <span class="preprocessor"></span><span class="preprocessor">#define KU_CRL_SIGN (0x02) </span><span class="comment">/* bit 6 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">/*</span></div> <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment"> * Netscape certificate types</span></div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> * (http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn3.html)</span></div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> */</span></div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="x509_8h.html#a1720f538cb0b7efa97d134ac6692192a"> 106</a></span> <span class="preprocessor">#define NS_CERT_TYPE_SSL_CLIENT (0x80) </span><span class="comment">/* bit 0 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="x509_8h.html#a725ac67650ba113b8a8938e1f9cdb073"> 107</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_SSL_SERVER (0x40) </span><span class="comment">/* bit 1 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="x509_8h.html#aa06876013b3e2b9098529e18e17e96e9"> 108</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_EMAIL (0x20) </span><span class="comment">/* bit 2 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="x509_8h.html#ab74494b8a65972aebb605bdd9680d545"> 109</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_OBJECT_SIGNING (0x10) </span><span class="comment">/* bit 3 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="x509_8h.html#a387e2b15df37666dfd95646bf647dae1"> 110</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_RESERVED (0x08) </span><span class="comment">/* bit 4 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="x509_8h.html#a9f5cdaf33a0371bdd6893f7c36acf8ef"> 111</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_SSL_CA (0x04) </span><span class="comment">/* bit 5 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="x509_8h.html#a62f25762eb59728f92b07d61ae2057a5"> 112</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_EMAIL_CA (0x02) </span><span class="comment">/* bit 6 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="x509_8h.html#a57c9011afb5ab5f02020e1e31b43b871"> 113</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NS_CERT_TYPE_OBJECT_SIGNING_CA (0x01) </span><span class="comment">/* bit 7 */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment">/*</span></div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> * X.509 extension types</span></div> <div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> *</span></div> <div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * Comments refer to the status for using certificates. Status can be</span></div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> * different for writing certificates or reading CRLs or CSRs.</span></div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> */</span></div> <div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="x509_8h.html#a428fea8893da65b2dcfc971ead294c67"> 121</a></span> <span class="preprocessor">#define EXT_AUTHORITY_KEY_IDENTIFIER (1 << 0)</span></div> <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="x509_8h.html#af918b482ca119bfc67935caa07d3e248"> 122</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_SUBJECT_KEY_IDENTIFIER (1 << 1)</span></div> <div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="x509_8h.html#ac59433ad6f1280708a8409937133d4c1"> 123</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_KEY_USAGE (1 << 2) </span><span class="comment">/* Parsed but not used */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="x509_8h.html#a89bed13c425f192607aac9712adc5655"> 124</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_CERTIFICATE_POLICIES (1 << 3)</span></div> <div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="x509_8h.html#ad264a8f9ed49bc0a40cf21ee7213216e"> 125</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_POLICY_MAPPINGS (1 << 4)</span></div> <div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="x509_8h.html#aa86a67d1a8363fd5bbdaba523163a269"> 126</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_SUBJECT_ALT_NAME (1 << 5) </span><span class="comment">/* Supported (DNS) */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="x509_8h.html#a1e3ae3cafc339ef7ac83aa01b7aec3b1"> 127</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_ISSUER_ALT_NAME (1 << 6)</span></div> <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="x509_8h.html#a6513410277596ad6cfdaafe753e9002f"> 128</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_SUBJECT_DIRECTORY_ATTRS (1 << 7)</span></div> <div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="x509_8h.html#a7813d9ed1f4ee1f122782d31f459d989"> 129</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_BASIC_CONSTRAINTS (1 << 8) </span><span class="comment">/* Supported */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="x509_8h.html#aafe3736b82c3f5d6343379bb6a8ec000"> 130</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_NAME_CONSTRAINTS (1 << 9)</span></div> <div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="x509_8h.html#a24e47a2fb35635684cc6e33c1543faa0"> 131</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_POLICY_CONSTRAINTS (1 << 10)</span></div> <div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="x509_8h.html#a97bef6a8c3abaf7755b95d997f9af98e"> 132</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_EXTENDED_KEY_USAGE (1 << 11) </span><span class="comment">/* Parsed but not used */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="x509_8h.html#a00ae4f8608f1369a993c14a09909254e"> 133</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_CRL_DISTRIBUTION_POINTS (1 << 12)</span></div> <div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="x509_8h.html#a0b7304f4fdd5fa11b58018cffabe1d98"> 134</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_INIHIBIT_ANYPOLICY (1 << 13)</span></div> <div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="x509_8h.html#a789934a5dcd8b306a887e4b1445e4fcc"> 135</a></span> <span class="preprocessor"></span><span class="preprocessor">#define EXT_FRESHEST_CRL (1 << 14)</span></div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="x509_8h.html#ab82dcddf27656a1bc2efacc9589838db"> 137</a></span> <span class="preprocessor">#define EXT_NS_CERT_TYPE (1 << 16) </span><span class="comment">/* Parsed (and then ?) */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">/*</span></div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment"> * Storage format identifiers</span></div> <div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment"> * Recognized formats: PEM and DER</span></div> <div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"> */</span></div> <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="x509_8h.html#a6ca31be06f89a3f5c8abc93654460a77"> 143</a></span> <span class="preprocessor">#define X509_FORMAT_DER 1</span></div> <div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="x509_8h.html#ae61b2a208043d2d1cfdfea019a15c59b"> 144</a></span> <span class="preprocessor"></span><span class="preprocessor">#define X509_FORMAT_PEM 2</span></div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga4c222d5841d84a018a77b3f8419141fd"> 162</a></span> <span class="keyword">typedef</span> <a class="code" href="struct__asn1__buf.html">asn1_buf</a> <a class="code" href="group__x509__module.html#ga4c222d5841d84a018a77b3f8419141fd">x509_buf</a>;</div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div> <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga937771cfbc29ed68fa7a1f000bdaada7"> 167</a></span> <span class="keyword">typedef</span> <a class="code" href="struct__asn1__bitstring.html">asn1_bitstring</a> <a class="code" href="group__x509__module.html#ga937771cfbc29ed68fa7a1f000bdaada7">x509_bitstring</a>;</div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div> <div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="group__x509__module.html#gae9790f007179523cf0a054090484e5bb"> 173</a></span> <span class="keyword">typedef</span> <a class="code" href="struct__asn1__named__data.html">asn1_named_data</a> <a class="code" href="group__x509__module.html#gae9790f007179523cf0a054090484e5bb">x509_name</a>;</div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div> <div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="group__x509__module.html#ga5e8f63c6d3abf6955eb6190a19360fca"> 178</a></span> <span class="keyword">typedef</span> <a class="code" href="struct__asn1__sequence.html">asn1_sequence</a> <a class="code" href="group__x509__module.html#ga5e8f63c6d3abf6955eb6190a19360fca">x509_sequence</a>;</div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div> <div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="struct__x509__time.html"> 181</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__x509__time.html">_x509_time</a></div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div> <div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="struct__x509__time.html#a26ed64caf8b2d05ecb82c0ed68113bc5"> 183</a></span>  <span class="keywordtype">int</span> <a class="code" href="struct__x509__time.html#a26ed64caf8b2d05ecb82c0ed68113bc5">year</a>, <a class="code" href="struct__x509__time.html#aa89934c680dcbbb1a74a6ff3f83da264">mon</a>, <a class="code" href="struct__x509__time.html#a20c84d21414653a33595ea4563c49b46">day</a>; </div> <div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="struct__x509__time.html#a61b09ab58c9d829c4a258ac1a63fff3d"> 184</a></span>  <span class="keywordtype">int</span> <a class="code" href="struct__x509__time.html#a52a420b0bb4513b257c239f967187d97">hour</a>, <a class="code" href="struct__x509__time.html#a7ef645e874ef1dac4767713f131f6425">min</a>, <a class="code" href="struct__x509__time.html#a61b09ab58c9d829c4a258ac1a63fff3d">sec</a>; </div> <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> }</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <a class="code" href="group__x509__module.html#ga51a234c4cead82f9678485379c5de825">x509_time</a>;</div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a4efdfbe50891c916ade3170b91faeebc">x509_dn_gets</a>( <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> x509_name *dn );</div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#acd36d794a8edbbf66fe2e267d8804854">x509_serial_gets</a>( <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> x509_buf *serial );</div> <div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div> <div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="x509_8h.html#aa68957e4f8e9ca8227151442d487d49c">x509_oid_get_description</a>( x509_buf *oid );</div> <div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#afa4caf80057d82c702984da1ea7649b9">x509_oid_get_numeric_string</a>( <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> size, x509_buf *oid );</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div> <div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a0409eb86cad22e4ecf3b31585bd1aca8">x509_time_expired</a>( <span class="keyword">const</span> <a class="code" href="struct__x509__time.html">x509_time</a> *time );</div> <div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div> <div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a3ce3d173dfc128c33f1df4e3250821d2">x509_time_future</a>( <span class="keyword">const</span> <a class="code" href="struct__x509__time.html">x509_time</a> *time );</div> <div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a4a038a644bb6f527315bcfdea826bf79">x509_self_test</a>( <span class="keywordtype">int</span> verbose );</div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div> <div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">/*</span></div> <div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> * Internal module functions. You probably do not want to use these unless you</span></div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> * know you do.</span></div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment"> */</span></div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#adda289450390e9ed0090e7c0ec6fa299">x509_get_name</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  x509_name *cur );</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#ad67eae159411772953e5459ec4932cac">x509_get_alg_null</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  x509_buf *alg );</div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a159024a3c36c9088b4af1437f937f4fe">x509_get_alg</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  x509_buf *alg, x509_buf *params );</div> <div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="preprocessor">#if defined(POLARSSL_X509_RSASSA_PSS_SUPPORT)</span></div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="x509_8h.html#ade4172d01a9d1b9ae86e1ec08606bc68">x509_get_rsassa_pss_params</a>( <span class="keyword">const</span> x509_buf *params,</div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> *md_alg, <a class="code" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> *mgf_md,</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordtype">int</span> *salt_len );</div> <div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="preprocessor"></span><span class="keywordtype">int</span> <a class="code" href="x509_8h.html#afef25b57c521744eb0edcb08e38521c5">x509_get_sig</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end, x509_buf *sig );</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#acb386c6cbfb8bd9160b34ad6a0430a87">x509_get_sig_alg</a>( <span class="keyword">const</span> x509_buf *sig_oid, <span class="keyword">const</span> x509_buf *sig_params,</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> *md_alg, <a class="code" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> *pk_alg,</div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">void</span> **sig_opts );</div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#ace702be6b8cff538d3bfef72d2591741">x509_get_time</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="struct__x509__time.html">x509_time</a> *time );</div> <div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#af42889af2745403af6f110aef5e4c1aa">x509_get_serial</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  x509_buf *serial );</div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a883f07d87bb5745b334dce6018828536">x509_get_ext</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *end,</div> <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  x509_buf *ext, <span class="keywordtype">int</span> tag );</div> <div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a13d8b17b30fcdaa5038082b89e72957a">x509_load_file</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **buf, <span class="keywordtype">size_t</span> *n );</div> <div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#ab5d6d2b4ddcd6caf33c2cb05af506ff5">x509_sig_alg_gets</a>( <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> x509_buf *sig_oid,</div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a> pk_alg, <a class="code" href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a> md_alg,</div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> <span class="keywordtype">void</span> *sig_opts );</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a1e7659be2b5cf7fb32709dbe72f0cf45">x509_key_size_helper</a>( <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> size, <span class="keyword">const</span> <span class="keywordtype">char</span> *name );</div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a3666ef0b2efcea9f796934838b77e22d">x509_string_to_names</a>( <a class="code" href="struct__asn1__named__data.html">asn1_named_data</a> **head, <span class="keyword">const</span> <span class="keywordtype">char</span> *name );</div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#a72f0ed4616b935607f85c2c4b69edc6c">x509_set_extension</a>( <a class="code" href="struct__asn1__named__data.html">asn1_named_data</a> **head, <span class="keyword">const</span> <span class="keywordtype">char</span> *oid, <span class="keywordtype">size_t</span> oid_len,</div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordtype">int</span> critical, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *val,</div> <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordtype">size_t</span> val_len );</div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#aed86dcaf162afcf4aa56915e96cfd34d">x509_write_extensions</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *start,</div> <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="struct__asn1__named__data.html">asn1_named_data</a> *first );</div> <div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#aa8f68655e53994c9d72f31c3820b4532">x509_write_names</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *start,</div> <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="struct__asn1__named__data.html">asn1_named_data</a> *first );</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordtype">int</span> <a class="code" href="x509_8h.html#ab29278d4fbc4426748e95ac960d7c1fa">x509_write_sig</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **p, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *start,</div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *oid, <span class="keywordtype">size_t</span> oid_len,</div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sig, <span class="keywordtype">size_t</span> size );</div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="preprocessor">#endif </span><span class="comment">/* x509.h */</span><span class="preprocessor"></span></div> <div class="ttc" id="x509_8h_html_a0409eb86cad22e4ecf3b31585bd1aca8"><div class="ttname"><a href="x509_8h.html#a0409eb86cad22e4ecf3b31585bd1aca8">x509_time_expired</a></div><div class="ttdeci">int x509_time_expired(const x509_time *time)</div><div class="ttdoc">Check a given x509_time against the system time and check if it is not expired. </div></div> <div class="ttc" id="x509_8h_html_a72f0ed4616b935607f85c2c4b69edc6c"><div class="ttname"><a href="x509_8h.html#a72f0ed4616b935607f85c2c4b69edc6c">x509_set_extension</a></div><div class="ttdeci">int x509_set_extension(asn1_named_data **head, const char *oid, size_t oid_len, int critical, const unsigned char *val, size_t val_len)</div></div> <div class="ttc" id="x509_8h_html_a3666ef0b2efcea9f796934838b77e22d"><div class="ttname"><a href="x509_8h.html#a3666ef0b2efcea9f796934838b77e22d">x509_string_to_names</a></div><div class="ttdeci">int x509_string_to_names(asn1_named_data **head, const char *name)</div></div> <div class="ttc" id="group__x509__module_html_ga51a234c4cead82f9678485379c5de825"><div class="ttname"><a href="group__x509__module.html#ga51a234c4cead82f9678485379c5de825">x509_time</a></div><div class="ttdeci">struct _x509_time x509_time</div><div class="ttdoc">Container for date and time (precision in seconds). </div></div> <div class="ttc" id="struct__x509__time_html_a61b09ab58c9d829c4a258ac1a63fff3d"><div class="ttname"><a href="struct__x509__time.html#a61b09ab58c9d829c4a258ac1a63fff3d">_x509_time::sec</a></div><div class="ttdeci">int sec</div><div class="ttdoc">Time. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00184">x509.h:184</a></div></div> <div class="ttc" id="x509_8h_html_adda289450390e9ed0090e7c0ec6fa299"><div class="ttname"><a href="x509_8h.html#adda289450390e9ed0090e7c0ec6fa299">x509_get_name</a></div><div class="ttdeci">int x509_get_name(unsigned char **p, const unsigned char *end, x509_name *cur)</div></div> <div class="ttc" id="x509_8h_html_af42889af2745403af6f110aef5e4c1aa"><div class="ttname"><a href="x509_8h.html#af42889af2745403af6f110aef5e4c1aa">x509_get_serial</a></div><div class="ttdeci">int x509_get_serial(unsigned char **p, const unsigned char *end, x509_buf *serial)</div></div> <div class="ttc" id="x509_8h_html_acb386c6cbfb8bd9160b34ad6a0430a87"><div class="ttname"><a href="x509_8h.html#acb386c6cbfb8bd9160b34ad6a0430a87">x509_get_sig_alg</a></div><div class="ttdeci">int x509_get_sig_alg(const x509_buf *sig_oid, const x509_buf *sig_params, md_type_t *md_alg, pk_type_t *pk_alg, void **sig_opts)</div></div> <div class="ttc" id="x509_8h_html_a1e7659be2b5cf7fb32709dbe72f0cf45"><div class="ttname"><a href="x509_8h.html#a1e7659be2b5cf7fb32709dbe72f0cf45">x509_key_size_helper</a></div><div class="ttdeci">int x509_key_size_helper(char *buf, size_t size, const char *name)</div></div> <div class="ttc" id="x509_8h_html_aa68957e4f8e9ca8227151442d487d49c"><div class="ttname"><a href="x509_8h.html#aa68957e4f8e9ca8227151442d487d49c">x509_oid_get_description</a></div><div class="ttdeci">const char * x509_oid_get_description(x509_buf *oid)</div><div class="ttdoc">Give an known OID, return its descriptive string. </div></div> <div class="ttc" id="x509_8h_html_ad67eae159411772953e5459ec4932cac"><div class="ttname"><a href="x509_8h.html#ad67eae159411772953e5459ec4932cac">x509_get_alg_null</a></div><div class="ttdeci">int x509_get_alg_null(unsigned char **p, const unsigned char *end, x509_buf *alg)</div></div> <div class="ttc" id="struct__x509__time_html"><div class="ttname"><a href="struct__x509__time.html">_x509_time</a></div><div class="ttdoc">Container for date and time (precision in seconds). </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00181">x509.h:181</a></div></div> <div class="ttc" id="config_8h_html"><div class="ttname"><a href="config_8h.html">config.h</a></div><div class="ttdoc">Configuration options (set of defines) </div></div> <div class="ttc" id="x509_8h_html_afef25b57c521744eb0edcb08e38521c5"><div class="ttname"><a href="x509_8h.html#afef25b57c521744eb0edcb08e38521c5">x509_get_sig</a></div><div class="ttdeci">int x509_get_sig(unsigned char **p, const unsigned char *end, x509_buf *sig)</div></div> <div class="ttc" id="struct__asn1__bitstring_html"><div class="ttname"><a href="struct__asn1__bitstring.html">_asn1_bitstring</a></div><div class="ttdoc">Container for ASN1 bit strings. </div><div class="ttdef"><b>Definition:</b> <a href="asn1_8h_source.html#l00135">asn1.h:135</a></div></div> <div class="ttc" id="pk_8h_html"><div class="ttname"><a href="pk_8h.html">pk.h</a></div><div class="ttdoc">Public Key abstraction layer. </div></div> <div class="ttc" id="group__x509__module_html_gae9790f007179523cf0a054090484e5bb"><div class="ttname"><a href="group__x509__module.html#gae9790f007179523cf0a054090484e5bb">x509_name</a></div><div class="ttdeci">asn1_named_data x509_name</div><div class="ttdoc">Container for ASN1 named information objects. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00173">x509.h:173</a></div></div> <div class="ttc" id="x509_8h_html_a159024a3c36c9088b4af1437f937f4fe"><div class="ttname"><a href="x509_8h.html#a159024a3c36c9088b4af1437f937f4fe">x509_get_alg</a></div><div class="ttdeci">int x509_get_alg(unsigned char **p, const unsigned char *end, x509_buf *alg, x509_buf *params)</div></div> <div class="ttc" id="md_8h_html_af1fbbb67afa0daee4090cde8864e0b68"><div class="ttname"><a href="md_8h.html#af1fbbb67afa0daee4090cde8864e0b68">md_type_t</a></div><div class="ttdeci">md_type_t</div><div class="ttdef"><b>Definition:</b> <a href="md_8h_source.html#l00051">md.h:51</a></div></div> <div class="ttc" id="struct__x509__time_html_a52a420b0bb4513b257c239f967187d97"><div class="ttname"><a href="struct__x509__time.html#a52a420b0bb4513b257c239f967187d97">_x509_time::hour</a></div><div class="ttdeci">int hour</div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00184">x509.h:184</a></div></div> <div class="ttc" id="struct__x509__time_html_aa89934c680dcbbb1a74a6ff3f83da264"><div class="ttname"><a href="struct__x509__time.html#aa89934c680dcbbb1a74a6ff3f83da264">_x509_time::mon</a></div><div class="ttdeci">int mon</div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00183">x509.h:183</a></div></div> <div class="ttc" id="struct__asn1__sequence_html"><div class="ttname"><a href="struct__asn1__sequence.html">_asn1_sequence</a></div><div class="ttdoc">Container for a sequence of ASN.1 items. </div><div class="ttdef"><b>Definition:</b> <a href="asn1_8h_source.html#l00146">asn1.h:146</a></div></div> <div class="ttc" id="x509_8h_html_aa8f68655e53994c9d72f31c3820b4532"><div class="ttname"><a href="x509_8h.html#aa8f68655e53994c9d72f31c3820b4532">x509_write_names</a></div><div class="ttdeci">int x509_write_names(unsigned char **p, unsigned char *start, asn1_named_data *first)</div></div> <div class="ttc" id="x509_8h_html_ace702be6b8cff538d3bfef72d2591741"><div class="ttname"><a href="x509_8h.html#ace702be6b8cff538d3bfef72d2591741">x509_get_time</a></div><div class="ttdeci">int x509_get_time(unsigned char **p, const unsigned char *end, x509_time *time)</div></div> <div class="ttc" id="asn1_8h_html"><div class="ttname"><a href="asn1_8h.html">asn1.h</a></div><div class="ttdoc">Generic ASN.1 parsing. </div></div> <div class="ttc" id="x509_8h_html_a4efdfbe50891c916ade3170b91faeebc"><div class="ttname"><a href="x509_8h.html#a4efdfbe50891c916ade3170b91faeebc">x509_dn_gets</a></div><div class="ttdeci">int x509_dn_gets(char *buf, size_t size, const x509_name *dn)</div><div class="ttdoc">Store the certificate DN in printable form into buf; no more than size characters will be written...</div></div> <div class="ttc" id="x509_8h_html_aed86dcaf162afcf4aa56915e96cfd34d"><div class="ttname"><a href="x509_8h.html#aed86dcaf162afcf4aa56915e96cfd34d">x509_write_extensions</a></div><div class="ttdeci">int x509_write_extensions(unsigned char **p, unsigned char *start, asn1_named_data *first)</div></div> <div class="ttc" id="x509_8h_html_afa4caf80057d82c702984da1ea7649b9"><div class="ttname"><a href="x509_8h.html#afa4caf80057d82c702984da1ea7649b9">x509_oid_get_numeric_string</a></div><div class="ttdeci">int x509_oid_get_numeric_string(char *buf, size_t size, x509_buf *oid)</div><div class="ttdoc">Give an OID, return a string version of its OID number. </div></div> <div class="ttc" id="struct__x509__time_html_a20c84d21414653a33595ea4563c49b46"><div class="ttname"><a href="struct__x509__time.html#a20c84d21414653a33595ea4563c49b46">_x509_time::day</a></div><div class="ttdeci">int day</div><div class="ttdoc">Date. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00183">x509.h:183</a></div></div> <div class="ttc" id="pk_8h_html_afca3aa33cb1f34742a7ee3fd8ccec9ca"><div class="ttname"><a href="pk_8h.html#afca3aa33cb1f34742a7ee3fd8ccec9ca">pk_type_t</a></div><div class="ttdeci">pk_type_t</div><div class="ttdoc">Public key types. </div><div class="ttdef"><b>Definition:</b> <a href="pk_8h_source.html#l00095">pk.h:95</a></div></div> <div class="ttc" id="x509_8h_html_ab5d6d2b4ddcd6caf33c2cb05af506ff5"><div class="ttname"><a href="x509_8h.html#ab5d6d2b4ddcd6caf33c2cb05af506ff5">x509_sig_alg_gets</a></div><div class="ttdeci">int x509_sig_alg_gets(char *buf, size_t size, const x509_buf *sig_oid, pk_type_t pk_alg, md_type_t md_alg, const void *sig_opts)</div></div> <div class="ttc" id="x509_8h_html_a13d8b17b30fcdaa5038082b89e72957a"><div class="ttname"><a href="x509_8h.html#a13d8b17b30fcdaa5038082b89e72957a">x509_load_file</a></div><div class="ttdeci">int x509_load_file(const char *path, unsigned char **buf, size_t *n)</div></div> <div class="ttc" id="x509_8h_html_ade4172d01a9d1b9ae86e1ec08606bc68"><div class="ttname"><a href="x509_8h.html#ade4172d01a9d1b9ae86e1ec08606bc68">x509_get_rsassa_pss_params</a></div><div class="ttdeci">int x509_get_rsassa_pss_params(const x509_buf *params, md_type_t *md_alg, md_type_t *mgf_md, int *salt_len)</div></div> <div class="ttc" id="struct__asn1__named__data_html"><div class="ttname"><a href="struct__asn1__named__data.html">_asn1_named_data</a></div><div class="ttdoc">Container for a sequence or list of &#39;named&#39; ASN.1 data items. </div><div class="ttdef"><b>Definition:</b> <a href="asn1_8h_source.html#l00156">asn1.h:156</a></div></div> <div class="ttc" id="struct__asn1__buf_html"><div class="ttname"><a href="struct__asn1__buf.html">_asn1_buf</a></div><div class="ttdoc">Type-length-value structure that allows for ASN1 using DER. </div><div class="ttdef"><b>Definition:</b> <a href="asn1_8h_source.html#l00124">asn1.h:124</a></div></div> <div class="ttc" id="rsa_8h_html"><div class="ttname"><a href="rsa_8h.html">rsa.h</a></div><div class="ttdoc">The RSA public-key cryptosystem. </div></div> <div class="ttc" id="struct__x509__time_html_a26ed64caf8b2d05ecb82c0ed68113bc5"><div class="ttname"><a href="struct__x509__time.html#a26ed64caf8b2d05ecb82c0ed68113bc5">_x509_time::year</a></div><div class="ttdeci">int year</div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00183">x509.h:183</a></div></div> <div class="ttc" id="x509_8h_html_a883f07d87bb5745b334dce6018828536"><div class="ttname"><a href="x509_8h.html#a883f07d87bb5745b334dce6018828536">x509_get_ext</a></div><div class="ttdeci">int x509_get_ext(unsigned char **p, const unsigned char *end, x509_buf *ext, int tag)</div></div> <div class="ttc" id="struct__x509__time_html_a7ef645e874ef1dac4767713f131f6425"><div class="ttname"><a href="struct__x509__time.html#a7ef645e874ef1dac4767713f131f6425">_x509_time::min</a></div><div class="ttdeci">int min</div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00184">x509.h:184</a></div></div> <div class="ttc" id="x509_8h_html_ab29278d4fbc4426748e95ac960d7c1fa"><div class="ttname"><a href="x509_8h.html#ab29278d4fbc4426748e95ac960d7c1fa">x509_write_sig</a></div><div class="ttdeci">int x509_write_sig(unsigned char **p, unsigned char *start, const char *oid, size_t oid_len, unsigned char *sig, size_t size)</div></div> <div class="ttc" id="x509_8h_html_a3ce3d173dfc128c33f1df4e3250821d2"><div class="ttname"><a href="x509_8h.html#a3ce3d173dfc128c33f1df4e3250821d2">x509_time_future</a></div><div class="ttdeci">int x509_time_future(const x509_time *time)</div><div class="ttdoc">Check a given x509_time against the system time and check if it is not from the future. </div></div> <div class="ttc" id="group__x509__module_html_ga4c222d5841d84a018a77b3f8419141fd"><div class="ttname"><a href="group__x509__module.html#ga4c222d5841d84a018a77b3f8419141fd">x509_buf</a></div><div class="ttdeci">asn1_buf x509_buf</div><div class="ttdoc">Type-length-value structure that allows for ASN1 using DER. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00162">x509.h:162</a></div></div> <div class="ttc" id="x509_8h_html_a4a038a644bb6f527315bcfdea826bf79"><div class="ttname"><a href="x509_8h.html#a4a038a644bb6f527315bcfdea826bf79">x509_self_test</a></div><div class="ttdeci">int x509_self_test(int verbose)</div><div class="ttdoc">Checkup routine. </div></div> <div class="ttc" id="group__x509__module_html_ga5e8f63c6d3abf6955eb6190a19360fca"><div class="ttname"><a href="group__x509__module.html#ga5e8f63c6d3abf6955eb6190a19360fca">x509_sequence</a></div><div class="ttdeci">asn1_sequence x509_sequence</div><div class="ttdoc">Container for a sequence of ASN.1 items. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00178">x509.h:178</a></div></div> <div class="ttc" id="group__x509__module_html_ga937771cfbc29ed68fa7a1f000bdaada7"><div class="ttname"><a href="group__x509__module.html#ga937771cfbc29ed68fa7a1f000bdaada7">x509_bitstring</a></div><div class="ttdeci">asn1_bitstring x509_bitstring</div><div class="ttdoc">Container for ASN1 bit strings. </div><div class="ttdef"><b>Definition:</b> <a href="x509_8h_source.html#l00167">x509.h:167</a></div></div> <div class="ttc" id="x509_8h_html_acd36d794a8edbbf66fe2e267d8804854"><div class="ttname"><a href="x509_8h.html#acd36d794a8edbbf66fe2e267d8804854">x509_serial_gets</a></div><div class="ttdeci">int x509_serial_gets(char *buf, size_t size, const x509_buf *serial)</div><div class="ttdoc">Store the certificate serial in printable form into buf; no more than size characters will be written...</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Jul 31 2014 11:35:55 for PolarSSL v1.3.8 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>