p5WZ.%ݤdE'GWTe&lJF$Y;k TpsWׯlTkSVF]$VlsR)T @0q+=X "^c&1 ڹjwqiUZY˒ (t;&t\ e\glRxv+ә'uaQs7YjqK%L˴sjeFKv* {YZtnfk|L%S[2}jY4[ɺVGW n4ܴZ˳- k=;OklGz۴EVŨbHM;V=aՍsմ{GJǶP;jGv2z汽Zk+֔ܺj4jƭUkocմs̭RAF(X~1Vv} jf u+Wnd[zkݏβэ ʣ)IkR&qFQfZ $grDA=8donqcF ?SUffO{%C i߲f:cP=OJgRu8 x (fUuKr6,z}*K]p@Ǿ@*Rv;qܱ&3dnHIZJ\w=:c~U$9*S2[M_SO+EpÌ2^0ٱ$}a Ϭ/}?D-=_ss}k +G_ݿ>,p88zu~5O~dfo5WS^YdE q}9u1 hBF89kgWY-Av9]Z^B'YiExu:nyJ&gEfUVN/e3$SVc,"  `I^5#KplSl! @m'6쭗wͻ&4u)7GмQZ*O#ZdldbQpˏ<8X>@h9^;o XZwt2!ˍ[;`kLHOQ#خZ9$ 7%vvva]iʥ7M|/r)ҭSpx;.b$P*$䐋A'=stP˷8y&\.`ZucFQm+֩B2Y).ȪG\z+u9t3NInftKDXؼ)oHq 4NPAT<@z]Vv|qBQç:4y|iHv_2)US)@y+%B[ԴWF ($Z"nY9ɿ (() w1FYvZV5拾'l8sVHG>Z뜀qڼ5 ar$ ;6F=}+Ĵ <4^&m|[7VD]¢/fq{קx@Z8Foi/",W71ޫi_bFr Y>210םN'7#Wފͣ֋+9fcW'׿ҙl})n8Tw(sF+n[ܘA='sb?X\7Ljvqm<BNϙi-~{~Vzwql `3 :p3$ N8:J0K^;XHtAj y$g,H+aPW :Һ՗}/~Md*)D&$m#s=5n]TIOFQ+I#+V"귗(Oֶ,=01J.m.}Rv.@ tZO(ht$ >~m$@=)5vzkh@̓r*ۈ E*e>}R2G8n8=6pZMt_37͵k1q^Q^&U:f8ϟ29C^}( a[zu5yto^Jbce\^1,^$RBǓS3Z}̫&װgbqҳkJs53߁Yln_NzTPc`OC2ȩZh2It4+"C>ڲ&WDá"~׀+1H+P\dpgEyt3rIOX4fՁzpWꝧ?ZڈK s.Q^ϭ:zKozZ\ƾ*6UjE]كZGֶZ+t)V?ZܔҹOOY5^`5B&Ò'5z{ E;ޘd=*&oz ~ZG<ԏNFP;HyUH=+>a4ɎZ~I 1M;hjW95'I=?1XvLzr*Kbn҉}%f7sjI%ˎ沼'4Jq= q(=Ul2 WbzUŴ=yβ'$qujx\۳h#lt[3<Mx.kodi x6~nqu8O4d#Z h~0M)3?.k(Tp7kW弤'feB+6w.;Kn͔  }+|\1[GZBSOLzWYog4-78vNx{k-@8Pֶxک.GwvrԵ*f|R?4Oөn7im BźҶmnAU,zpz5)No]GE:XTB2Q%S;k-29 ڢĬ#SF8]^E,@۱GFG=޸4{2Y ^ u8kե>Jmɦ/#)$ړӡK+<]*nݐQ@N8 0xw>+T$_+X90AF~]~_qk3[2IӜ3Uh,20:,_k&3D5xÞ)v}hr8Vy9Q<WfإAΖi^GL~]}+"^T#AvK>0RTclass="preprocessor">#define RSA_MD5 4 00024 #define RSA_SHA1 5 00025 #define RSA_SHA256 6 00026 00027 #define RSA_PUBLIC 0 00028 #define RSA_PRIVATE 1 00029 00030 #define RSA_PKCS_V15 0 00031 #define RSA_PKCS_V21 1 00032 00033 #define RSA_SIGN 1 00034 #define RSA_CRYPT 2 00035 00036 /* 00037 * DigestInfo ::= SEQUENCE { 00038 * digestAlgorithm DigestAlgorithmIdentifier, 00039 * digest Digest } 00040 * 00041 * DigestAlgorithmIdentifier ::= AlgorithmIdentifier 00042 * 00043 * Digest ::= OCTET STRING 00044 */ 00045 #define ASN1_HASH_MDX \ 00046 "\x30\x20\x30\x0C\x06\x08\x2A\x86\x48" \ 00047 "\x86\xF7\x0D\x02\x00\x05\x00\x04\x10" 00048 00049 #define ASN1_HASH_SHA1 \ 00050 "\x30\x21\x30\x09\x06\x05\x2B\x0E\x03" \ 00051 "\x02\x1A\x05\x00\x04\x14" 00052 00056 typedef struct 00057 { 00058 int ver; 00059 int len; 00061 mpi N; <ݗe%ͫ=8topKZʹ$ebXS^R эc'.(8d޶fG7eO 4$QMH\;QNDx p\:cL}a:uhu,<η\jQo~[ȸVZ>y#}R V̈́'XHy}f{I/{OBkg. w`|F/#o=NY /T\/4E"8; ε*eЯ#ád@TF"e}/Rz rslh`=&Qw>yPjB9kLM%ITPL.4 _(ŀ>:I:,E=O 6듣Kob'tUFNU'L8&4(39g=igqZxe:Ѹr e8*|[:#ڟ6ڤC~8|nL4zX$, DuK<5HUdxT[WKwM>O-yO;OϜMN?$tX_)&U):@|whl =m)ɼ\D7Zɤ@q 2eFR2b]M ̭E+#FXlOU$Juu!KZk6q(" W5/~ۅIp.\W>_.ΩsSa¯ Q 'Ku+|nxڭ˞#qZ]rz0  ^%zHA˵3%e}վ97Y%y9i&ySa/؃w͖B :T|DV?>;-9k!sZ0_ Z#gEFd2qDtʈ@h?g;exnT[2V%Z  Yw Ow3F^w_#@+W8" ޤ.&.ϲjN$MW8/]TmjCAJO8Ao1$PB"/npGp(es5IH$j]m,acGBp덄$@,+&m1vc6FxB%/yqD%Җ3`5k%;ȇ,L+}8oCQCX۝|Y#ۼnX--p79#l XRUiRۧB4&n|;hm.k7*QX a}L8,fkIs^P? &05OץŮ>pxT $2qZwol?-M h8:W QJgBe{ ߕZ*ԕ>OrF~3܌[>Kś{vOw?C5_K9ʏUGr@S${3glH8- 4*Si)A'L=!@fgekġf XsPUfY-X%%_eg' z096p^\5:S^l(2"۠#Xg3m30лL"TR猎͍fvV%#f@zYij!;9>5=Sg0W/JE ʓ (' v.T؀{#G92?"9PڗמHiK!?g@("ɽ[bv%.%zlK'RɏyO<%< naO0k)'lˉMݚ7m/UWl&: =Iߟmxwztl=nɵmeh?jTZgd+HxQ0mЍJoK$yyϰ7i?s'S-ޯ\[Jh/9w @&yp AO<"20֋zHU+@_<9;a~~Rj@E[o`B9 tEdn^!RM8$OԾv_b}JjUB'=KHVc|6+=8mU19"Wǿ́IOaZpoFbBd r7FozhWI ؿӮm:Eª`c<'"T߷٪ A׋]{ *~{Hlqi&{Fʏ" XɟrƓ U}ZɦⰔ3 cp΋D/\I\geӪ?F= :k~PxvR{/]fša?ASM[yfsW*h*}J(f`]=qSHx"Mv+t|Iǂ%?tik≽L(C\G :t܎x`>!z$γݙʥ3np=IiM"'wS{G"yLtG"(RFɱ?xa$K^W.}/VWU}4ˑ5b^hꍌ}-:W_ѱ׿:s6 Qh D}kShZthaTJpN~Ǐ: hL{zI Q]`>ߪ`9ǻr-'Ɋ_DY#Z I _ኳq k}xu~dL(ŭ?3lZ3A{TIxҁFY"fML _Zx$Z iIӃYk.^iWD~@qnQ)usc?ѯrsa_8h.html#e879b344692b8d4704ad949e02dea308" title="Generate an RSA keypair.">rsa_gen_key( rsa_context *ctx, int nbits, int exponent ); 00120 00128 int rsa_check_pubkey( rsa_context *ctx ); 00129 00137 int rsa_check_privkey( rsa_context *ctx ); 00138 00154 int rsa_public( rsa_context *ctx, 00155 unsigned char *input, 00156 unsigned char *output ); 00157 00170 int rsa_private( rsa_context *ctx, 00171 unsigned char *input, 00172 unsigned char *output ); 00173 00188 int rsa_pkcs1_encrypt( rsa_context *ctx, 00189 int mode, int ilen, 00190 unsigned char *input, 00191 unsigned char *output ); 00192 00207 int rsa_pkcs1_decrypt( rsa_context *ctx, 00208 int mode, int *olen, 00209 unsigned char *input, 00210 unsigned char *output ); 00211 00228 int rsa_pkcs1_sign( rsa_context *ctx, 00229 int mode, 00230 int hash_id, 00231 int hashlen, 00232 unsigned char *hash, 00233 unsigned char *sig ); 00234 00251 int rsa_pkcs1_verify( rsa_context *ctx, 00252 int mode, 00253 int hash_id, 00254 int hashlen, 00255 unsigned char *hash, 00256 unsigned char *sig ); 00257 00261 void rsa_free( rsa_context *ctx ); 00262 00268 int rsa_self_test( int verbose ); 00269 00270 #ifdef __cplusplus 00271 } 00272 #endif 00273 00274 #endif /* rsa.h */
Generated on Fri Jul 11 17:59:45 2008 for Mobile-C by  doxygen 1.5.4