O^-=3&9vžJ3K61[{A3Q,vHg( ]aQ7 w0 -{cDP3=e:ׇU~GgaZЃao2bQzhY8E$G&@+xgNǞtߘ+0\r9bx 1J&N?1<Z6vYoS < nBz| X#4HOERO;PlxlX$R»"F?RuU\Uo+}`{öO؇7`1s+lgFh1<"EYH7,9ƙ\#s|Hh}t|AVZH/=9ʪ+ _RklYH:% 6}(PO;(Z,Q,(7ڃaH/,$̜p<9n-6qXl;-`F豻K1hH]/(pbnXOm U!r#[Y =pw2 }wrvY ~v.Oop/1"܁1e˨1G#d#au?1(L-bp"" zP[ky,2Ȭj y5FJQ#Yp`,kk,̫-1߶lR[/a$'Kus> aSFB,`]0#(N2rD^EVNC;|r<3s!Z|B^\+HmZ+y5 Q\UD\0[%  p7-\f!WZ.X$ ]p%nЃ3X΃/.%![cDd^ҊoaXAeq eDơd5Sq]0,{/k6Fn$Hr 66Ƀ{j1 2bO%|Jx0|;˄E_-A;ɴkad;@I^φ5& ZX1v`8#+u^axڴd0(UBѲłٌ A:G On3{XYMl. =!U-<ʖA =(NI(<Wuxpn>~pL_Ӆ=rs%gZȹ4ȀCh1 ǻ:|3Ӎe,M_[2]DĦk(AL>BoJ(6s'a!k(9ۃbA]_Z9O#@I&>%Fܧzd٢*ݧFHY\b`Ǹ(|}jjOy/ iux #؉ZP `R`^Au]ek3Qlګn`/;0qz0OWYاdewOf Z h٫Wsl<2[ٙb؊} V2е Nc7bݢb?@r*qy9]lwRlFMUz,+/rc _K@'x^;FP$8v&gub?E}Of4Xv/ͥȅ\kh0;תGI\ڥgV1ym3{`ez&u#ٮ-INX^/&9Dw7vU/َ+\dm16#G?}0uo^:¹8hq?o|d8?pD ÀQx z^C |/ܥO? }ᓇx>=/=oг(ӳO2}cק oO`ާ??'.~?zԞ3GW~3g~C9x_߾Foֿ7lxgѫ$zujZ&իų/OGPl ϏoxD1TQ2:\pu:\_و)gCKO+ggrotBypd&\C iF)(Z*⦠*ua  ̽ishΕJP܈s^̼>J<3'sߙw}77==4z 7/Oor88pq88xy{IZM`or?/uTFs(1P|[ؓCmeO}ͱaʝ{wۿ2]_1̌+^y3K Q,8Bk NQ8CŦpiP“-nDv/`.ڽ0AD9ED{<.ڽJx ;#3ށ3 J\F{CZ[\GGF\lOs?E6$A.8?ť?ĥ?e<.[Ƿ,.[VX-S yՆCe!wYkȻ=].;.;.wI#e9b]F˼uWk#e^iĺ+Xy2:]VsDa̻>].k].kyuƼˎƼˎǬ|c̺7Y.se~~º/͐_.Ke~y2 2:]V.4]֘.kNySe)ﲣ))Se9e]B[. 3eAaƺ,(X베]ʜwYsλ5]֞.yyYs~>1xIaOG 6wgjT+-?R^,V]_>g~M+o{/]# L~L fMw>#<~`W#/l(P~7O?q]~7}l5³xmc\As\s(t HR?ԗEkA+#HRO$#hArBel-H2R7M!ueZHVJ!YH$K4tB:E:Ղtt@:I!"hA:QD"{oAɢ{D;vVsRn uƳFAk]TT;+1XJu ~A[݂TT;+)XNJu >AK]TT;+!XJu @;݁Tw TqNR$Ή i>7m?~vUTU*h3ŗ >_3r}WKAJ~4]-E+YSc\CIGaJ~אDQܺ孟955$tdgNq I$=EN3Ƹ$Bו,u̩1!u%]?sjkH"p?srkH!YZFaKrgNq I$݃=pd\CIG`)wאD=X7I5$ttrMq I$݃=pe\CIG`)wTאD3&vdאD=Xò@Sò-ni,mn!ꦶѻr~zԞZyvQ_( xzw6Gmb\ÕyЎH67MkH"+mnfאDQfq I$͑,mnfאDQ$ꀓ*m^i;dA(nhl'r8JGysc;pl PVD޳S㱽7gBmNd>;5 {r&>VDS#7"gB$l!N vjHL(<&ۉ1Nޘ ȪԠl ʙP: [yTQ9JGGa+wdאm-Ope\CIG7a+wۻ?=Kt{ q $|$-=QF'i>j>̵q W.̵q i(e<4sc\CJG+\אQelP: ]_йc\CJGK:7ukHBds3[Ǹ4'98c\Cjel)osc\CIU ukH"%zʽ:5$tt=N{g\CIGS#x5$tt=.{g\CIGS!x5$tt={g\C>:GאD=8ϸiOnڗ߫,*J r1O6,k̇b6,k̇אDQem$6,kwh5$tdYdC#! $ q )$WKYs% q I$=}ZzK^Y˘]-c<;bgo,΄1ʃzNj0v]-=<;FcG~Eñ|Nj8v]-}<;cG~IԀoZz WyDv#mvWK7{7` CKM$g"H@7zt8^c0H… Y U]A"F..D53w꜒hn⒙伕J}2Q#įٗ& (&Z@OB$* ?=xaJ/mt|bT^dtKv+Wd?O{_/zoY%]պ. 0\Q9/ 05\E\Y¯ ;7ZyïPYy.Vպ0 0ogYïPYy.Z7_f\92 0EWȕW^Ųl\șWePǹ:;ï˲Ze+IJjevi"YO-k _!Agdj@. B(ɂ025_ _!d,KïH |tѷ??Sݯu~UI?~2rMT׏ x_???<ˇ_6x'iM۩G^g3JT!8Po!(̈U~㧭 F!fNn?mR5 q6tUVkV+CN+'j 0L ~B H7\eB!̆H{Z_xnC#ȩW(ِ4x*51 a6"j ~B HCZ3_fC(W(ِ4*55"aIdG+% /I|99]~yyOzj\]˫Vw.>E[^]޾u{5)_%Z-p}8C yK y-kh6'l_>K{oL7!WoJ81ތpd6  o#©ۘpl6!mamptC8;~%N o7$ Nߎ Go'>X oS31p.$$'bQpE8L~&&Q#y.@]pO8R~7 )WoL8V~7!+d=&-gCp>&/O[m }p }p~@8g~?$4Nߏ G7%6NqU竈p|™Up|&:_uW]¹Up|'<_ 7p|5$>_WcՄp|5%@_W~@8~H8~D8~if}a&,eLac1y1&oabf&a0}/K>0c.K>0g[cĶ_ax4G㾄}^5_"*u51!"4[fl([1 Esl[1&bfba-` baz-0f2ZF\sk`l-[Z6ֲbd-{X>ryqbZ-GV1frQbR-gT3̩c&Ĕ0v0nbꦅu|`p|n>77' #&wƟ}}~K-t|Rkq3H~&'a:S' /+&ɉO5*y6.,i4F%Ƌ% i[?}.ר8qM~O<_4o}^g F8>kTl0'yJG\~>QɳqKCO5y6"{ݝ>klsF!ΆW. :klh3F!ΆU. :klHsF!ΆS.p :kl(F$. w4cr{W^3hoEOF k09qB5Nvg$9qV833l"qw bq6Oci~8ڻ84qw bq6Oci8ڻ8Qn7.8wA,f^DybINsLppһ&lj~ݡgd97lup̹gd#c <'4o97snD9q8:rn8Pȳ'1A~ȹsC!f#c /9OI??y#x#o1n?b ~tAt-F[̢/FbjqtiҲQҲUҲ_)ni)niO_l}R_l]*niG[Z▖zr[Z▖z+n'nR+G}doŭoB/fR;B1ܼ)͛׌͛by3QL8o,CΛbyP9o9ͥbyst\+F77YͭbyRL;o΂1pk}(sbal}8=|{ban})[ևY?\Cs}?,_|a!g?bF/_)^|?#7d6C D7>~tJf3DˋMt_GGɍdy[D>~tH&Mtw󏎓$7"n}(Lr!/Kr{t?:Jn$pȋ6Ǐ$7bn~7H&x[pF2 ecjɍdy1S˺Ԃ$7hyAS}'7In8L-=H&A2cf3 Nn$ܠL,=&H&AW{+8Lr3Vpr#!(6\|uُN}X~fÞߡnrt8\t+%Ŝ(7Io8L)7Io8)7Io8L*7Io8*Ƕ7Io8L+Ƕ7IoPɿ|U.^n1$ qX9}!&IWJas$]!+1C^Y̓t8Vy1g1OsX9ŜoZ1prU i9CZw!-bHK[bHK[*#ŐvNCZCZڹbHKP ii!--W!-bHK{*+ŐN1P i ŐT iFgcҍCZbHK7U if!-!-R1T iCZsAlŐF1U iV!-ݝbHB1X(KŐH18V i9NF18aHqÐ|!-CZ/r!-ǫwrkl_C1gW|o⋋Ϳ;{cMF_.1:ѨS+ʬ0+vKӨ:¬ !/fCwT 2+L -ߪS+ʬ0b6|NE0+tȋ:-L⌻1:ѬSѢDhq1ߔfU&ZD(WD2"Z\ ="EbfMYG*-L* U&ZDS6=-L3lzL)8ZTh-.fFQp2"Z\̄1hQeE47--rcfEbE!/-^=2eaF7 鈃 _d6~HOGUȠ<\̑9r0G9#3Ggh=;zpFa<6 ?y4CK]͎5v6,  $NSn rP8  Ss@xnyfջ;nn;Y!d)]U_+x509_8h.html#a94a96a45489af8cb19d6dd3ee76eefb2">00061 #define ASN1_UTC_TIME 0x17 00062 #define ASN1_UNIVERSAL_STRING 0x1C 00063 #define ASN1_BMP_STRING 0x1E 00064 #define ASN1_PRIMITIVE 0x00 00065 #define ASN1_CONSTRUCTED 0x20 00066 #define ASN1_CONTEXT_SPECIFIC 0x80 00067 00068 /* 00069 * various object identifiers 00070 */ 00071 #define X520_COMMON_NAME 3 00072 #define X520_COUNTRY 6 00073 #define X520_LOCALITY 7 00074 #define X520_STATE 8 00075 #define X520_ORGANIZATION 10 00076 #define X520_ORG_UNIT 11 00077 #define PKCS9_EMAIL 1 00078 00079 #define X509_OUTPUT_DER 0x01 00080 #define X509_OUTPUT_PEM 0x02 00081 #define PEM_LINE_LENGTH 72 00082 #define X509_ISSUER 0x01 00083 #define X509_SUBJECT 0x02 00084 f^I 1-bx5jFëY'`pV*g+g,S3\ Rs^ /f^-:[n .R [f}-[b[`}-~-"~-!~- &[>[<2[: [8*[6[4:[2ƄuYmlii%-74)g5O91)geqiYrvZ*SNUYkکvj8N+p t8;rgpvZ6(?*8;3NҌӪօTWXa86м yQ% q}Os]#}Ksl6|T; T>ĥI6[^@G; 7DAYNʜ^^mhIm'R-h ᾍ뼹tdZӹ';y'м5?I5sw*ZWMoN5:7wa{CP|H- =lnm7mVmY7ӶPۨ6ktr]G۫i˵W~xAXÓk= >lnqRm^{]5-a$^Uo5=}hzXgoi'MOߧ^7Ӗ|=}ߪh}XgoqRmѿb CK]͋E "{KZ`bX1DQh> ̓OB9!x " DD&(Qoݯ{{_OwdfgկիW5~},ESOd4k,iq"-Zr;2K[hXr[X5} ϯm̾8s~zԕ7?wǸ/?S;)ܙfo{*6z$08*_`hw>JB\{nu{-fO9i&ʑP4fZYŞK+Vw[ܘwb+lm=[PPhP{06@ oa *F A[X[ Gm.p k+װ!{v[y 4la&шVlя# oam>ˆmb oa->sD>l/G, rU)3&-nGϙ]v>x 0(f=Zkh$.C'}{{xr/ܽ׶EvI^b.ʷ3%r^bƯj}*^vo>rcȭܷ ۝Xboouͱ\47꙰ պh.Iowu\ 7=|9} 3y ш=IR{x>y_7ۘoRkK%$K[4$~} ]yw_/2ok{{i{^4?XTGQKr?(j\Ob5Զ^}EL}T O-ZhѢE-Z:E-ZhѢE-ZwgxFƍwe p=m"9!Ix”/L”.LAB- z0< f0! 0 ֬pZφ-ZhѢE-Zs2n0sQO}\ UKWw=8ȡW8IiBl}i3=5 % p HIy\RpՀ/՗ѓcrRpU_ʮNKY)T})OG՗3-ZhѢE-a<>xlg}j{/~s⡉㯌Ңe$ b\$N}tLy$ !H\H)r '3/LIȲoJM 's D- GR_)o!'s\% HlP8\̾UWl%9RpN 8Rc%98*GKzphhB$GGH|կ5jy y#7E`5\\!& F|HBr@rC|H*\)dA2 p?u)n Fl)('I>k}z\$"ߧ!fTs!|.y,CXf{Mr!lcQӒfųLA ]^wqfe6΍>၇ KfVG(|N0 _0t0>&iX'8܂ m:`X Z;VƗ..#C _GݩsQc(8f8e L8Kd,p cnë (lׂ9v2L:Ç0g2U?L8nO`EX X尖zãK&`Z,aX pZ`-:Pn-[O.PUwk1_+W@ؗ#W B|Ts,U o@=>;S\~oS]c8b!9=?/k-zZX`hlhs_d&KؘCofS̓&~Ph݃CZZ`0U#Eh R Z/G'a/2@fƞ-:' Z{}`z'jnإ TK9 ZN6)wCK]͏#Gn{aJ\fxr1aBD6@H"QBFHHH ĉ? q@#("dfrj{oڙ~U{U^w] r@s,0Y6k&53d; s=Fn)ٮό65Fă?CO;; w'4m:;;~)uoQ|j-mъ5*>uUӾ;[-hm'QG1V7*Ql5'cWE=,R~y/vY*E:ضn^lp_E Bia̼cUiOE_Ὂs3<ێ屫n,`O^FG؞0h$(U̺kgnext; 00109 } 00110 x509_name; 00111 00112 typedef struct _x509_time 00113 { 00114 int year, mon, day; 00115 int hour, min, sec; 00116 } 00117 x509_time; 00118 00119 typedef struct _x509_cert 00120 { 00121 x509_buf raw; 00122 x509_buf tbs; 00123 00124 int version; 00125 x509_buf serial; 00126 x509_buf sig_oid1; 00127 00128 x509_buf issuer_raw; 00129 x509_buf subject_raw; 00130 00131 x509_name issuer; 00132 x509_name subject; 00133 00134 x509_time valid_from; 00135 x509_time valid_to; 00136 00137 x509_buf pk_oid; 00138 rsa_context rsa; 00139 00140 x509_buf issuer_id; 00141 x509_buf subject_id; 00142 x509_buf v3_ext; 00143 00144 int ca_istrue; 00145 int max_pathlen; 00146 00147 x509_buf sig_oid2; 00148 x509_buf sig; 00149 00150 struct _x509_cert *next; 00151 } 00152 x509_cert; 00153 00154 /* 00155 * Structures for writing X.509 certificates 00156 */ 00157 typedef struct _x509_node 00158 { 00159 unsigned char *data; 00160 unsigned char *p; 00161 unsigned char *end; 00162 00163 size_t len; 00164 } 00165 x509_node; 00166 00167 typedef struct _x509_raw 00168 { 00169 x509_node raw; 00170 x509_node tbs; 00171 00172 x509_node version; 00173 x509_node serial; 00174 x509_node tbs_signalg; 00175 x509_node issuer; 00176 x509_node validity; 00177 x509_node subject; 00178 x509_node subpubkey; 00179 00180 x509_node signalg; 00181 x509_node sign; 00182 } 00183 x509_raw; 00184 00185 #ifdef __cplusplus 00186 extern "C" { 00187 #endif 00188 00199 int x509parse_crt( x509_cert *crt, unsigned char *buf, int buflen ); 00200 00210 int x509parse_crtfile( x509_cert *crt, char *path ); 00211 00223 int x509parse_key( rsa_context *rsa, 00224 unsigned char *buf, int buflen, 00225 unsigned char *pwd, int pwdlen ); 00226 00236 int x509parse_keyfile( rsa_context *rsa, char *path, char *password ); 00237 00242 int x509parse_dn_gets( char *buf, char *end, x509_name *dn ); 00243 00248 char *x509parse_cert_info( char *prefix, x509_cert *crt ); 00249 00254 int x509parse_expired( x509_cert *crt ); 00255 00275 int x509parse_verify( x509_cert *crt, 00276 x509_cert *trust_ca, 00277 char *cn, int *flags ); 00278 00282 void x509_free( x509_cert *crt ); 00283 00289 int x509_self_test( int verbose ); 00290 00291 #ifdef __cplusplus 00292 } 00293 #endif 00294 00295 #endif /* x509.h */
Generated on Tue Dec 28 15:15:26 2010 for Mobile-C by  doxygen 1.6.3