From 33defd1f9b6c4889fe5b075e6abb0b24c00f3a59 Mon Sep 17 00:00:00 2001 From: Matt Johnston <matt@ucc.asn.au> Date: Wed, 8 Mar 2006 13:02:58 +0000 Subject: [PATCH] Just import the Dropbear 0.47 libtomcrypt changes --HG-- branch : libtomcrypt-dropbear extra : convert_revision : 20dccfc09627970a312d77fb41dc2970b62689c3 --- makefile => Makefile.in | 74 +- doc/crypt.pdf | Bin 484454 -> 0 bytes src/ciphers/aes/aes.c | 2 + src/ciphers/des.c | 12 + src/ciphers/twofish/twofish.c | 2 + src/headers/tomcrypt.h | 3 +- src/headers/tomcrypt_custom.h | 224 +- src/misc/crypt/crypt.c | 2 + src/misc/mpi/mpi.c | 9048 --------------------------------- 9 files changed, 66 insertions(+), 9301 deletions(-) rename makefile => Makefile.in (75%) delete mode 100644 doc/crypt.pdf delete mode 100644 src/misc/mpi/mpi.c diff --git a/makefile b/Makefile.in similarity index 75% rename from makefile rename to Makefile.in index fba5f73b..e1bee572 100644 --- a/makefile +++ b/Makefile.in @@ -6,6 +6,9 @@ # The version VERSION=1.05 +VPATH=@srcdir@ +srcdir=@srcdir@ + # Compiler and Linker Names #CC=gcc #LD=ld @@ -15,25 +18,22 @@ VERSION=1.05 #ARFLAGS=r # Compilation flags. Note the += does not write over the user's CFLAGS! -CFLAGS += -c -I./testprof/ -I./src/headers/ -Wall -Wsign-compare -W -Wshadow -Wno-unused-parameter +# The rest of the flags come from the parent Dropbear makefile +CFLAGS += -c -I$(srcdir)/src/headers/ -I$(srcdir)/../ # additional warnings (newer GCC 3.4 and higher) #CFLAGS += -Wsystem-headers -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wmissing-prototypes \ # -Wmissing-declarations -Wpointer-arith -ifndef IGNORE_SPEED - # optimize for SPEED -CFLAGS += -O3 -funroll-loops +#CFLAGS += -O3 -funroll-loops # add -fomit-frame-pointer. hinders debugging! -CFLAGS += -fomit-frame-pointer +#CFLAGS += -fomit-frame-pointer # optimize for SIZE #CFLAGS += -Os -DLTC_SMALL_CODE -endif - # older GCCs can't handle the "rotate with immediate" ROLc/RORc/etc macros # define this to help #CFLAGS += -DLTC_NO_ROLC @@ -77,9 +77,9 @@ endif #List of objects to compile. #Leave MPI built-in or force developer to link against libtommath? -ifndef IGNORE_MPI -MPIOBJECT=src/misc/mpi/mpi.o -endif +#MPIOBJECT=src/misc/mpi/mpi.o +#Dropbear uses libtommath +MPIOBJECT= OBJECTS=src/ciphers/aes/aes_enc.o $(MPIOBJECT) src/ciphers/aes/aes.o src/ciphers/anubis.o \ src/ciphers/blowfish.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/khazad.o src/ciphers/noekeon.o \ @@ -130,37 +130,7 @@ src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o \ src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \ src/modes/ecb/ecb_start.o src/modes/ofb/ofb_decrypt.o src/modes/ofb/ofb_done.o \ src/modes/ofb/ofb_encrypt.o src/modes/ofb/ofb_getiv.o src/modes/ofb/ofb_setiv.o \ -src/modes/ofb/ofb_start.o src/pk/asn1/der/bit/der_decode_bit_string.o \ -src/pk/asn1/der/bit/der_encode_bit_string.o src/pk/asn1/der/bit/der_length_bit_string.o \ -src/pk/asn1/der/choice/der_decode_choice.o src/pk/asn1/der/ia5/der_decode_ia5_string.o \ -src/pk/asn1/der/ia5/der_encode_ia5_string.o src/pk/asn1/der/ia5/der_length_ia5_string.o \ -src/pk/asn1/der/integer/der_decode_integer.o src/pk/asn1/der/integer/der_encode_integer.o \ -src/pk/asn1/der/integer/der_length_integer.o \ -src/pk/asn1/der/object_identifier/der_decode_object_identifier.o \ -src/pk/asn1/der/object_identifier/der_encode_object_identifier.o \ -src/pk/asn1/der/object_identifier/der_length_object_identifier.o \ -src/pk/asn1/der/octet/der_decode_octet_string.o src/pk/asn1/der/octet/der_encode_octet_string.o \ -src/pk/asn1/der/octet/der_length_octet_string.o \ -src/pk/asn1/der/printable_string/der_decode_printable_string.o \ -src/pk/asn1/der/printable_string/der_encode_printable_string.o \ -src/pk/asn1/der/printable_string/der_length_printable_string.o \ -src/pk/asn1/der/sequence/der_decode_sequence.o src/pk/asn1/der/sequence/der_decode_sequence_multi.o \ -src/pk/asn1/der/sequence/der_encode_sequence.o src/pk/asn1/der/sequence/der_encode_sequence_multi.o \ -src/pk/asn1/der/sequence/der_length_sequence.o \ -src/pk/asn1/der/short_integer/der_decode_short_integer.o \ -src/pk/asn1/der/short_integer/der_encode_short_integer.o \ -src/pk/asn1/der/short_integer/der_length_short_integer.o src/pk/asn1/der/utctime/der_decode_utctime.o \ -src/pk/asn1/der/utctime/der_encode_utctime.o src/pk/asn1/der/utctime/der_length_utctime.o \ -src/pk/dh/dh.o src/pk/dsa/dsa_export.o src/pk/dsa/dsa_free.o src/pk/dsa/dsa_import.o \ -src/pk/dsa/dsa_make_key.o src/pk/dsa/dsa_sign_hash.o src/pk/dsa/dsa_verify_hash.o \ -src/pk/dsa/dsa_verify_key.o src/pk/ecc/ecc.o src/pk/packet_store_header.o src/pk/packet_valid_header.o \ -src/pk/pkcs1/pkcs_1_i2osp.o src/pk/pkcs1/pkcs_1_mgf1.o src/pk/pkcs1/pkcs_1_oaep_decode.o \ -src/pk/pkcs1/pkcs_1_oaep_encode.o src/pk/pkcs1/pkcs_1_os2ip.o src/pk/pkcs1/pkcs_1_pss_decode.o \ -src/pk/pkcs1/pkcs_1_pss_encode.o src/pk/rsa/rsa_decrypt_key.o src/pk/rsa/rsa_encrypt_key.o \ -src/pk/rsa/rsa_export.o src/pk/rsa/rsa_exptmod.o src/pk/rsa/rsa_free.o src/pk/rsa/rsa_import.o \ -src/pk/rsa/rsa_make_key.o src/pk/rsa/rsa_sign_hash.o src/pk/rsa/rsa_verify_hash.o src/prngs/fortuna.o \ -src/prngs/rc4.o src/prngs/rng_get_bytes.o src/prngs/rng_make_prng.o src/prngs/sober128.o \ -src/prngs/sprng.o src/prngs/yarrow.o +src/modes/ofb/ofb_start.o HEADERS=src/headers/tommath_superclass.h src/headers/tomcrypt_cfg.h src/headers/tomcrypt_mac.h \ src/headers/tomcrypt_macros.h src/headers/tomcrypt_custom.h src/headers/tomcrypt_argchk.h \ @@ -207,7 +177,7 @@ $(LIBTEST): $(LIBNAME): $(OBJECTS) $(AR) $(ARFLAGS) $@ $(OBJECTS) - ranlib $(LIBNAME) + $(RANLIB) $(LIBNAME) #This rule makes the hash program included with libtomcrypt hashsum: library $(HASHOBJECTS) @@ -260,24 +230,8 @@ profile: #This rule cleans the source tree of all compiled code, not including the pdf #documentation. clean: - rm -f `find . -type f | grep "[.]o" | xargs` - rm -f `find . -type f | grep "[.]lo" | xargs` - rm -f `find . -type f | grep "[.]a" | xargs` - rm -f `find . -type f | grep "[.]la" | xargs` - rm -f `find . -type f | grep "[.]obj" | xargs` - rm -f `find . -type f | grep "[.]lib" | xargs` - rm -f `find . -type f | grep "[.]exe" | xargs` - rm -f `find . -type f | grep "[.]gcda" | xargs` - rm -f `find . -type f | grep "[.]gcno" | xargs` - rm -f `find . -type f | grep "[.]il" | xargs` - rm -f `find . -type f | grep "[.]dyn" | xargs` - rm -f `find . -type f | grep "[.]dpi" | xargs` - rm -rf `find . -type d | grep "[.]libs" | xargs` - rm -f crypt.aux crypt.dvi crypt.idx crypt.ilg crypt.ind crypt.log crypt.toc - rm -f $(TV) $(PROF) $(SMALL) $(CRYPT) $(HASHSUM) $(MULTI) $(TIMING) $(TEST) - rm -rf doc/doxygen - rm -f doc/*.pdf - rm -f *.txt + -rm -f $(OBJECTS) + -rm -f libtomcrypt.a #build the doxy files (requires Doxygen, tetex and patience) doxy: diff --git a/doc/crypt.pdf b/doc/crypt.pdf deleted file mode 100644 index 1c56c51f7ffe88024566a020536d618f51d4539b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484454 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≤5=q{)y@?pUA^Ji~M_(<>J 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"npf0k}V&x0S}Fuz}syXIMc<VwGgd~6kr-Cnr+Pi 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�)KySjK!?sT|5kH=Ph&Y_D|8K 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¬Kxd{0#%W)!2HLz{~<=gX_m@OsAqaECYlT(~w9_t-@C` z1HD$cPP`<<{9CLQkY)?4O9B+BM%N;zq`*Hf!izSESCI_0o*k)sG!R*A%I!`M<8%8c z`0`g4P4PYg5Lc2rP!1a4wtJB#aIUP_5pzfjJZtq2ru|5IrIJcXDfIhPE3g)3nY6Oe z^)Z@o#`yk84Uj(e{mjaajYSS>h55EI>MMkf6s^;uqN~|CauQqV#InX{sl`?e4xeiG zFW+NAQG#5^<FLx_vOWZoy2#73D`u8BBnu=A_{F^f5)&Ig`z1^AWi@E*;-4H?(weaN z$rj3D4B{;1n{hWU_orF8)8mGHk9iARiv^e)OfS0GC-Fx&b`V;HaekT6Dy3y>Oio=9 zhHQ`A7XB6U8|D@bVC8@k8Os(ndgDsnoiaS&xr;HeKiYh|>KHTSCD1@gLsXiI&f6A# zVOMj^^OpHg&&Ksb(JNa6<O-gaTiDKV0L52Tfk*gx?O1v^kBvcx6%c)ivKF?8mq2O> z6WSR&IAOl`4IMB0B;09VU0#CpT$T=z<|ZInkZImm_BzA^&e^qa;08#LzLt_QvN7_> zhfZp1YpWYm0#eDz=G`?g&O76{G@KfJU~`9Njcl^qF5P+yD15$Etd`at-wEdli*VzN zL-7Ij#jXJZx4r2&wM&D(MxAj3VO8hl(kBH!Y2US<5qyJz^zVu0yi49gtB+~K82>Ho zJAZmg$Du|7rQK5j;AX)I4PnULmwMwnMMm40zJ*p@3W<e?KH79$;!z_#Nz3jz7synV zSeZv5j63EtGP`2!hr0~QaXj$@gk7mTM!s&9)im&=)V%2sgD}|AYO|%R@q@=jDqn4w zUKb>yoNzeXaPE6N93)C|+GJ456aYyNZ(~dMp|WqF`VhJl(YlxlO736*uub|WM{7Yv zOM#cjyU%bhJ3y~LsELp=81(88q9}90&bSJ1%>w@_>PR<8L^SaJ2xJ7iW_X;!VL0M$ z8wvj+QKa<5GcufGq~1uptVcd8EUN5KV1R%LfzG##{L}DgaJjb*{S<gZ$Ttod=-%cM z^SlHwB2?5=<tyj!Y6MClL|+(VK&M|!Sw($^RU5=g3CvOcs&BQ+)s6U+JcVij&dKiq zbxCSQvN?p|P@WGNz#?6`kUULYM>Wfwqweb`3$K$YSEX3FTTa1*0G%^1g<Fhf<~iym zsY`Tah%O1}+IY-jI$)EM?rijX*a85G@f3iS5O>d;(r@qETEj#5f?}#<n6d&nd~|L= z5kdxCt<7&sz0@Z*on1P9lOYme($~A9AEBzuHv%|^z<EifbnK|bsBFaB`)tFf!H$-P zl5Kd9Vtq*#yN#UBb3eKLc2sVXi1wRv*p>TdD3`hsH|E&pkV6u~x~@79ao+oS-<D`^ zCZpUnT^F!<FMQt1;e<R%**wY%au~jyoqA?uWa&Vkfiw8Fn9R)xH)M{js4A)hfMyqy z-;SJ!zoGGtE#H~OY~(wzvW6w(dALW_I2D6tHA>HF9ry{0MtBnoE4O+v^b!)$s3tc8 zDUgi`aSXPU8?HYr6f&;?6}956YA7nK0QD^nPGLzQ`wQhUpVTuFc^cJF0*CThQ`Hu@ zkBkXDDHdcG(zyhvxFrzy`LnHF7m~(Dq7!+iIlB?_{P>jGE)vYja7Gf!afb`R#&zY< zAqv@q_ju$bfUoZm#_}lYDn$!6sK7`fLXr{l`X#Q>N$!cT<tXyQ$gcM^Hy#^L6YdwM zKaF@#GId%db7D057;7;u?NjN4gF2EJ3eB$4P32kPIBK%N6U3YU8!$s8rQ4$Sl!u;A zEs5pi66|VDWo7I5>M<K2CLN_wcuqR8gm%oJ6)1j^_1&Tab6t|UCfW38x2kfj(fq;; zChkHK&a!JY^tyUe5+wHJ`3cz0&wa{_iDHAhX4l-3+O;1K-)C}~2q!L5w_b^Rc8oo@ z*NyY1qxlL1Qpt8jo~sq!!^^%w`Z6cdF?!EV-H3A2?9I;6mLpzz<u<Ew`LT?O$tt|{ z<wX9#7dnm)m$aaJixrh-D$7rFNCkNE#+5fL#+xYz&J+68oD)T0MMRtjtO-CYA=TVW z;=T*%@6X`J|DZ69%h9Z=Prow9*h`wQ*S>r*B4u-p-yR3l89li>`lP0M9AG*?V&i;y zo>%F$^^PbRpa3dd-iS_6GLhKH>HYkcAR)d0M0eXMaCH5les`xcje64e%L2R#;ClRe znKMSzKrCNTb&~V<ylS-)#Izw`7jbYQY#vGdL2hwURJ7?##0nKJDQ!2?Q?V44o?nxI z2rJlki$KVcMgQ^b3%<!EbW#~7hZPH6T%h$pY+hJx4ZDN>dklp*deZsrr<HiUN4e4c zW28}^kAhbh3Z`Lsbu-c&X)>b5!oq{p((`WQG?d_rm-^=B?;pml^a<QH2EveVVdUKP z_P<lsdOa$Tbc;ryvkz&{Xz*>?zEKGj#3DEMVU=@jnzO+q^kwd8-Maqx9P0HLtKXgU zzQ=&M_j{SNvSwCw^s5CU<e0uYRf^y}vlx-i8u<il4BWg|cYBjjf<(~MA{EvztWY=7 z*LQ+Yb73uENBHJN=}mz%F5`aWa+cQSyx{C4e^USb16#dfcp6oiUJx{~x|-x&-d{<! z^~d7ufEpWkzk+G3Vahhv<p(n1-GgkmM39@)uj`L;<)+Zd9B4(giIIMaUJxX0hk@<r zy*A7d=v*@u^Q!}H0UHlu$PoTV32x-q44$Pyoc>CK@M*^}O%2!X6Q`$kr3T%B*u6L# zy5gDa@aP3nj|eJXEO(Z9D=8iPs0n;Wq54vvu8d^wUR{qlwCi*{@ekYKT?@PsfM?vY zWefYC{77;n&Z9TAP;o4mWJ`|uuTPQawdaOd=#wkK!QE}uH<zY@By>!ms?Slm4)BZ` z;f1&-Hb;fd$XYv>g-^~O2_bqXLL0PU7?BQm--pz{(LMnK8c;p#Wj#kG)Kx1(N`1c< z7v}VR;(ycAxp>RpDT<XZxlc<nqiueE?MwF08dKbPhX#>z53;qzB2ThKj)SH^NQ4GW z)XIqQ_!T9sHq;f2<HGwULEs9^B<w}?@h$YGA$!VLPMAx;ApUfmJ!svqgg)-QSifG$ zW_qU|kx}g~SMvoGj-d}&^l)h+^-;I2RVEx?z0L&5XF6KKH*$I>y_m%ei+bT?SCq$X zcrJgiKN5YXub;<7SA}5+T6b>LjvCectpzJ+6|od~5pZ;+v=@L49jmHbh@{fR7M08W zUL}vz<bpSDjOpPa^>%@{uE<r#^S8By*;>T4T!Aj0gpMkJt6+&l;IP_a3s;@vI)w)F z-jJx2jrnR>m;XAC@hDG@=6B^s5gc%S1)v@S6rr54DHn*a)nB*mD%+HD`{oMJ`Rx=H zbUzj~!m$kLy}j>3n!^Sk&mGvv63N{7Ymma_z#QG~JaPTMGY?Lm*fQ-Tt5)3YBO8w( zG&v!8`&zd>UGO5230M%da+-PNl#6ysWkzu2pUJWu%q<lz78e4ywYmGSDm<5KM{)JR zNt2}p57Hq&fKG3~;0+wN#nSZKEKAgRTT)iC=G35<OVjF|bNbavQgenR=d$Jr6zJa- zfYly>mb{taVxwg7H)5PeAR5e$BvXL`XGow?(E1(e*x2-6n$iq-jS?Z$>(YJDQewlT z3!byXsD>Ix;PyKOF7DJy)uX|ZVXBTR>3wfs4oaxKq!0CS(BXY5^174lBK;|2T22^5 zMjgNp1S{{$+u>|t^Hz!SJQQ!Hq1~*wkV^nt0z;;U6hq<}h@--d@shs><0(MFh~QXo zk=tILJ5KR}z#}YkDY)y-VFV4ylCqj^wY($RK(dmZWLm;w*Rq|>TtdzXJ05cJLMNQ9 z>q5xC&O-=stQkQEO9DXze3L~2;k7cA7O2-LB=+tm;@HqO!~e2@jh37%OiVmsZevnG zEOKQkqL9sg)GN4oE-s^$F$M*dD34x(t?^zpE@fmvucLi`+fw4@Ow$S)`J)KI{eW`0 z*-8O&qyFfD&94WS95%4<T{_4MKIAEFde+?yODSWHudAwY;Bv@D(oR3(P?ECWZUQS& zeUl@`xT@dcq18>TGK+|kdckBijcJAzJ%5hbrMn*bn<H!965j7dpPESXd@9C?R`Y#h zC2<&@&@PD-us#BXm+A0qgz*=S)-d+Bfh3a7534AdtoX1|93(+HukFe>{CcFc-miKp z+@efG=Ug&m9@QW=(L-7@bNUc(`@3*jTq8)1r;^bf)Xq^^KaF}fk(+Ism)`w3AHMM^ zaV|6-M=3sbI3aSGS5c?lD$OEpmYM6e%5ORtOI*18TK;)NA2;S^*4EmU<+b^pl?{~% z9(Jbbed~TqdBYb?iaWk!oOzR?9~EdFq8f&>a;fd(oO0+@BV|KA_&f8F_3zDHvzR>h zDxHJ|$E`Ro78T_jKZqZ1XSnxeP#}(8<U%Y?AKKTu5=2H-Mvw`^)5*3rOg5$2*fTOB zr4<q!f?7u857&IlkUD**4(X23<(ZwKaPm}pQQ@=Fp!(F6Y!;^v9?>V|E*5ZL?`2S6 zp|j48R(zi|#to54>l}>~zY?7&EpZF8MtM96>sYp+X9J7tw*nZhP#(Y8A(}*Ky*GvI zme@B}<o8d9=~qBw-GLWWf2&swQxyJ1=TQN-nBh{~P|`}l%Y0^s^^C(rnn|G*6d|v? zeR7w2IyN7_946q8AWdWDx`I@0_SI6bx!L6W2v`jSg}KYDuQF%%oi^Q$ph6m`zuII= zv8GOGrIXDh?w|#go{No)u7#3P9CmOw@VmHM0H$#MX;M(^57q*ebCdbhs~l^bT(bf> zr~)~Phx~I3n=5Cx;Z&>(gHJ}mp`B_wLp}{7E{mF{9?z_;T2gOGD+B%?u`$m9Pn(k@ zfD;!h0xfQ=MFv5S@yjanHWmZw7TCrzd}?}l5e)vXo2lA~gB#7?Y65eK!iV9cQ7okj zMkDp7xMCJ3&Ka9h&$eHq(R(CU8Gk)9B1V@)BX-J9ky~q$frP_w#rtzgl+MCR?Y-h} ziX`=*K-lmr0#7KzKo^aM<lqI31SUx>!8Ra$M&*neLnoIOj|gOPPvYId;p1Z@WgOs` zs~${18^jESn#_ss4^`+oM?tg>17H>c^K9@HmsD8(%CmHLp>>mvI`44+B??f0f~hy* zLCBGr`VrDlb5VDz>+4orF*J>GD9}yY17yXt9<)O~n^aU0Lq7DzP?qszsi1Nd`?h_( z(#OVHy1U8%tt#lTIzQT!Kq<LRqEJv{2BE<lBvm&ws|zuwZ(u=QpJcRuXk^W<+I}c` z=vo%?v*;%=G=N<Pju?86t}F($Iza-RD<5Fwt5|^*)>05HDt;#h6Hx8c{b#SIPA9WS zoDkW<aagbT<k1{jpuXb^Y#B%ew3Sos4XG3TpmbajY=l71k2Z~%-(g{kvL`_PH_j^= zm$I<%e4o|p<7!PtQjo(gN0I3-Z!3}#++zXIVG{W-9{~&FEInH4LTgpO+D=Ndezipg zS$MaSqw<b~;pacA$QLLTorVpmy}5_p2g-|vrEZ|OLqrHQ>7T8A9;Z4?TCJpZP=!%u zQq_R@I5fkgUqH(kWk{)oc_%|KAb<7u0pWAy9mm3Y%#-vAo{XGQlw-BSBACq&=3Zh$ zX2dd{m0WU~*;P+mIi@e`&LZwjMavWlj9eK382ik0tCqMKw}I92mMof%Jh$eI4aG+% zUSnWv8s@bxkz|N3L?`nK;1m5~jr+NW4STAvkDVqxAh)pG?nuhaW(dYI*D)^4riD5S zNgIf>EMCA@3h|of6<{?FuI30Mau0*2JYi0b2dOZ6Qq2F#-#Ao>7fG>mXB~XwGjC=W z;3!W|>#L&`cHlwr#)-?Xp*o!MmLZ1L|IF6%(eBhVcxD?*9BHJ6tC~pWO=hJg4E8Go zIWk2(tb51p6N@nrQw_Wmsiz6QzEoyLUN$R3OEx+~OJ{0EUT2eEIKXs6@pWCiD;j#8 z3X%%jL&-113@p*M1WUXkabcS9bMZ5@KZq6pq2On+7IxgY1vGd89WX+yxd4_IUO=?z zRZ6t>PU8yY7P?nFvtOehrdvc+U&FjVJ|v=3hXhWKj-XpTD>v}AJ*y^lg^*rBAW$&Y z`zTV3<WB7pRdcg-gpe7U8?=(J^3oNAuWaeOc!Q8iNdZ4#CRR_DeT6po$u?FhYqe{S zFuU8Ph=;M&QJ)arOD$hL)bdrlHv@bvHSQDvHTS`D!3(?<of0cc7|B&}UcKo#w!3an zSov#R-6rN9XZqlo+3O3UTk$Jb+A7w!O_0*xqNltPaTY}++{sS>2!<QdFST2OJHF3L zn$~H9GMk0=J`9$8g+Uh2XX^ELs4t^*c#MH-<M@neSyXh2w8CQ-{8<xb5XmRDIOmBE z#EkvjOQ<v(%XLR`j0jxU)-%5`y;kVGpu3#V`k~$^qI!f(D+ThvCYG_5Tv&T7>r3s8 zZ)dSn?2IpXZib^^L>ad!EE8pE%R_FxLLJ$HFFYQ@D0tH?)H`Bu#wDJ<eN10%WR@ab zS(r~N0N#0K)B8}W_9VyU8h?O77|@<vUG(HP*_ICrs#A_1O{^asm+lAcRPLM$<%T@j zjQkqoGP|E^$;?360<m+O9VU5hyMnsdzns98`&rs&R+GY>4f!~c7iR&<=Wl`qCSDE_ zdL?0>o{|lgtIK3~aPIpuf_zmk2Ux;|L62ACBK$yZ*3()*$IDrBG4^_YKrTYEe*~Gk zTJHENOWC>)?2);USt|qzseLs9MxIMc`=sw<W8cE5&)x0lV0+fDF;v6CwTr`2*v)R8 z&U>}FyUU6ApSXg*brmtOF#Z!)@K3qd|5wYLBEPVdtjrfzprH28mN|wmmp0p1jS(Fk z<5#{p3(J2s&3$eDvuW<n<=;(nUzh%O`Q|KNuDQQ^vaK8~f124^y3#n9S(#bt+0*FR z+uJz*nF;={@ICEcJMI1s-~YMszqerj)dTi-^Ok|3uAaWGq2V61o&7EJ)uPh_bYwjU z1nFC}@f%+6oj@YnqfYd9iTTNvatSX<<QHu6r}e1Mwm1M_3WB^eXGQ%+2QNM&Ib%2B z5Wm2>Lcg4Xf)+mmYjZhcd;Ls58+|chb8CHw=(s$%^sMw0b@`H_t>mu-$c$V$T)cX^ zx?*A~P~!p{Pg8b1VS{Kl3lC8PX%#C23j;|FX-zR{7p5g3umCVaTmb&8ejrjCS{o{= zGOZJxlmGhU?>^ZHTmR|cOP)FpAc0Fi9J*VyHt%}cPusT*k{7OP_nmsP4un<`@rm-R zwYj<J=_S%fj%(+h%YaJ==-CxFjW(iFjI@)~*VQ7%VQ-l?=)i~wtcvxDSVx7lLYa%x zG<GEz)9<qHmjPzb2pl9%64EK$t_OROodYE|a1vc%n4i?P={4^2GKETGJQQ6#KQg9U zsw+z>8fzpf_nYFa<>Z}poyT5&zjwd(HnllAycu7Aj#sK|=rCB_^c~N-?~!;WxwRNd zJWgL|9gFnB23<yVO^sh?>_0g_pzuPeCPzVPs$Xe2tva_nhj*!Vs)Vk99IQC8*fC03 zXE9b3d0!y5U|m{QY0-J=>*#nt23(L?bws?6aMaN#Tb-p(ao5zO<rTDal$aHqSMWY} zQ7oB{w2g`%I!-1YQfNKRdf~0wbcdX+He=h3+SMda9&WEO`v(R20s=sq?!o-0N&A~$ zkcr_Rg_O*H8^8aFloL=_P*9fqlayomr#J+<zoj9t(EY!q<XHYokHEiBa<+fzqx>V# zUxmhy#^|e&(u~G}<{!0Se__)c|7fZFcP@?juNKI^596O3|NCM5Yu)AFhcQFh)fVwF z<y;Srk$EeR9_D76Y5}HOjd>sh0fEB@LQopt5JK#m81B!=DK_+RE&{WQ*EDy=r2OeI zQHLW`yc`5V7~t6MWVmnxATZ6G^oTl)h12)mSB%Dn{d2&<?huOom6H>m*0Pty&BxBi zjz`p`8zWTzZq>TF^6F}rN1n^E@%R1FW0X?`89I3x8VRmmMuo<rq_)dahQLg1s3?LB zgQI(qsRI!@V*i*7g~qxBihU-`QWQh0wP%loFrMe(Q8f<rrS`y7a%pAjgzU_9d7^Bb z)H+BF3-l$R<HtHDMivvK{H`q%r0QqO%wR3|%PI~Hjb?tpw4{Vp_0a=6+V2ME(e_@% z78U!ot1dxL&^?95VxyfZv}ak>^pvpf$g5HN20Vigy34A7%E9kI6g^(QkPO;tG|Lg) zfmi*w{J8j7f-3p~QG*h>y3Q~ay4xEu>79%u%SpAbhsD7=0kgFFU5`v)rMNY_T0Nzf zQzs_TTHJ3Jy(ZSWI^hRor&Y~Gf_+P;&6VFb3L8EAM<~JJc1NiF2@>lC(oucMdf~Pr zt%INTk%3EUFl+fSJu<aLl6twEiR=(X5GcTkRlbvJxpNzmv-6o&m%RC_oY9Jc<!oXG zWV2a90$n(_ystx=ZW`Fbq7LH}ek`Igw-82?0cNPLhbV*=SWzl|84cxF=oh>?Ef2d# z6^-zpuNCoyh*1@s12+r`HzX_cmVtFaNwCcyhvVTp1jSGtQ;9oN>y0uZHzm2O6;pF| z3MzcMU{L&vUTMB-5qJ{7;N0!p&hNUjVCH8g4g>2#sbXql{CKxD)`!2+Zi=Omg}S%5 z=V?$@0!PC22S$+UwVHilmF!V<wingTFE1tEXI^AP_D6>CA$47WxYg|zVU<RzlGD_t z*KyugxEpf3TcYJt@it~CY*lfA^qzd-MyTlcO+VzwNxRdNT}raFdub0BN&Og1aCUTy z?I4`-!=!KeGNZN?ya+zdp{Nq5)08Y`Pf334fn0vsT-N_PO{Nv+b5>pO(Zgu>lGy?o zbimg9$O-yyp}?;$%57L|BF|ohtZucpiN=i`s$WD*Q~?k6Uis+cd{dMt-%i<~c%wGK ze<M5pShu;y$^zg#fVU?)VW&!(vsapT!;@yn*N=-e9?}Pbj-rz<kx41uVwYIgov{Sg zBnFoYg7q^zS*4hg`2kh&wl`8WQS}&WDz!Je*=_aayy_*z#Yd?}L1+)>^nz=646G3S zJ*}Kr))(R~5QbCQOzkjcn#;0AN`QE!ey8ijyW7j?7HTezP)TOpm?@1)3)yz5ZFrP4 z)AvN>ZB_LmGXld)umaD_V^OC^ad9fd;``lflxmG?_2pw1#G^JBOERnX#gN$5Ha8pU zoN%153}aFl`%|_LjKrvJZ}Ainz}tKWO+zu4aMGmt?aJ^)uSo^h6fB+AZx`WhKhk=; zf*GmRrUQFdcsp(GBA~hE9$2TS`4cC&Yl7bQye)rghjf-T_!CsXw=S9-rabNfp(5Jj z1TcB|)JYm(z$;8nlNJ$R`PN;SsT4ECr1vX=eNXM*L8jZt3<<oRlznSA6Ss51<YD+F zCY`UVi*UePVVMG_Qw|_Zd}^u%1q3*f_wR#!Ky0@U`e&qDMN#wTTNKR7Z|R1IhfE3l zFI#>D+wS0bC$3;?hJ{`Z&IqIW4bNtw?BBH@uaP4{L`=srjN!I30I$aVmGhX6CCzhv zVuNF$Yu=;9Jj2}l)MdCHJHnQmWF}!{Bx5~Y!%9)Z`556bBPE|uen)N|X8M*9A-)nl zEBQ2;5nOXyB#p~l92uEu{L;@6tSB)n1!=#KJsU~$H&y#2bUhmwz5v;}e6UhMmsGE# z<LX`a?kV1(tH1upyt1aRlD9YpmPAjTx{-$SEaBfH#iSzyyu4X?0m{gRv+q8%?Kd@l z+W4OSApP3c+i(aVVll07ch9MQKN51bwo|H1O{PJ5*ThS8wYt)>6ZpV6#U=XD--)0T ztz#CO=D4TCW^ug|V(pfTke9w#_G{B@S>R@5<RJ;5Q^IZBpsAJe;pcYWjfWD@JkeCx z9i~mrG#W8HE(8T2j;hRK2M*L&FPv8)X^K=uq1PKwgJ<urq$%?Hdw&@q>4q<1bP6N7 z{wdTPc`B-l_W0g7K!AsdsIwo_uTKADZuG)sJG@u-Ipt!>&vU)cH1A(zT<Rv~45Ru@ ztlhpG(AEv5r8#1f#rzS2_5j|t0Z<MGo<C+R^OdG?Pbuls9L8PLvm9X}NZ71{<j@z* zdaqRM8hq!cB}Sqn3X*)qHncUod^BF~^VSMy(ta8Xv<?hv&?=!~eX{bx((g`6=JSH9 zA)9=5sbke=XP}~8weIGiUGdIg#<G+kRp9pj>cDz`AMQL>5ZaFQ1Q#km3b=d2z~-I< zl$qKfFFs$pRVrZLWO-x~pBMDBSO@M|!8(C#fhe2hI1Mjs+R=d=G()iS`biO^PlQ@z zL#yCl@;$Kw1M^N>FhA4DR}h~LuGXb@iW|Lsu-HaHMt+j}@dBeMa{K`nhj`W5ePGog zUP+z0Eho1U-bEJ1K5Y*Bz6A`|2UhfLM>*0b!+F&Mxx?jnfZt~;8<<i6JlSyPrS#p( z^0&kjLy_^WsjFpTx|cIGW2*24Qv!sfun~Go(Tp(NE1lcJfU4j1HfVhY_SM9kxpG>i zmLNwBZvKONB&&?}8k(#B%9?nEWhK-tFeE-P3_3MMPoOiREF?WqTc`>JWu8(c7-TER za6T9OFA(g67eUO(Z2ZfNRu0ogQa6vCUFdFhl$^$!Gj@v%3G~2kci_7*yzP(G4JbXf zBdBKCb_PE^KW{vl^xi}4u1BuiC4Zh<gO!Q=Fx$6ZVWsaP<wlk1gDABh=6g-m=1ZIP z6?;hOVkinVPvy|>;F-BRISq}@Y-YKLaD)zjpT4MbwdB6qa$ph(Wlr?&PcUdQ85{t- zJf5)yZH3XcMlbYTSiCqr$l5e1)E43~KJGVf9Hum@Tuy^>VLrdNA*v+wl4uo}us-UR zQ3_A=c*MPzeASV`YG&eKyZ*IkAxI9`l7#OAthsVJI+zCbjF8%E3n(lSM-Y=PL5vg5 zPdS$qE(wC%9r()8h1dZc+wPvbh;!-~)uNwIagky#`0`mjfp$MJLy-bQ?5HjsM~nqb zeq*X6JbR~|?}+AFnbp=S*!3|mBUz!-nk};$L{`^J64v*g6C78)VlqYTz7^`k2k^=Z z>lPPEoQ@s;RM}tn%pqVJxBv0&4xTHgc<+K7IK3=nz`gq<JO(+f1Eu{6+}tsHgc%i6 z=D{f|orlgj(TTBZx}tQh6eD|g!+szLe^%_n#jd;a1ei!rNy@;XfpR<|&@zbJ&Uv1* z*FGTx##@VKg~t7wdulXK!aQ%J97M@@g8%mIcl4`i__rwVjhC>Z<e&1ucr*!nQxo0u z!r-QIwXU;uEbXI8M1`AtY-X;$97mgGzBOJ0@=S~uRDcBaKBTn!O%c;MwD_mU_4ZGW z1ty?_QBu&-A|bvz4D#&TISGf;1|c-Ma;TzmP8*&4zbyo>32J<Kh~eVCYjL1U%?#V4 z_GEbH$(lI0S%_PpFZ1)WD{%{Y3sX(zV4I04jM~(^Vj14O{7TvNA=#aI*B2^j^`%aI zUVh7agm8bH{|O*zv?;03=(|wwjS67$8yy{+%}alqeapmZ|LxNTAOJhL5+nYZ%@_Cz zA90^W$;_*(tO%r$S5Hi0+&=~GvoPn%CjSA$L^V@xLrqkm_6_`gcjs!IWDxZeLAqlc za-iqh_sGt@aB-)O_nY&vCOY6CfJZJi`FVuT=_(&7Z1TBbU-}#$1!;o3e<FLkVqGPv z(YPq3y2l5AAf>T)TYwA&ARcp*Z*rv8vlIKyF~`x?G5BY=Kv``Jaz?}ah9ps<_ySVV zo-T{)?^w1c=H^+Fr3h>`lO#Y^K?22P4FHvr@AT{&4`aTOCImE8p2kQT^?XBTpejkT zVbq1~rxTQH<@iCJ9PcyB`!@xTxmQVQKFah*X(4@3<u!@ln!ZSQHb%m5lDum?{R-Bf z&hEjXZk(M+iUlV7Ljo)~#MtT|_NMoxKVDDfQ6Ic@;Mf`d(~<0N$v_Nrw14Ia{h1xa z`2RJbPEb`&T8Z!LOeUoIFG5Lr#;;Qu8#65~9U~Lt7yLp0pWu%_TG{k$MgI)c`QtVJ zT<`XE?SF%R(9`{UN*%+$p3C&?jjaDj!O=G}p|SmA@h2Mcwfa{;<V(T%uW2@aZv5}h zU@ZTpXZ$-L;t=xf4$5)P>A^9AmJuL?^y6=cNQ>%$gzxv$)+`3qq<31B7i@|rF2B#V zs=q)YGC$oy{{KTFHB0{niQv|dGSQGQRS=RfV2y!k0PoR$y{U}x`sf;q9|kPI1}M?G z#)gKIEjL-yEQ~&vJi8@R04bXZP==~22MkU+x*vL^w{2?mZC!Oubu>;<uNi%p2Sk&p z+>TvGAKb5V&RLh7oBf57#~0@p`^hV7>)Hq>ItnC3FKLUXO(Kt%I~SYc5?+H|D4$jw z4Ikm}Yu1q;!|MwB)0EHH_P)=r(>x-AZCw;do>A{qAM1^Ft&8^~){%{g69*3)ksmP6 z>)R&fjc?4_hO|Nj8dVw<Vhyqk_f7mhj)Jxd3eG0ZBqF!@6A*PU8Odx~7rV|I44Yi7 zT__G$36mzkEA&~OD2vqAY}AP(9@rD(aV{=C$w^-@#S?Jd_<x#-KW^zC4+7)YgY{LC z_vc8^|C8GF|B45y$w}}jh<=TPJnKK96kjEWR9~HixOB8EwEu5mia!SBUzNj5|5j*j z{9pPG|Dqc<b+t7$vi_Tv_%8zD|1sn7zr<ht0e}d6^`!qrY%EG6MkD?uIsQkkmHeOW z>B@h~kJV_@|K7a#-vm|tR|MrJjU$Z{jq_h{6q^53T1fxbw!wegtiR=M{_mv8fBi-H zJDgIX2Ck~O*vQ>`l#akeo{G?&%wWoxxa5x4y}<z)dbi;&g38WN7nlNgY-QRD022%< zSH8p~+z~Q>9N{Jv9)ga*^cpRty}|AO6<xK~{@VH23H>rYxN&&)UgiCMs^c!G2+JT& z2!FraZr#thT7W~P+Tc}qwH)d#(+5kpyNU9udtWukuHeoLi`J+MK*KC@{XW(F5wA+9 z-tKYh7d_Q%%Y(BiS|$f2tRa=kWDz*uj$38R1KXrqreqz{sm*5{vnP<9U=<vcrDC|| zQs(OGt9<$k>4)-Z2Y!1`UI*tdXX<YdkP)GGkWK1HJI6@al5)dPDidK)4@>ptULL`R z2lG(;9heK0-*2_sNY_m40xn;OV!Rq9@|Y>ZU{tXYj*Oe|nTOWBR;rIZ2PQC+Xf58( zAP`8ToYLtVs+M8MO^b?Igd*|+<zVK}&GDGR&}BS%t#TIR!@eS>K+IViBGo0wbBN^$ zitp#(&EfCyj3lTEgyk`cjph)|5gTIErN0Ud6`bZ6&A%JTROEB#GRu_}KhJ$Pr))@3 zm!irxmcNvzo5Lj!c1x?xf04)g>LkRu$DYrkF9MSVCgVB53MIl&6PzkEtxc#B;>&$C zhU%|xE*yO2(s%P%pRGB3jO88HT8ZNxRi&#L>u6%`a;#r`(oX1bzw4Ya;mg9=e7NK& zy&U%Hcx}1AobT#Rr-!BEVb>k;p#hV|e7ffl*qE+)Un00P{+>!#+>gH$+aQU?X?m5} z&C}6z-_iaUE>H+lgHvlY)c>f`rPFi23!iU1Gp-!wjnWcTa`xJ$rpF8_{K1lUbPP=Q z$w96UOjHZoxZ~vlO1n!W9lAzLrX#>2a4lfnCbvVG1shq7h)An7{-iR!SR2<-ptWD$ zg#U~{J(9Iaas1l$)KQl7JD3^m`4{^So+1abG&RD>uprjxA|v9R;L0{+vYhG4I-l#J zrm`r0Hp?I|R#KDj`Y>`y@cU?}<&_>MLu+4iqQPs@itn|&dT55Qc<DTzA{o$wTdZnM zv6LZ2D*WP^mK^>X&-}>uy)5qfxM{R$F10*POjlVLLbfVnReVj$D+pB2!bq-RRhod- zdofOMk}!OW6rl*X@bvM=DfATSX1-{OvD!e(*)`>6ib{6ED{2>za&XWZxV);iAfZS` z+NSg$^F6MnQ@KLF14t147+Km{0Zz~aeu^nd8p>ynYF|daf_n`w+8VNyB{jmuzhVfg zROM!u>2qUanRGpzpfZoR@&$w|eBgEy#Ja!CqBIq7h}w~zQ~D$A6}!({$$kk@esut` zQy5mugeFc;+F)}!6!tk11?_&A8*gq3EgEl#nF(@qm6#%Sd+xo;jy-M#)#8<?#o!w7 zQ|Nzx8Mz6plRzKPJ7%RE=(zrEk~amwSdVs3PALiG>Q+cEG*KWDq#6ZcJiiBQiiqx2 zuxq~|7i^K(8CuVay%FdgMC9#g{&|;LicSd{%>pmW!cSg~OlzTl7{HI8KQud|VCQXV z<r|b6VK1c&V@d@@G2)C6ZxUNw?mr(5ayk@B|H2rbuN;6UVp;uL!ZvXi(gGex!n;+? z6Nr2p4zU|;yIiAo799^~E?P%5bN~+)$}j@qHWor?KQS6HZ7YYcs>=d@9FLYaD1@;L zkB+7=5>JHnvw5HBGwms_sgJbD0Wqymp;W-9d*MSV);h3gTCaLv0O*d}k>hCCG|01O zlqUe#jm#!ni9G+jhfOSXPrsTH$SS81&gv9Vqd1<cZK87oW*E9QjKR>b7rK@;^g~c? z3jYfaPCWCo&`kK@O$h<|i<1k+=KN*OulnFP+b~wt<a=?5<t5C^OUx5*5%epG8H=)C z^Pu<VN12SZ?yWu<yi(TdcWU}ak&Qn8ug8|Anl!_DWMX|1uVinyQ)Yo$?G_?YwC3BU zi4<Do&!JylKX(jHmnBdlT*NR<_t5;mJ>}?oLE7{m92lAOG8Za>L12DJ<M%qaF^k)0 zDlz3@|Hcggxjd(rkWnJVou}^v7-7AWl#gV7_#U6HOS}N_NMQSbd}F_*NnY?(8w2;P z<+3w5iGT+=1y%&H@i%fW-LLVQXPUfej$qGg)D#ERK$dEZZYi93%uW%n=m1-ibnCS; z8|(Ro-XBXC+UFXFg)85%xAK?Zc92iDF%N+xod*g~T}l958z8F8TPcN`K(4e8l3~x= zX5~y|oQxv-4QRt&-&uj6SskaQEaNNlr<dL`h26x|FZjql5v*n%eThyI8kmUtddYfz zr2oz%&L#S(a=^#$ALr^`nr5N?fCkeG$O<>DJNZUOGu8CipMmKeM^$2O+C~s86YYV} z$Bzr*>mQB65l?iz=OFJUE=;Z+FiKU;Wj;Da<Qik4)`0?YpCWwIgUrkeV#&DQFE?d$ z<R?q%W$Me)evpV8MzTG-xb}hy86jUE^090Etv`t=L{9lokhw**BowbGYu6?^zL$B5 z?9M&`UO%NWwkzL_dYtCOEtX_7@zCE0Z7)gU*|Q!ShLdSHpCBM+``bj%bY@Q?tyvQE zvhVWc1l9DwM2uiq)^&^2j`ZuqvL)FbNdZNISjk$UD|cHW*4sDA8idAy*`clpQ<%&^ z&1fcify81P?mZ&HQ3i$h8AeX*M;%(k<YSljA9KN_Q!}%hJc48LoGLU*1tl|KzGVJu zkY+5v)fqoL4Yz_AAzN2nbi&2285=c(O{UM&V2Z3r*06%dun{^_yq^fXRvolL--(aa z(4&y|o*b+K)9Oc0WrP+2tMtm8am?Ak#~N;D#mJ|jj3*u($=MKb6B2wO$&(jfPIE*U zq&y}&NDoMIR2#{`OD{Rve+$@s()EU**9N1D89Hy}=#(<uyyY7Txdrl{Fc_zD!lZYX z(3^TsdBHD(2^W~$M$c!YBJ<k#g25^YK}xEW7wCe2QvBFH%|JeD<e&0MB$M%Ft)vLp zGy6U~Yh^lD@IK^+=@gl7VZRv0h-S!NXk>}4XzKwlHb)*?Y^I9N1XD$juS%$Ry}VIL zXq<=fE7^z(!TBH;oYKBWVM;QWH0_#@6N*D$g%Mar@H7T1HI$gZ1g7gZiyF|tluZm+ zK@P0VM>r{?CD`zeCa1>;ZH}=Ap{Eh+#cf<x=;LQg?tM~rfhh>Ozj98*lK>+iP0Ws7 zm)*L3zm0dvA6XLVu%@eTCD5wAz?Oc~6o=2PRafbju>jpb?Zg1S-W+7@Ki<fh1$VgS zKaUa%69ViGmL!L~ZnH#ky>!kt*JTO%p*~BCCqzIg33&$=XfNlTG~Rtu>TbB%a`#45 zSUTBh-TkvOprHAMexSwl;I=wG2if!uCE^U^atp7)-p8+TG*?wH(nyqS@5nRk;)Otz z1<x-gs2n}E&aaMVv`>fjav48w_9W??>nFXS&iy8fT{;}5)<1d<^}_<{;F%;~%{_-c z3I`x+eUX#|;F-+bho6JJ@4SAyo_cj@u9tXg4NUm-S57A;z_@5H5wKSr!`EV|o+KOs zs~%bgtww8fy=_Dgo~!m}71~=Tz0fqL57Tpzyd!ZT(;GjsZVDF1nU)FlFBHd!p_Zj* zqBBKg0V9%V1!k7?GZxrSwdYJWiwDU|&eVF;zO34Fyvl<A2qAyj#G{qB$}LNZNzT6z zk7d0wBFOa`nivun^A{zqCYDoCP*dN;)U{Q+*wMupC(Dw!s^+1S|AY~c53knXQg{1s z<NB%=>L!bK$~%t#sz>SrEA2hi1)tm7+dpUsyc{V9JQ&`WSacq+iJFoKgNjH1S5mtf zlN8n635^{I8@(wVjZM|uX)<hKv)kU!G>ZHkp4#<fAktxD6wXM_N#%3Y)J9!RzQH}c zj*y-V%Cm|OWf(aIvw8H*^qyvSftmfcsjj`Z-e51R5|z4Vh_t%06=^x}0ml>R2nT~D zg{!P6uNx-qxeK*M5LkD5L>6lVx>;RUUhUl+)i!U%`(i9@1KPB<Lb4`$NYQ1zaa-q; zO1u<hGw<Act=J~;k)7-srBKS|bQBbDk)w!BE2S<Y3${^LcxC~}xKC(;k;|940zz(l z>mz?4vK)yIT>KJ_AT!G>_Fj^WkkA&=$h;IYzAxCw6duwKDjh<k9LTEC(i%c}w4lwu zw2pdcMWKqQ2Y!HI%&aG<dohaGPEAN$|1kwbG%R7~<0nu);(oCr(tf(KhHU=)g@cXC z5$L#e+uO45R@e51(oDVO>Ko;^F~{<Nbx8rG)5qc<CuLFQBJt6LLm-8hLiA+J<}L7# z;Q$%CTIk^2_@kVBjR&c{WAc|z`|X`32^t}cnTR7Fzy=KPXicu$v%x?<;J7E<J1lpt z$6ko$QO<7QuAV$LkKN7uQ!xbh&*;i;N51E#K6{X;9S*Z6z`-G^Kos2#^X^rT*JEzF z)~D7?d%SY|_=H6i1t}DsdHlgxlS?>3V1-$tEdk@HsFF$WyZ-is*(ykL#kY#9eBfg& z`LbIvs+@y^`HQzRVpzNo!rJEKn`t<~94vU?PEEqEEb_N3!veZo%{`V^giKv2AKFy6 ziIv%SU~A`oEI~^^5C`Ad?<h+JnN0hK!Fh7AZ?DVMOUQ*1u1l2((B4HDwpzW_P6_eH zBcBZ7(3begCnWb=&#muE)@N>_i9bDbA#<_?r&eyr5JJ*CR)dXC1UEH>1kn3U8*m%* zB3u~N(MaW_f8uaxPXu`Q-!pohrZvB#IAwjra$q;dXk#9oHy~al#$HG=+Piqi&1G|o zO701VpFLAIa@S7quu{_hZsJzo)KsfFyh3eHeHxUxrT;2|>4-_(mF0JfnVq8S^Keac zN{TN!vL1*5VlU(aIh@*c(2pNNxRl#*L7kvQk<M%jI#Aj@)>fzHP)pFhi!JJ_f)LFo z+Z#SkuR1?4pb%$<BXpBVVeB!k(hw^D85BhaEw}A#AigKO`L?IdW2=k2I*ub^sBVua z#=uJCD!o(oR>QJC$*kn$MO`#Jy@#egxvVY5E_E~bc1qH<rs3@^IDSeElR=*=yp0T? z<%+AiKyo%(DM+93G|6Q6CNLSbdyRxB^SPh?S+bK2^b-{2?LK``x^uIvUg+`ZxytIz z!!7lFq-D1D0eff43Ox#G=8=4eMB*CN4KQ3p0q5cgUuLw#SYqmEF%g@~`&dkD%6plL zUj#(ldBV_pmynLQO);FivQlU_8wg!5Ef-%R0ccxN1??Ov1jknUBNmw{SC<BDuM4?W zh2{mAkK>sh{VUg2J}ya1W+4__F$iThs;z;(M0wT9U7Hgw4-x26+VKOra)2~NAX`H) z5a<Bz$ovT71d#@ioyIkk31yq6MNIb@18vzhuASVkG4b#+-l;7uUfc_=#?xX-#d7?* zFgH;p3F9LF)G2_sJAj4aCKnf59x+9&B)?@weM`HTIPaT1?rN<Q`0;FbJw?rVjg2+S zgb#CGA8bUo45fY30i1x=_m<WAUo_AOwt>tFkw3H5A13-IBkRpAl=3&DqDf*O*?DtE zh|)L<_)En6z6VE!$c+B(r8DRbn(;2JY@5T96*fHlcIH-*5_J@YWj^(qIG~;=m^2VS zfH<fa*sV;=txU}@e8ydCNTOya&c+fv`&1A0ijn%nxMB;EaxEuVDtbyAahHVfoVDcn z>*`pdq81dT8qnE(iuffbTS+VJ2m*s;wT1l{oq)~1)c5OO0%rb~;44w<L|gmAwtrDk z4BFy&l65<WNX{xH*`rkvNc%g)MkO3T&iYXU8Dx)W6=|Fa>CE7cW!Sc8mKuopl<G-S znfVYg=e|=kkQ_)^wsn0S1H~D!ZZ+yJ$b{5#Ao@CMlK8Zp9mySd5zUI@)DyTp6QqFb z?xz-^31vrfGGAVWY$`Y3R7&kFVyjr<mhY4jd~sD|y4n^iqpHhJ)Fz+MFN0D?&ToM4 zNm8wVzZTJOj>LBDp+I#yB-8sOe<pi!K1}tc+yW(nDh(V%Bek}sRv5{tR~9q^i&k)X ztvMtzMr)Jkkn13F_EUIaJu%E?25Pmo+e}`NOP>}zngbJmMjmJ!*ZhXAe_aSLwOP{n zy^Lu*I0kuJ?QF(<wY(f=nwxlvTyQiZ9r^qHhgsGsH%AeE!LTTJ+RCBojDMQjSYvAO z6k`D=gIXw7t9}hi)%b{t>9@dpk(@+b(xX@`JtsIz_`<9}a?*SL6Kca6DyOt|fDyh9 zsv=d>WfLnqPX}1@UKyilV#dol1reorpf;{yhchw4y=qC9NNKf9adFL5PBLa}?}$f@ z?8%QPdDb9d%2-_Y@==))G0+sFU>dWnRvQl39}0HuX{X#<;N5MTd$~iT{3f#S7N(Up z=CtT(Y4?X9@{p^J#8ewA)<246O%1>L-Bak*c1B#07hsM0d$7ug_739bAaA+$8lx?9 zQ$ylW_zE~{TZb!_JBF!-NQOwJSUCGu*M<2$=5i;99)z0*R;bTN$T--Nd{nhn%NG`y z=a`O8Pv4*c9Y0z{?LU5sO2~x6Rc;1^SK!{l2>4f<Bjua+qJz%m`5kn2qCg{i^<^ma zC3x<;1BDT@R(zM<+UZoS(tt7eZDuD=dfU}O+F^IK_UtEx@c|z8kTv;M<W4k`!U&Nu z%wx3J6mb_>$K-XcjnaKHf8OJ>En}-=0lwJmQsM?G@q37xtjfl$YK`QZPBwKhW&IM$ zfdC=po!y<CljIFa{(Uj@Dp8q>Ytod#hfU5p#B~{iw?CD2MH$nvjL#Y@kd#0(RxZa$ zFFylcObTJYLhD)$6OPOt3C3Jvgh=*>5x*r6jqT|~R-SArspyadxsF75D?J5hyvxr; zeyCdN?t1Fg+UsJo^?Gkj=h*b@At+bpcl{ixIXF7<z;sTjAL>Ikb-Yk*_DsX*Y9(Tk zH}(8(5TWqvS8ovNmb_;f{29gm^@I6v>eod}x#jC*6@DZwFORW)KOGDC0l#vuCM%?C zBLaTI5c&QhQwLqfjsqF~>VwZBzEN+Ls#q@Ehm>%_?i8@kn;@fU93xqU;Oy3Dq3a`J z9wL~6N$d^fiaDGg!34rHC?>bDgrE)$ffBXL`00tC8}l3{Qp}@o{1)zR<s^A^>qh3$ zZp48u=CNe}tga77Ao1}7D$g@rb4|341ROLjH7SRx(*gLN9m#HLnunZ|w3xoUg}Mrt zBuD`J@}o#Whp$Hiz0<8)gT_xp^j0>U^^OUu$${pQb=LOiD$_wQ<#DvkGXqJ@D|!q> zX>c)q5#@~Y+`|?=aVKX92z&>fQTI3xSS0k}V%O=?-29jOcXY-RKx7(QNBiJCxUeq6 z^WR-YWq9^kJNPA5GVGO_9CL678r@262oXzyffC^|$#Iuy?z0!GVVzNTJ@2591oyil zUUX^YgzfUNfPFeU&M~4ldu@qz(9p*<4e31$<6OL1vPx_5O^3zrzQ=jjZ7@Bcb;~^K zhHn-%d`Z)qtxPHh#QjL#Oi?J)>q5}0O1Z9toSSh=<z#vxwUf1Kq)7;F#>rRIt)5u- zY{(9VVcv?W)jrNjb~)<r=$8}PAg2gNdw6uM{$2)Ai&~r@iz%0bKf`g@tv*;U@w--Z zD=F3USWiP<ZN6o|HhyOo*hvr#c;RY!-$~c8;73EzDOHp@)x8P`vb0qb<YHtvq(1+6 zdns}XTVUfThd!`Wu0aQlr6iZ2mg0g3ut=6Mwn<@HJ{YT@iOOoN*D_^Y8&u3iIt&pp zL(X%m_v4C6OPXER5LDlu>5v{<#G|q}Duv3?vFf;<rUK>(u>8cE`M^C0`qCdH8Vp!z z)pxYg#aql4M?_CD3MLBmfs(jWv0Z!sbVO|k2}JXd_uS2IH!n^>xWF0XL<n&4Y_?t6 zLI;7<=w;wG)0Yy}g2KQ#a)VYlx|=&&E;jUn7V8vFl>e0V{7x6%aJn>Hg-+zh^^8Q2 zWMHXasuZlFXd0}e6`xa5I&ozTdE>?vars_#d$o`4UAyoTE3fixUReY#ne?E8gQZS= zo1GzzOng{Id?<F9o-O>-LfZHd#ZT;+OsF8WhyT3n2%X(M<wC72<WfRVr}|3b#`RN1 z>w~+^9C!<Gi;<eH&!kfyv1D&_4hK8A&U+(aDQ|DhSptU3?3v#aXM%whKFj1?*Us$j zb`RkyI{238Nu#@FB&+gpksm=bbWw_O4ZuOHtOJ>N*fKAOO8PD+=|y<PxUEKtgntG@ z|7Xr@dWAwUKbtdbTX0Q}N`_;=B*|%VrN@c}HOA=ki^N0mWe+#~MK^YjgN|Eyd-Z<7 zw;z-DySIaV{oEokn_+Sc_C^vC>JbI~CNk;lV4L*Ck3$wqn2$A?tjl^TZgxfn!xIE) zd;{}3owDw5$(JyylTW&x&=<cp6L$cgv{J4dRhx-u66W%VxPXanlIzE7m%<q_L~&c% zRd2+fMYj$RuG$i8xNv%VcClVp)f?1zbn8;u=hDaeju)C2SI~o;43w+{1nM_f7@61z zdh<O#oy-lS8su<PF6X)KkuqrFlFr|r^R?%$5bVFK?rcZc?z>a1dP^QTP3wUzt$Cd@ zSPk<7=P~nuIe6FD2HxsIZ!!DMuwLyQXD7kr$I!hcVYYECY{z}z%5{s&E{nuR7>-K! zRDk_*<dyeJOpa`{FJ)%ED4=ab#G?K{1W09d`Uz&@qWbW+qMNtm#-`CR&cu8c@A6{~ z8J9KeOUN1dio}JsPhr$inIFZj#1N=8)-me~=OAe73skWmg3{%y=O_a?cbc6ftMdql zGgVyUIEajEgt-})A2dR9Ms}sM=4R;|bzW$+2DGnP6y{H#X$Ma0Nj0K^JkO2$ngRmq zn$XLJtr~`U`ey9gNb5<c@M+@ZG<<l^@Mp@r817o<<M$_Y0*i-K{*5wOWd)uag~gv> zIoqB8vHR^0Ht7%QkeP*+_HWD-1JmEQ#s5j|tR^liETZ<O+L`GeJR$?jUui^!FN&Up ziS|Fx>P%mJ;6Ksoe=Ps*D)?d`|2tNl_KSZ1R~qqOSap|wA<r3@{;E9w$LIQ+j^KaC zxc$|X@OQ=yFa*%)0}ucN2mlZe5c;3LgFiNKpD+NQFoB-1fU934F+qi%{XokeU*R8_ zemv5{KGMJe00ROFOQ;Lj*t-77`Qwrbkm1s?v9aLtS$(Os4fL#WrSyK98d>T6{90Jz zD%cp98U1vn#^tlL#FaNQG5zU)D{tgrWbb5T_(%2=lYottt>ago60Veuq0v{6HUI$N z|LN{a;B~6j|EZMTlzv4@$|<)(7w@p&Nv>{$j3<t{ggB;TI!Ba{RH{=~5|K1WDl{Ms z6b<Tj6GbYDltP2K44KaF`+fFa@7Zguqw}6~-T!d;th3*}_FB(c>simUo?$(E?ct?L zbt-j2>C&gXn_s$RyKB$LKe5v6r|y`0pwisZ_wPG!`rZ@&Ko=`^8JX8L@BXs4J(@H3 zxfh>#{llg++BfUoeekdg`z>oexp!XKL;rL2p+K*Z)AAmAWa0yp$5(w}`-YkG^2*Mg zH?sYZTO0R1bY9il+jQyME$^<p0eLyo-k6p*FK>L==Z8)iI;7XI>soz!%aZrrnDg>8 z7cR(LK6Z9q+5Km&-hbN5Q*X-~ciVk;-+6D<0ipUgcg-t%^No|=e>Csmi7!@teATS| zCr+F`<=MFlmgM~-@5Q_sBg&pJ^yxpYeEQI=$&)9ae5m`>Q(g{iKJCK5NtxwNeR*QJ za+}MYUaC~`z9;r_hP~<Ww!)(c6&>OPQ}4@!V?F}-)BW)lnVHQSGmO7&TmJ@m6oifA zwW3ZGpO{M8bd5|uUCV6&T}ME@O>?{V@7v?50loWYXMoJJa<gx4pMj5H>0}*^_+Ov# zg81FNZ})Rf?h#pi5X`T>nKZD@An#zTTQx2S$BYjmxf#U{AxZL8Bma?DliH3L)OK^l z`~kP*?7z751G`stTs7jWO3&=MH~iGo?Sr+)PdM|wvJ0P`@&16x+Xl=ZzpdK82E^|E zOUrU2ZW;Uc*qENbWlZa}?$WbrWON?;LW7%|zFqS`$7}PlUL5*(@PpTKS7z6*yRTQn z`O`Wd{ppjphi$oi|Lse2MlJoV+r4$i2Fpcm+Hi1hnK@sr_^RT7^;6=bo|?2Zyyxcg z_H3Ws_?Jh=cj@%xc}pL>ZuHrY&2Jq)C1>DYYTnbS%PXCF4;wyx%UKhz8}agv`rF4Y zpZvGED_*ZWz1REgr@c04&Nn?@9WeCr##8t8UHoqU+!2-f{<i$%SI_@&;2W==|3K|$ z7QEN-@p7{lTzA2RudjNc)~l7ypB`)QQOg^~ZumZT>iS;I`>tz0XVj|lIj62`(f;9! z_f)v`vHpL_e5hs5S~W6$z2>4@AFtOmx91sCn-BO)GH}U^i^fe&esXCqr^i(vp87?@ z*&}B!@3-LKlT&Y<`p<Q}*M7C`w8yTCW{!Mx!f)qJoql+Av!**HP5H-N&2Fd_x&5Sr z-G@Ctw8I-^>b`l^`3Fv#edEa3D^8g?7w_Hl#H{-FzH>|7i0r-R<e&5D*{8Rv{Z4HA zz@OGsd!h16RbHw*VB8IBKVQGP${7uNR{ndB=jYG4YW>@hS*4zue8ZAw->kp(q${3& z;qZjI_^9rVZ@*l#dT8@*?|i=Fgq5v-URe3$C#wF@^T+jz-`;fftOw6pQZ4k*-<LO< z)c>mYs_t6YcFmeQ7Ps0}f8g5ICtUyS?EOoI_xP^sl$_xF$gUY{tCT(YsoFh%-MzPT zrJZ#@8@;3U+6Eme;qd&&qOtM=KfL0U4=>Jt@Y`pqcmHSj!rpZbPag8fb&2sS@nP5B zCN#RGf4K!^7CpFS&!YDhj6QN>?(f^yts2_=!s^$*u=t(^)6ZJ@=&nbW-TuTo*EYEO z(qDeO;$ZhdpOyY%#)a_(OXnZ`dRUc2+b#!B&KdOOrlqa-F1YQ<x38|ZX-wdvCttkf zjt^FszhKj<Inxh5a(AR>o&3eGkINslWqY)F)s9)O)ExcI-Dkgd^|cQTy86c8<zp7T z+^*x8GWEh+KkZtf!3XmWp7Gtm+v=9zckB52k1hWBpRJxd_p7(seskmhRDb`=jup2h zwpBViw`Ze|-)nzM&F`;R+jrA7YiqvnW4rm22acQa!G<^9e!A&r!z#aXdX+9aZe9E8 zPeb-T8r?K)=+@WX@AcBMK3&@M`RR|5cYn5acY|rCC#ogh-gM)GRkw}(e&v?o9f!X^ z<g7&%YfP?sV9Vw{M;_Y!RG)h*?Y!ZO*JkbgSFqgR4XfU5-ZlE@ZDSie|7!WpW3DK- zs`lXf_tZFb>da3XHGB8V?*<=To!Pa^<orm(n_s-+rpvBrmG$|gm$uv(d$IcXc|Eq? z)9S4+chorR`Q<Zqe^c@0b6?FHKKii^&F;%uedVI_K56>hk!B<3JTmp&OZty!v3tST zt}~n0&t9C-ugYbY*L(Q6-QT=4W@M{59h;rCCDOI&GgaT}Id;*W3l^@t<CUzgn}R1i zT7KZ(`}=-z_{>wsHm`Vi|K`^Zym5KIg^R9lf76<Z<C{D)c+5GgtJJ^m@xPwiu*py5 zV%hokY^d5{^}GfTCdyygYhs(3<qsti4|IQN#y6kjpSm==^6mS+xb?4X$Ig3e=KB6+ z%C8w)>G2h3-u<^LzV3H%#WPE-{Nedn{!cpxRoGeYo^4HLywzahIZo5Eo$mW%dEbg> z{7}38neY9zZSON?t$FsetcCZ@%PswOwX^HA>Q-Uqy>H+4#op^HuPD?1(7QJ|Pab;c zZ~3KrtsW6xe!;}0y=Q)R^R}Ls&ToF+BTXuH$^3ZduCvF!GNt8nzsy+Ici&|%ocZw| z6{i0&`f%MhYu2n#X6W#Hm%g&E+HHpx410e_lSeQ6_KS_N3TJg27<{A7n#vFS{ro|r zZ_ECsaqH$!4ql!7V`rt?5B+@K@a6UAJ-4mn=fA$QH$S{C8U1k4mM#l7-5;sf_KwAG zeEegrGY(gI<KiPvKRP<^yum--`SbR7AFub|wgb;R{NRC0H=g$VsLy8XpSJw&*%uwE zKkbC>eXHj<%hrE)%1e*5yd}57$ye8%QDbPAn?9;@*<)XpdG_L8oJu#`y8W8WwMWh# zbI@5h@oyvc<qw%!`JvAzPE0N-)uBb;Z#SQN;@s5@$4wfuqryvz&-{7CFTd8R_xSSa zF9-4u*B(97=@nkvyyZQm4?T@o*@iVLU0-+eJsU@E9Dl}~mviDTZ@qu<v<ato=(T4= z-8)N-c(YIT;;%aG{AN}4&pthR<UpO-CzjfK<)ER5t~j)>ap$fTdVO_IcDc__AJM7v z!t1JScxXzE^-t~ldO@#iI(52lZl}8rpR)gdwtriQ_!e;^F>SF>L3~>*UB$H3wVBs6 zyBhL4tCRK`9t3zY8p;TTqv4ErqOgF^1cbCtGv#ecf}`p&BzP#n*JRZ<h;QyYU}%mP zveqMe0CcnLo^=Kd>3egwCYnQ{jzFd=1=Y<czG(I$%TfwzD!Oy;X}k9C8nTM7yE>=% zUUz+S%agB{TR!p0ypCH(Ev@nUhK9QqSIZxkRr=&}8aIybe17=W!#IHUliwdWtIX-W zTb60qym?NUf39CM<C7nk)hn}c*~1U4S-<S8jLVu_l(;e(Sva#z=DQ)>l%4rZ$BU{j zOe}o<uhBC7=j7lEgngU#n{emAQO)|bzTv9Yy$00eORm+%mj1lKJ=uBZ-hb{Lea`Dq z>7#y^4$ZH<B>#bTp9pMhxO73}meIX?AHCt|+nKptj?Q@Nfrk&j^}yy!F8{Jt=OqpP zvGdBD72EIHnLXm%#iKh1^XKN@aB1BhgZFQ`<dO{w_l*8_-WQW|D^;ws<B5yPJD)__ zcUyjE)w_QiGiz^T^v0vrI=ni%U;fM;Q>)AgoYVWVc&{%OE<ZB)@DE>qvFe768)|e~ zI(zV*AD5h(b!hW}X6GDvwd;HPt{YzS(1kBmT0dgeZ@YrQQl+|He%HRjNL9u0!Q4?Z z>BN=#S(FLY@v0^bnl%BXw((g|wL<Fi*^wY3laHeb6-t^fj5>^IPLb|Fd@(e4*uXlu zeTHP~)at~ISY$V&_|)nh(P~rceS>m`?HR(Cv%_U}R~&Us<mf})4_>r<{ei`q_q5y8 z`|MvARn5D5$#sEI@lE+JUH%R}=JeB+ia$Tz_1aF4OnsvDjHkYz`$D%qefz%j-IQsa zADR02l;^&i*74y9k4@`%!jC^zKWXb_y=P5s`%8_)7Tk=<t#J8C&z|$#Ig_59b;q{c zm7mtCUaM)XHoI12Hm&t>k8a(%#hh@jZfD+jX0J0#FP<=F`b7_XU!lkP(I1|FPWb~z zBQH*Q<>?WJ#`pc^^-p^r9&q&WKgO-jEWK*d1sggIsr~KJsf(8{PR`!6^_5z`)c<@~ z?y3KL@{E0t?>M>9n;#8-t>KZ(MdMHSe&UXX+pBz2ZC%C1&%OBYxXSwv9(sT0^<TXP z(%*V`$+q)<8$WJi!$xPXt6Q`3$T{avyKcqen-(QUHF;(FhMc{-cCX0H{PxPPk4*Yu z@kax{ZN7BU=;k-A?RU?>fseh}fA9KQzn->r>+k=nwQ+Fn<~IlYBR=ee=!z5H-u~8) zqlX=CHK6}5zwGEY;gcg1K0agKg52d}cD}W7bNkVUSH783?T1A>`)|B#<kp@?N9{Z` za@E$$?sVFYZ17-Zyt}q@{6ibVgAdN$@j;dI_f+bgy>;>>HAio~|7h*sHf;J~aeUbH z+DCg`S9AaL-k<;S>xOa39kZV}Q0w<;U8}7R_Uduut%}Pl&F$KDX}ys%*1tAA^WZtT zIoGdya?6EN`aQL#=93%0__p2JFG}6DAzGzf*5a)n@19iqaNni7_Rmjl{B72}Bds1= zxn%mUr@mgLQr;g3ijICheE1WeeE)rRw^F5oo%dc?7&EE}=qSkAvjv@?@^Tc#jGZ!D zx5#XGdCRN@EwwiVqL3R-IGBNRn!_2%a3LNIWcuZX+@|CPsvbjbL?}^oj|TiO1?<>a z6Btg=i{mdCnNJ{Q4ZSh<)<M~IXxN4t)@j_gKMz@M+#hExU!C0pzJWR|vIq3e?UNBr zdT(~yESUFu`QLXB`*Ppux9o}Xb%25c5`G+ice&@ju5-bc6*pErb>vqS55M$5ewQwH zjF~!N)r!kLOD=tCe)Y)Tp1Jy}_d8|1``PN%*S{NzFRUI(hBDuc&-+WYXnfvDAN{L! z*_D|qThw}CP1c}KaC5@X)!UbCR;yL5n$25|S^G=p$0l}O_Rc%+ocqB$-B!G_?4yt7 ze}Aa-lKd76+SmH&hW$V6ulwP`Uq}5ux5v@lo1UBd(<A3?czeUhDmgbTx_tA|W%II! z4I7qQ;mgC5C;v3J$BWayjP?C^S<{IlHXp2%xo*^rKTJ5i(xESJ$ywk1(EGn_?U2<4 z!T95PZr--z%^_FLn*ZXq9XqynU9@e)%w@06YPupi{lU!_3~4v{wXc^>0^40aug2j6 zwQhSV@5QHP&6vMr%nyeaUofNUx}&>}{;^{A$NS!Yp-Ju^+nznGQmvhT-PylS^R0t= z|8V(}`JWHI@SB}8f8I9j%~+0i?!fi&G2>3T_tx{yE!FV5hh`K;yXxd`91NjmI21b8 z4A*JUJtw>IzyY~+wC`c3+!}RSb-y{gP8$Fa&m4(yNZ&!Z1Bc+W4{?lvLWbnza^=qm z)@jk*`x#2c>U8MaGq+F9bpd?oI^*9+$Ekh@eNc)0QNN44qWwQBQzWb+>ic0A3ac3P z{jm63;Qbr*1zrj2t8wreMSZz?{VDeE|Hk@V0tM<i-XC+F=cYTkfHm8+=+L53Luz+% zS(k+sJ<bd}CS!(WT`rn0<H1-)GLpzh#Bpj*f+vbZG7=6FzIDz#|1}nmXT)&24^tAa z^&kZzXefeL-lDOjl?W#aIm2fP4u6M&_%H!JP5|ifm<s_=_=G)CSGG>*juV$8P`tcI z!jWgl3q)bbrIVzm>@5;uN7+^+5s*=$r|~4Pz)|BZzBpjUvG<U`x7#@iCj?I|f5)Lh z17o3J7!Qdi41k3NNI01h!!bw#gwK%h$#`UVH?d?`_1b?G3~+R;Onj-U!Yl6;o?}7x zH!&sUfB{~a?_gdWSfjkEJa&f9nABVV^)8y(C{ZZDiPDm#Knd%q_N0Eggs9q*fw=@3 z@DXGRQQp{uoYZelghGPM63GDL*9cNgjh{V3KCMsFjSASaNz-c@wP;87gt})*PS^AA z7o4Jg70sV9tec4lsFOoYIvFt-`Y_@$;&?xgdH!n@W>u8Dh?Izgm;zyxi3G9U%KVcC z3KHQs4$31>!Qt;@FzoUukLV%*rYL|AC<{o35@E@YB%+u{HV~y7#LWZicy$8IPbaB% zcqJUzk{J%>hQH$==s4_H=_Jk=izPtdM1uD$5<|bB-S9pZ#^MB`mpX8{u&k7exQG!L zgogw+24=mRSjbVG_O4LUJp{-AfK>;(HN-Bjksy)b-m}wkk0pS=1yP&{ykjggg8T@! z<s=bVe1<%BhF2zm4S1oTZ;F6zcM3rQc<r|&DNw?Csx7IXE*Yw}WMD2i3IaTG6yy|> z90PuGR5PP7Cnl~a;i-S%#$wNqB|qJ7=d?+KK`AoGpfS)M7&H#Ej-!pkZ9|bkhK)gd z;C*i_%3N=;=73hocn-+J0k1eoEZkU&BM`n(u1Ty1CUjt3@p%-&mUW^y@=NX=+$XWH zL$Qj%2N?qyIfR=8(}%GLplpQw0gnhd8GlHkOyp%!n0Hn8$Goa~<R_B8dqsT+AYmi$ zCiyf0=@<vU#UN)`hWKzec94An25>Av<pFquumj#8z)%iu+ISQ~5V}DWawx_&fQKaN z2|J+<^CF2vDy4=MaA1cB6JaLs7PE_CU{o*&wT4S0LkOIZyHb!@6PO{vGWJY48Zw|H z&IDH!)N#<0IA)l$Cb0Mn*rpVUL4hIWfEAeqMf)YV9v>b}lM+?`d=we*QKV2<F)1<- zEuctHU5Gf*SyVYTkFDQo=Stcf8ZtH95C{$1$VGE#Jc&gai*5oO6$N$iUS0XSup|l| z3n2vxE8x!~VE?^TmOoxD6bx`gC`kRzg-OxF9QB6<3+`gzVWxr{`GrCd242A!M#Pi^ zKqewX)(NZ?%$E^jE#i8lx<Qx;7_zZA1}6F56_gw!-(r1<$~xxBOz>wY4B3?6q85Ux z3pPuTApwAkP88?(!MzDq5RHLcj~lekR#gvu*MJ(CgMb=;QfP?)4@{gdmB%{#jl4ht z_2L*IuMV+<a?+kRkA9e}=Z#!l-H9Noj`=@u%qMOgJSWg}2#Sz=9dH|0qw+oQ7fSsu zjHp})s-~g|jnS0f=h%GKvPqjJjXR2>8nzYHh{a~&V=tP^Vpv(JQ^&D##<;R_TMRNF zE^9pGq3=pL7Nssu!-%U^C<?;HssY40h_*2k;W!bj&UmKa@Hfq~B#bJw>DH%wWIkZ3 zEBiy(5y%fFfuZuCEAp9>3<Z$nS?bDu6p|<XWM7d8+X25I!3uQ88-vW2K4SbL`@t^p z7$^~A5cv+tBRC?ypb`p>(0@_v0WS{Uu<#}q72*#Gat>tg-9%xhN~h65-&GL64zsdD zMcum!QoVfXJdhj(AM<yDs}aiq0lYFl0&%I5%Hx3eEQ(I6iAZ9SiA*m^`w<|tgb7Ay ziR-dWsh=(ps<vcYzyk;o<4+Nz;HH?w81NCJniq{Txf&F<!&P8HHf_?XMcYQgnYN3^ z+eGl0kP=H+G-F1gXi?P1Ltsh=%n9Zok;drbV4m+vFP%dsM2hp1k4_>GhT0Sc3<t`c znFz-LZ8BfM;cuKroRLIZfbZ6)>P6*{MxA$M+k{Oo2b1KhJTM7Qk3n9*fj>qP>amO@ z=BeM_Rr<-kA`!L&QG^7Ug)wrxXd?#ojgAHpLu4?}9G^uXhaECB%2Mr1pl#;kUPP9_ zz~T{wkR%L&2Zc3Bn1qc)S;)58FW*(h&%7wMj)*J5Kp<fXr@ZG_1;<b;rT-MrERVx( z<cj<V6lW^+yb27epqM+Vs7?Y`Zyu5~E(&lX?Ni+?VG5M6o@!6(r%QvXEso2hMJ&uI zS`^$AlNJL$T2%9*^JUS#otB;2wQWO@*|KTU7MVfYxr600E!8vzx)YTKhD{u6aU66_ z+M|e%B8hrKV-i9xMjFDJOJmCc4Z!3HI4Dbn!r__?`ir8R)FT}WJ>WSECh;+lMj(`; zP@T9=#+)ESwZ$lPU<}4^Kzf4Dq3=cD=Zt|L3<XqfsrmTSGnfu&H;oiVADLuq94p5N z?V9T@RXXuz!E{T&-y3HikrLn&;==)7(F9Adzo<u{Pem5SB}^~mgNMXJ27Jo+J^ay2 zElxie*sQ12OI}lB3pnt;M`@13h!KAnR}Nsrfuwa{W)rK}U4_C4Y(fo*0JBLLj4`e< z$v7~;)e#9Zz(|G&B??ssv=XP0$Qd9v^BL6uJd4rP2NtN*au$?PR)XvCF&@*TMAbhZ zMT+_FQ6%tCY>I?~C`FN=I;@0=sLrA481-W-we8w9?A)1e4>agl7>By?Fh1EC0%4`a zp>$^?;X=eNyzAD$TqZ#;39S5*=ex!r5n`Z&7+!jiItgkem~*Igqz5x4$gPmLF<Mm~ z9F~zY(?Vg$C+_{b5C9qLI-#<J>JgtQ`6&75rId#wij;=D0P}?c3+aJ8^YW#h^cEu~ zrE|T3{FPCHe-hvh>80=*9jH*gu~rZpvg1HZVKi~9BcTwOGs%sX1U6Ve`nV#IsiEz& z5(;zpur8?vgPW1??P}>gN6Ox?cen}$C_#u<?!yvD6xxa46@Ym!d<8tm&>Q|vdUJu1 zV}(Fn_7ba)167=~s`5A@K8vAKvPX$FLm}7|KGe8VK$Mm&1xi>?wI}t{B}CPh49rCW z5Rf8BmpqC`kT5&Jm5LzM)aWd#Vr7oaqRrY|)4F9AwcEltG;G<OP+8LAQ2HN4hH|yV ziYo2^^f%@Bz;iK~aizPDltf1f>mUUv%OY?g7be3fm*`U9GX;;olUOaWgorQ`03r}c z=U!peA?7<62@^#Ct$GT<2!tH3$P)#R&;B&IqJm4KBo4?SY={pT9K6P|vjK4vhfx-z zcNmJQcoFc70-dbGdm=2!a>&PhfMul|luJ?6yk~rlLsB7)2^@)9v)5_&>UK&HAe|R0 zf!KBBVT4vA2ZnnYH1EN;{4I#$Ob`LQB3~g&kmcox{KPYPPQC{`k=(xNa;FfZVn|g9 zQlJEN{Ow5nbjeV)B_1-D9D#roIRZJwCPysM1>`6IfE+)2VuFjZJv+8;o7t!hxU+5B zLiR6{mH@>{m=<@+nhL2<!s~I0`{3HH68oZl7kNedMV9#!cq;Ct#4!HN_7NQ+xc@)d zzQV7}`Ei=R|J(F)T-*0^rUR!!k*w(p>o)gAP~Q}sZoGIJ`yvS#lA$16kg}d8>5rsx ziyp~$ytp@^{ot-0lY>=@Ddu4JlE2~XQP2EWLJ~vM50M2BM~Frv(0bXj3xn|Zi2X_Z zkdCp5C`2uj`ve`6cIixV>tUB4ZHduJ!xf45g(RtmIs&=i4~HUmGJ2|yP=4Wc#Sex% z;Jrs|-azaFqJxz$MkO&w$2CzH@~}n#*sSIth&sBOU<?tGKt<gU{Y>g6LF>^Qw(lzF zVAolh=u=mPW{KKBJ>GL`l63`bQZNw=@G5(jf;5Uw7YOs%8(x{z+#nFk#jJ-gcS4BV zlBGZi>#6pnesPFXwa39}V<2|9sq0~@FoNK0C`7oEjwwRHfKH@pru@7Mi=`;m?bN(U z^GxczS)B@#s+Q6Vx=Kr`a#Nj~@$`9c3p#bBABp+u>Xl)hY?gaF{Q;{`Ar+*I2Ozc6 z?t;gTcR`Md9w^9>U#T|bPH+rrwhLk7zzcej?Gk!<#8{+Tj#envUfOF6Z{SF=>nO?X zSU@-gej0j#qVVR%>3hKx#u2g=1*;|)--N{2McH<NatuobObrt^o{YKLFAZ>L<S{sP zq_7y}(30UY6O)4bH#8E_2_s1d*a?Z}5GNANVKhouNGe`|)1@%Q^8C%n0f`j>$1;Y5 zQ49*c!oDA_4Az?w@3}h<#MCkWr?aD(COxqY)iGS%#?`3gfuD~2zx7@V5R!rmL4j0s z<L5HxnBQ$I*f`POwXkGl(EU!O&;8@R#*v1MR6Q%<)#bB7#$FUWj|GZd-=nIGu*9gq z^+5rG-|A|%Yp|nn>y?Is4ibY<K>vyXg-!|G8y)GKt@EDGlHdW4QQcm!9AGGBR&d-o z#{*`>V1h!N!bGH>vEWyPK}uW&5GaJ-T2eq&!(<rgsE+o4hmur>Rmat}VC)JKTa>^S z`h~*?MFd2%^<vy(Cq(agG4G|m>TOY11>0Ay*u><kORPzKwKnq^aN_4w>{%5h58JnD z(X4$3anpvvqnw1bnG(0+51@mjB@$zhB1x!330&h`x4EWbyCi|wJLdVX6c!9$VN@gQ zAO#{Q7lBKY@h@gdaQgw1hY#ka;IIsIK>6S;{G9lBrV9bJvF;^7zAT}7#Aj64n3&HV zMZi7WD&Q4)2xPZgE-X*lk>0v+aKZ<+B|->f$0!-TA4Gy{CV}k;aauwBkwA8MH68eX z*gxLKfZ9+Hh2$Z2z_~k{id82^vLK%WC|>lT(;GLyMGW|5F9=Dl=sB)}0fr1nXb?PJ za^)zgiJ}beWz@to)F=KXrlcI>0P&n}lsQmH9n@iR^Ux8D$lcyT8G6$I4{l~~XaU;X zDIjV~mI5WLr`nVH=@O!9i-hSBBoL4yNI`5d2@=xON00&m*zxmd1S)b-OzJ;{$YM|c zFbz)kjHfh&X@XH=A#5?ibxH$?_8(mRAx83n5JA0IXel=mpaEpy29qv<p@`9z{d?>e z%GwSBqDB`5F*4Xx_9pN<PFw=6C{@q~83+`Ew=oXIIssxz#GF79Hk)ikkeRW<<Ac?d zR8SwWJ(nc@Xb%~G)P_3Ukw^jWD%*R1_FL5p1;KDEsD1<(UIC+$Ib4CT!2&dJR}!0x z32c93{0RIZY8cT@)|A&alI(F9TmJCLQ*CyjLCO!XBJ56X;d1y`d4M9KCL|Gq;1t}! zoE6Rk;$UVorG|-ZBCMIToXL+wCE}Lkg&(wq1HA-Rl&cz~a~xDe&jogGxUB=B4>z(@ zpaq5{jk|b^he$BC9!!l<0V34#IFKKsra(wsO`whwEx?mZjM`o-!S%RogBFWKRVV$V zig`_us;h<+k5u8!PmwCtMs7bO{0t1l7RA3U8n?WrEnT?{I#S3+Egp_rJ|p-l{zF0* z%Al-iPzaB+kfrDV(_;14g)Gc3?tCKO6|xXB*t>{;0FehFOUf)d6)t2EfC^@Fg)Bu9 zR}`!+=!b;8V}mn+MZ}@)$vqDICJV{-8E;^WB2ExI$~6v^82%AwB~P|O$O0<YG_Xd2 zkfn;?ss;r@mO>LOEJ7AnEEC*V;K-QI(TeQALdxI7l$1w2kz7T{g1A7O#FonAh$w(1 ziI4@8|91&l#OfCi<bOuUhOvAX$)x^M;Y^Da08An4o;R0<koB}dYJ??82<9kJJ=Ipp z>r(<Fj5F=_S>Enz`t|L)gm--EyJHcDl+{Q7GyiY)hvQe{GN1YTtIGKE+~3Ei|2Evh za9vp5|BLPW<tJ9!qFA#-qh>7|@`HvVKO?;?`5Cj`7K5tuACjNYUkhx4<7%W*enN6s z^3ya@DL-kfiUflEgmg$F6)rzLBbDkU0vKE)6?P_H|3Yj)0;(oW_LTgjZ(fvJEU043 zi~JNh3i%2B6sU2HR8$1e0{MxXKbM~_UTM@52;<t7ttIjkqfN<A{3fQPoEWK8ogp`= z1dIIiU?GpTT!H+gmO-_h4d92D{y#TT5w2K3kpCI^8G^gLC??fTWi#a`0GRSKBr-V- z`I&%~5)m5|Glp0U3DWbfDp1Y5x-ZnD5Gn-Bheh2>W%=Wk#MToS!VlBEDadBQg1b0E zVwehY<QEDdaE)dq*^9f8NV01we`rUj!yNcT#)@^HrnBk@p)#DDheE^{0LjQA?v+5n zr4^T?f=d&Rjv|<Sv|U2fLz9S-MT9Iu|EPQ7H*Ij)jRP<O#NH?R1?&P+oZ2s6#P<5= zy9U(QqIj+)7uoO>!LNoC!D_$}FtHA=$b(IZ)dFvoGEkrIZz|Z{2sN0jr}7mB1bN5Y zSpf=zY3#0~OHypd*8!If)Tn$9{DqGBn>}|SsG2es-1x;I2)!syYnX)({5IwuW{X1h zFda)4Vo6L-7GfDm`(y(KWYQat#5zdWHl&?{JUV8L#E?^W6Ar!!dNS!NLK*+7<N`qL z$`L3Fs16Bm(hzA1`2-+&5CmQwd1qMd^8MMB<y8{5Iea<TvUc6^<Q^Dr(n&f`Bt{nZ z;3#?$B*c|YFx(e<vH@W8#W22EEiecV39cYi@@@)FHjphx84x-o2oTHxtAZ`>n!+mX z*>SmtRmtCiDCDD_?8tDhmGSHnc1p(%pCON(;g!jq32&2E8g!@2okCz<IZ}#wJuV&} zN;5U<e|Erz>YEJAB}YL3>oTPf<&I5|tj2l_axD5}137T}&tDpA*f}e!J&zY}*|d<C z#$s0B9{u>~@h6r`E}IE%e#1FPrv=w?*LR8;=5kG8K>r_|{<47%USwPgj>X|s;?7ae z0X4(`M;wX}usBgq$}x{leeV0w@Zo#Ja$pDFx&|f5`&d-;Ab66{=~$Kr3B-BuYD!8L z{Gu4}iGqMyJd3(g;Ikf=N|yDm*to=!0H2B^j3)_JOHiD`l}ceqeDFOR_B#nN69-|y z!;1%eaV3@r#6kWEs=5FYr?Ung*0{KZ=)vVSDLpe3oyb(ejMvnd5Df#o5topk^z%pz zGnXqy!!t$*IE)~|lTk2yCf;iXC&jrq#_)Oy*Dy?!_*_wuFNd;8zJ;40(jncY41h)W z$_pIj^wTnrGL#dcsJ{f)<HMzC5~J#$k0=9j^pQ)HLUhF>N}NuSB1#aR;KVONArXoa zp&hbXH)-Q}WbMO&B9^lUG?6BY!ia;^pn{RWY{yAZBE_gkkW>q<?yFuPC6I3t1{~_a z5&^q_l_UTghL-=DpiU_6KrZ?&96pz@cNkh^7RQ6&5+!@W5~@dpuFlk8zNkTLk#vPC z@(}sVIz=bxsr1(C3A7Bpv@4^eb%<x8xx#$p?gUrqB=$j><U9~ygTJ}BV4H<#!m<tK zaLq>m01)>W5}=LS#<&lKupAH%yrKHaUI>f1z307PfYO(hsRhUt`!GChgd^j91Tuzr zmb$c_fPX0$M}!8R$M~uq+Ht_r#F(3hw#lhfo5}j*X26pZ#fVNXxl@33CsMM6!?#LY zmu*UY21Kf9|1&~VZIPfnf)oUJ1StqECP8A)6YG^CNJUtF2IUcKMRDlW9b30*cNL^) zqmG3rxqx8VlbGJLcvR+;^NJN%lB@lxU`MR7Tzx^MUOrbaQKF!1MWLjrojSG4sFW&I zPhBPI6C+hupoJoa9urIslPW3HMXK`>C(NI)V<_8(<SIyrkms}k$#HA7u%v=Q3cI4b zyJ^A|z)OrqVxr!JElzCoQy;+6DmNi6JB9qhOrr?*hgn?dUH&U}axrFhzW^A)yTH`1 z06`R#;&EG2QR<}b)O@7y?J2X~_}##@f|w!i7stR}${#BG3SE3J(x3PYNhU`LtrA?1 zi*QYsL{<M3YH;t`07N*Gx2aqVQk7uk6sZcC0xN#*#S&N)^LDtlMayd$WlM*x<*kia zCkJ8iNsD#UjpQhZ;NVUgNEDjne`2>27=~u3?{-4(qYjGvg56FED)7_s3MqnK@1BiG ziHW5IK^i<mAwfMEejPWY2+WM%?rtX|Ik^3a*aR90?rtX?sL*}s;-$X_%O}=s7Gi;- zytQs+zK=~HeD%xq)}lq+^X)y?TT8`)Rtn&;9FJAu70M$%_~t4jz?PebPKvh{*rWCg z*u>(0nYY&QytP7*LKe!+&B6K;Cqe90J;tr*kfIPg4MlNiC%BNZxTVs@4*5fUOSnRN zOOHdLNC_RnjFD9bexEpIQ;uY19#uo{DmD}X*P?hS))iDZbO>c5q!6q!W+EJsOL(T> zunhGa?C665uv<p}Of+8E5f)G#V!i`XWs-c9kpnJ3_PnNc`;afYe&&^(^72?-wZ#ER z1Y8i38NX?q#}QQ}ousdb#x^xq1n2M>!yg!x$9o#u^xBF+k5{W%R$#!t6lK&THC^<Z z&tb@dVF?_G*1a02T+umP1p(4YRF)$My=z2u9``b6Vi{@>e-ry`Oc1~;)guHZO2Wz_ z&ydH?xK^$Q8-s<>jGhv>o7^dc{;iIYDdsg$%<^VCQa_d^8LGB8FpnIe-=)Y=5L`@h z4EV{>ouNp`FF*0JLy_#+rc;B=c5TU?F-v@+zQvv}f6`)4?i+|=Bz_}In5daNO8{X^ zlIOd+{0s7hWtP&RfL<^Q=uoMQ{%Zn|qVREwD(OMuZ*V6SSnMdG4Hp89FL?rGFZF{x zAbdF&fYJ*kQh89<#bkr}t4y#zy`rx4mHkB`9M7=DCIn;+M-3fNMh@qUY<$2N<ta&g z=Fo!%9!ZjE1#P4YJV50D3kwj~2~<i5L;&JBV(<!XD4V@r`>%onj*gWDW8O7|S=>wS ziD{VD{4Ep53aE%9N^s?7Cj~xPT!g)wCx^1&8K0}^K(8<!w&*75LCOSDrcnA<IpFi( zt)DhIs)jf+k1Vkh<s-`iWEBii4OM1F;X$UGDhF_=k)@g*KdZvRC`yoC)3jBKmhzf* z(?aaju;od@ikTLta??A(jX7F)kR37TXguIU-W5ci|0*Z6B9F_o=y~)5VcCwrPbMBC z;KYBW7lVhCMB&y_?;i4b0x~BFnTa+7Vc1NB5rz8Z_5*66*B|EdEg&Y=V;`kGB}ai< zZU2Ss(_5mF>JRQk6tS;JgyZ!SdMfU@lt2xX{TTEoM(+*fDqd_LE@UqV>OBvI;9g9E zb~U$Ha11`n3JeK7^u{UMFYrMTCUJ>G+^KQ8SLy;dCWd22|CA}FezU*K<Gt!T@A=U& z`n=>cVIDHgy1=n3Lg@rY9V{s<OPMc66OnhhHwt`Ue@L4wcLGqD!Q3TC;O`REQ*BB8 zbcs;4<-Wv<MF#}rBSt}RF^LhU_oavt$OZ9)G%4zP)$`gR1A7kbkv*h(qpWK)n)Df% zlk0vBB_m!t7_U*kzW1e|;X|@}VQ(1kAO_%5@cx0Gcz{%|49SD2=j%oCEMtJ12aS`W zK+D7N{5<}`$V2>znHPjh)Tql!5I0&~+(baHS{}~K;aX+p@lY@=4=0EPA)>TAR82x; znR$#N*YX@76?CrU0S7#t#>&ImqUS}DJpI|sgQB44IS$TyGwZ@5gEdX7iyI!sZsft^ z3wHzmsrdjSF@V<03qn+DdH6~N-8))d1TP<(^MSk&^l_~mP9EfDnU)8<a1Tb$izewQ zHuJ)K@rwUcpK-<!H>k8c?BP<9X?dWGFxCPi4^C~fE_`4n4Mh-*Vdg>q=V5yqJdOiO zg`O7#=^A6hbc9WK!644MGwZ@SF~=LhVPq!$98jM{<6#hoNxOK>#KaZb#X7I`IS8E+ z3Z<5Zv2mkN&kN%8DhtneeZy!s2=xluoL(14KSE~cd3Zsqkh*Z0>E!^AdYN7q$4Y`K z^gO&)0`IAohr0YKhMC9X%(OfpB?uX&=i!BGY)Tq=U{!;jA%H^IZ`8|S0~9KtmWRGj z{u+4^9u21DMX<YRjstli6MuM>%%W4oDuiIM>G0rIGuwdAh#S{>Ip6?lyPg+}@!&=+ z51+V+!_92uVej0aE8sL_(Q^>{DMq_^v5On;Iy`WUnFn}0KvXM-bC~!tk(L(>hho;8 z<1jX>ZWugh;wp$kicNY(UHJNpHk^pnKO7Nf%DhN2j8#If3&n+DD;hjlE8LMV^Q?6P z=et>J9q<w{X#;qPSn~$)YvTon1sFKMryCeoru7ARAR;3VlG~IYIFG_w$B`GYcm|&* zGS@H%Z&F$1@XnYiw;-pJrp|!(b?yFzlOY@T=!`jDcF)R#2gt+$qU^9+spBOCPpm=r z4))Yc-p46|bR`*eaptX6Hxhxqu9w4lV9FG{*}@kB^>PSLG}m2hy)p(uD+hYvW|E$V zSMH#{Yk5$HK)gmCRve3V!%@1>w7Q@_25)G2LDaS6bR<L{omLM0<2#FbUJzgKGH?ZW zJlR4k7o@^w%p2iZ`d<*9KXYBfzBXKS20TQs807#j0Y|A;E)s;t-Rd8z8gm5AEP-8c zy>1xio|}0=yx>?!U3k~Dx)54WFZ4VF1;pWc(aIr@-@VZDu%%(r8lq~g^%P@sXutEH z(!<!UHC`-X=9~jw$iiO`=rhNLx~5DHLJzZP7pGa;xaSAW^!}kP{5nP+6nqO;pmGaW z!5}@0{HMkX_GR3Yo(C?n*9ZrlHp)RSHroYW_$q(~4|uk8E~xim3(wf?wsgHP-m^C8 zK8Q#VBM&QyEf*k-;BV0Tf|s&vnoL^yGgLw-o_bxp?#u&>O?V7!)ANFeIWzl*x~3im zRf>_?dfhOBw2itjW}w9B<yhCk0Y+x?AQno4KLC&4d(qkrqOQe*ap)FCyEqMtVX9hP zz)P4m4%7|#oH+|BTEkMzj}+*2VWwDf6vV65Mmf}VOj?6_Z_OL}7dCl1g5Y^e_kntE z%CaE7ZDh(G!ZUdq@WQ4p%DV6)X=8)2z?}ju5Af)d((_;km^_2J`~sC$E{J%2%Qg+e zhBa`7{#o`G>te@6hlkK=Yc6rJlQ}lP;}<Thx+bkr%dzyeFg~(j(lchmTEkG+Tw{X> zA2scL;E!jYYJI_x6m*Sgd1M*Wz69BaZGMBSFzFdlC+3>Nx)#6TNN0qdY3-taJf%v{ zLtv<-Z{VCN_zAUgAX5gkYI%Ui09HK@#~+yOvaZQ9JgUGf2gB5|oq@lY*#=KIu=@wW zYK{$3#^g)D<9W7PpW#H}@#97wzDHutCE!^$CtN({I)s2g`kHlkXvCy(j29NaUJj8K zK~wjpm&>F{OdAi$*4iLEa~yydHsu!Un)D1b)1Pd@i<q<qco9=?XI;|{1zNZltigjL zGHR|H$U~-44rjEOIwr;jSDaoBeX;zQY}c9(94leYIpFbNf31Ij$6XmM59s4bmPTHb zA)i_v;4z|8&%?nQrp}5k<A6uK9Ew3I>v@33T{;6ET=qse)I|iRUM>XhzeNXtXZg)| zW~R{w>c&l51H~9~p!X$=4MPJj5iAjQUqU<(K&y*lHm<@+%YFkq$K+|&HP<V+MtBsT z)&{Ig%cli+mhH#7rY;r2=N!y72+z_FP}$V8S=Z!CV8F830WWOx7Ff%iOVq`Fmo_%6 zusr8U%L6=qPD0NMVT;SiV_lQhU|ojIIU+o3KOlrJTbTVrU7Qf3wF`^W*25q|P1*oi z!Tn&@wc9{%Ec$~;HuFN*|1j5Gyrp2#Gmf>ebqlOlMqO02=oGGppxr-g$r*fv9@{oH z)OK@k0$wvHfCdiWYqo50d_KzVAM^-g&B5z9mY)U+17=fiBLWi^dw$xy(am7$*{I8d zb+vLKtn4OD0-j|{()D1<0M<3_OE@eO7X8uGHQEI{MztG#fy!!>3&k;S=6t~GXs+Xc zXZed+*VGA-$75Z!b}?SdX9Rebz7|6Kw56+H2g9U4yd=Zd*0nZ}2Se1ziv=0=qm@Hn zVC))sA$)McfCtToZv$v`=?SuIdu;Aldrx%l8vKU3mhO#DUGO!0tqt^#d&YVmj;1m9 zAz0U1{}AMY2tvIsWR!&isEL-2gu14j4nZQD{!{eN_5+9DJ2d*ty5=5QC;>yo9xq>V z)B6mI)7(d7U28tz4YSrs8rcSoQ*xU!3a^(yBI)gh@XDRdtI#M7IsiO=fKTf)>sq{; z#6bxrt%0*FTL_x6$<raY;jHxvOQ(rvtk|#|^}b-Y$MPA4P}kJ;!dQl^x>O|0K7*-E z`eR*_Uc%S|H}z9W6jQ%P|M)(HhCkLdc?KIDmM#iKo-bEub-}2X{6H2z&Zd>4#%0Yf z&O<lX60~dSv0>O1rX31+{4ki_22Cb&Y^ZDcJ3)PpCAWYWlc(WA#^$2l2J6~+SjNqH zLuCsGScpu$9mX^aZ=(%_8d!Q$1cx`9ZD1iXae$~eO9z1z<QG77Tmhct)55}Gu8FA2 zW5l((kc`&;4B}3(Oz7o+0?W^jx_nd5fQM-_+5kMp{b=QgQgaQ%;>?$IwQ|_9vHj@q z9+=|*JZrC<bxqv@PFsEqN^1lC;~O%19-=7B{Ug>j<66Q9hA3pbU@i+DEG|8db<MR7 zdA2_XPGr+2VT6O(XVm4(%-T3$Ia_UDyq3KMcsv=_s%y%(Fjg>gzmf1v{{i4xIt}ZZ zzC$=8<XA8^to)*YXUFkiAvbxDbxj=@d6sV&@AzQ5NFN(n&|Je<*Yv@|bY`5oh8My! z_cQ?y9HN(FU5m!y=Qnu<>n^May)L#KEMGXj;$*LrT#Svn=nGG))%uKhFov@ld04Uy zn#9-`8n2ZDJZn!0TWuB(A}?n7>j2Qw>#$szejnB~=?Ys^R@@iB@t6j)e>`AS%VS+r zFM*SqugYrW0FEC`)$`yEGv@<!`5{NG9Jmr@ww}k~ntMf9P7x`imt$Sie?`sKihsd2 zu}PDF$M8PAFL2+RIwlkve)38yhyL*s5_%rCHB4Qebxj=|u5f$Lkb9738;E8wZBEuT z{rq^zk)OEJ`vQ1Y9tEp0Z*VJHb|_XM#*Uis`1Z4&2k~ak5$l?Bi3J;hK}KDWpQUd= zP@DTbtZT^+ELT=v0MFFnV8B{?Kyb4%R#zJbpxOId5b>7oNYmMvBi6NKBiv!u*szkA z_6PcB@eEyQmM#U`z@86m?HIHRc#K8X$A-Grd|-;~wHRX1hKC>m6CS+22CvdRWa;R5 zx6IT*&_5n=Ve}7Xyh)SEIK%U`a#&spiNAvJXOs)0t~CzE#2D=oo@vuTy|Vo6aJBIB zA$nhe2xT($oCu<93|s-4<*$PTwQLBO?AE%0{zc7ojjmTqUxP(w;s7BX44>Bf46$X} z0aW2E8i!?I%^P-XOnVhCl7TagHlV#&wj|6(t6ju+S!*%EkxZI|gOT4Y)W*TsD6?J0 zTA8vD+=dx8>LQ}elzAX3zC^3H0e`XCKg3JnpHU7?n7SSu=3qjj90Qz;^_kRct_RRn zU`m;F5uanwF6~Rx2f%nKe_rm8?tS}b4++$(mr*CH?`_!(KF_GrX5hfw3{YuCn~XY5 l2lN`4fu3fx3DmD2$jR+KBv<0p8Fh~1;x4(QQD)=7{{mXs$g%(c diff --git a/src/ciphers/aes/aes.c b/src/ciphers/aes/aes.c index 8c95215c..0e4933f5 100644 --- a/src/ciphers/aes/aes.c +++ b/src/ciphers/aes/aes.c @@ -43,6 +43,7 @@ #define ECB_TEST rijndael_test #define ECB_KS rijndael_keysize +#if 0 const struct ltc_cipher_descriptor rijndael_desc = { "rijndael", @@ -51,6 +52,7 @@ const struct ltc_cipher_descriptor rijndael_desc = SETUP, ECB_ENC, ECB_DEC, ECB_TEST, ECB_DONE, ECB_KS, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; +#endif const struct ltc_cipher_descriptor aes_desc = { diff --git a/src/ciphers/des.c b/src/ciphers/des.c index 9c5b59b0..84258d06 100644 --- a/src/ciphers/des.c +++ b/src/ciphers/des.c @@ -20,6 +20,7 @@ #define EN0 0 #define DE1 1 +#if 0 const struct ltc_cipher_descriptor des_desc = { "des", @@ -33,6 +34,7 @@ const struct ltc_cipher_descriptor des_desc = &des_keysize, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; +#endif const struct ltc_cipher_descriptor des3_desc = { @@ -1518,6 +1520,7 @@ static void desfunc(ulong32 *block, const ulong32 *keys) } #endif +#if 0 /** Initialize the DES block cipher @param key The symmetric key you wish to pass @@ -1544,6 +1547,7 @@ int des_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_ke return CRYPT_OK; } +#endif /** Initialize the 3DES-EDE block cipher @@ -1577,6 +1581,7 @@ int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_k return CRYPT_OK; } +#if 0 /** Encrypts a block of text with DES @param pt The input plaintext (8 bytes) @@ -1614,6 +1619,7 @@ void des_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key * STORE32H(work[0],pt+0); STORE32H(work[1],pt+4); } +#endif /** Encrypts a block of text with 3DES-EDE @@ -1658,6 +1664,7 @@ void des3_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key STORE32H(work[1],pt+4); } +#if 0 /** Performs a self-test of the DES block cipher @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled @@ -1804,6 +1811,7 @@ int des_test(void) return CRYPT_OK; #endif } +#endif int des3_test(void) { @@ -1841,12 +1849,14 @@ int des3_test(void) #endif } +#if 0 /** Terminate the context @param skey The scheduled key */ void des_done(symmetric_key *skey) { } +#endif /** Terminate the context @param skey The scheduled key @@ -1856,6 +1866,7 @@ void des3_done(symmetric_key *skey) } +#if 0 /** Gets suitable key size @param keysize [in/out] The length of the recommended key (in bytes). This function will store the suitable size back in this variable. @@ -1870,6 +1881,7 @@ int des_keysize(int *keysize) *keysize = 8; return CRYPT_OK; } +#endif /** Gets suitable key size diff --git a/src/ciphers/twofish/twofish.c b/src/ciphers/twofish/twofish.c index 61aa9502..f147babf 100644 --- a/src/ciphers/twofish/twofish.c +++ b/src/ciphers/twofish/twofish.c @@ -43,12 +43,14 @@ const struct ltc_cipher_descriptor twofish_desc = #define RS_POLY 0x14D /* The 4x4 MDS Linear Transform */ +#if 0 static const unsigned char MDS[4][4] = { { 0x01, 0xEF, 0x5B, 0x5B }, { 0x5B, 0xEF, 0xEF, 0x01 }, { 0xEF, 0x5B, 0x01, 0xEF }, { 0xEF, 0x01, 0xEF, 0x5B } }; +#endif /* The 4x8 RS Linear Transform */ static const unsigned char RS[4][8] = { diff --git a/src/headers/tomcrypt.h b/src/headers/tomcrypt.h index 8369c74d..4804194d 100644 --- a/src/headers/tomcrypt.h +++ b/src/headers/tomcrypt.h @@ -23,7 +23,8 @@ extern "C" { #define MAXBLOCKSIZE 128 /* descriptor table size */ -#define TAB_SIZE 32 +/* Dropbear change - this should be smaller, saves some size */ +#define TAB_SIZE 4 /* error codes [will be expanded in future releases] */ enum { diff --git a/src/headers/tomcrypt_custom.h b/src/headers/tomcrypt_custom.h index db900480..ad61f523 100644 --- a/src/headers/tomcrypt_custom.h +++ b/src/headers/tomcrypt_custom.h @@ -1,6 +1,9 @@ #ifndef TOMCRYPT_CUSTOM_H_ #define TOMCRYPT_CUSTOM_H_ +/* this will sort out which stuff based on the user-config in options.h */ +#include "options.h" + /* macros for various libc functions you can change for embedded targets */ #define XMALLOC malloc #define XREALLOC realloc @@ -13,13 +16,16 @@ #define XCLOCK clock #define XCLOCKS_PER_SEC CLOCKS_PER_SEC -/* Use small code where possible */ -/* #define LTC_SMALL_CODE */ +#ifdef DROPBEAR_SMALL_CODE +#define LTC_SMALL_CODE +#endif + +/* These spit out warnings etc */ +#define LTC_NO_ROLC /* Enable self-test test vector checking */ -#ifndef LTC_NO_TEST - #define LTC_TEST -#endif +/* Not for dropbear */ +//#define LTC_TEST /* clean the stack of functions which put private information on stack */ /* #define LTC_CLEAN_STACK */ @@ -36,217 +42,51 @@ /* disable BSWAP on x86 */ /* #define LTC_NO_BSWAP */ -/* ---> Symmetric Block Ciphers <--- */ -#ifndef LTC_NO_CIPHERS +#ifdef DROPBEAR_BLOWFISH_CBC #define BLOWFISH -#define RC2 -#define RC5 -#define RC6 -#define SAFERP -#define RIJNDAEL -#define XTEA -/* _TABLES tells it to use tables during setup, _SMALL means to use the smaller scheduled key format - * (saves 4KB of ram), _ALL_TABLES enables all tables during setup */ -#define TWOFISH -#ifndef LTC_NO_TABLES - #define TWOFISH_TABLES - /* #define TWOFISH_ALL_TABLES */ -#else - #define TWOFISH_SMALL #endif -/* #define TWOFISH_SMALL */ -/* DES includes EDE triple-DES */ -#define DES -#define CAST5 -#define NOEKEON -#define SKIPJACK -#define SAFER -#define KHAZAD -#define ANUBIS -#define ANUBIS_TWEAK -#endif /* LTC_NO_CIPHERS */ +#ifdef DROPBEAR_AES_CBC +#define RIJNDAEL +#endif +#ifdef DROPBEAR_TWOFISH_CBC +#define TWOFISH -/* ---> Block Cipher Modes of Operation <--- */ -#ifndef LTC_NO_MODES +/* enabling just TWOFISH_SMALL will make the binary ~1kB smaller, turning on + * TWOFISH_TABLES will make it a few kB bigger, but perhaps reduces runtime + * memory usage? */ +#define TWOFISH_SMALL +/*#define TWOFISH_TABLES*/ +#endif -#define CFB -#define OFB -#define ECB +#ifdef DROPBEAR_3DES_CBC +#define DES +#endif #define CBC -#define CTR - -#endif /* LTC_NO_MODES */ -/* ---> One-Way Hash Functions <--- */ -#ifndef LTC_NO_HASHES - -#define CHC_HASH -#define WHIRLPOOL +#if defined(DROPBEAR_DSS) && defined(DSS_PROTOK) #define SHA512 -#define SHA384 -#define SHA256 -#define SHA224 -#define TIGER -#define SHA1 -#define MD5 -#define MD4 -#define MD2 -#define RIPEMD128 -#define RIPEMD160 - -#endif /* LTC_NO_HASHES */ - -/* ---> MAC functions <--- */ -#ifndef LTC_NO_MACS - -#define HMAC -#define OMAC -#define PMAC -#define PELICAN - -#if defined(PELICAN) && !defined(RIJNDAEL) - #error Pelican-MAC requires RIJNDAEL #endif -/* ---> Encrypt + Authenticate Modes <--- */ - -#define EAX_MODE -#if defined(EAX_MODE) && !(defined(CTR) && defined(OMAC)) - #error EAX_MODE requires CTR and OMAC mode -#endif - -#define OCB_MODE -#define CCM_MODE - -#define GCM_MODE +#define SHA1 -/* Use 64KiB tables */ -#ifndef LTC_NO_TABLES - #define GCM_TABLES +#ifdef DROPBEAR_MD5_HMAC +#define MD5 #endif -#endif /* LTC_NO_MACS */ +#define HMAC /* Various tidbits of modern neatoness */ #define BASE64 -/* --> Pseudo Random Number Generators <--- */ -#ifndef LTC_NO_PRNGS - -/* Yarrow */ -#define YARROW -/* which descriptor of AES to use? */ -/* 0 = rijndael_enc 1 = aes_enc, 2 = rijndael [full], 3 = aes [full] */ -#define YARROW_AES 0 - -#if defined(YARROW) && !defined(CTR) - #error YARROW requires CTR chaining mode to be defined! -#endif - -/* a PRNG that simply reads from an available system source */ -#define SPRNG - -/* The RC4 stream cipher */ -#define RC4 - -/* Fortuna PRNG */ -#define FORTUNA -/* reseed every N calls to the read function */ -#define FORTUNA_WD 10 -/* number of pools (4..32) can save a bit of ram by lowering the count */ -#define FORTUNA_POOLS 32 - -/* Greg's SOBER128 PRNG ;-0 */ -#define SOBER128 - -/* the *nix style /dev/random device */ -#define DEVRANDOM -/* try /dev/urandom before trying /dev/random */ -#define TRY_URANDOM_FIRST - -#endif /* LTC_NO_PRNGS */ - -/* ---> Public Key Crypto <--- */ -#ifndef LTC_NO_PK - -#define MRSA - -/* Digital Signature Algorithm */ -#define MDSA -/* Max diff between group and modulus size in bytes */ -#define MDSA_DELTA 512 -/* Max DSA group size in bytes (default allows 4k-bit groups) */ -#define MDSA_MAX_GROUP 512 - -/* Diffie-Hellman */ -#define MDH -/* Supported Key Sizes */ -#define DH768 -#define DH1024 -#define DH1280 -#define DH1536 -#define DH1792 -#define DH2048 -#define DH2560 -#define DH3072 -#define DH4096 - -/* ECC */ -#define MECC -/* Supported Key Sizes */ -#define ECC192 -#define ECC224 -#define ECC256 -#define ECC384 -#define ECC521 - -/* Include the MPI functionality? (required by the PK algorithms) */ -#define MPI - -#endif /* LTC_NO_PK */ - -/* PKCS #1 (RSA) and #5 (Password Handling) stuff */ -#ifndef LTC_NO_PKCS - -#define PKCS_1 -#define PKCS_5 - -/* Include ASN.1 DER (required by DSA/RSA) */ -#define LTC_DER -#if defined(LTC_DER) && !defined(MPI) - #error ASN.1 DER requires MPI functionality -#endif - -#if (defined(MDSA) || defined(MRSA)) && !defined(LTC_DER) - #error RSA/DSA requires ASN.1 DER functionality, make sure LTC_DER is enabled -#endif - -#endif /* LTC_NO_PKCS */ - -#endif - - -/* THREAD management */ - -#ifdef LTC_PTHREAD - -#include <pthread.h> - -#define LTC_MUTEX_GLOBAL(x) pthread_mutex_t x = PTHREAD_MUTEX_INITIALIZER; -#define LTC_MUTEX_PROTO(x) extern pthread_mutex_t x; -#define LTC_MUTEX_LOCK(x) pthread_mutex_lock(x); -#define LTC_MUTEX_UNLOCK(x) pthread_mutex_unlock(x); - -#else - /* default no functions */ #define LTC_MUTEX_GLOBAL(x) #define LTC_MUTEX_PROTO(x) #define LTC_MUTEX_LOCK(x) #define LTC_MUTEX_UNLOCK(x) +#define FORTUNA_POOLS 0 #endif diff --git a/src/misc/crypt/crypt.c b/src/misc/crypt/crypt.c index 6d85ceb1..eb75b8d5 100644 --- a/src/misc/crypt/crypt.c +++ b/src/misc/crypt/crypt.c @@ -15,6 +15,7 @@ Build strings, Tom St Denis */ +/* const char *crypt_build_settings = "LibTomCrypt " SCRYPT " (Tom St Denis, tomstdenis@gmail.com)\n" "LibTomCrypt is public domain software.\n" @@ -308,6 +309,7 @@ const char *crypt_build_settings = "\n" "\n\n\n" ; + */ /* $Source: /cvs/libtom/libtomcrypt/src/misc/crypt/crypt.c,v $ */ diff --git a/src/misc/mpi/mpi.c b/src/misc/mpi/mpi.c deleted file mode 100644 index 56dfa02c..00000000 --- a/src/misc/mpi/mpi.c +++ /dev/null @@ -1,9048 +0,0 @@ -/* Start: bn_error.c */ -#include <ltc_tommath.h> -#ifdef BN_ERROR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -static const struct { - int code; - char *msg; -} msgs[] = { - { MP_OKAY, "Successful" }, - { MP_MEM, "Out of heap" }, - { MP_VAL, "Value out of range" } -}; - -/* return a char * string for a given code */ -char *mp_error_to_string(int code) -{ - int x; - - /* scan the lookup table for the given message */ - for (x = 0; x < (int)(sizeof(msgs) / sizeof(msgs[0])); x++) { - if (msgs[x].code == code) { - return msgs[x].msg; - } - } - - /* generic reply for invalid code */ - return "Invalid error code"; -} - -#endif - -/* End: bn_error.c */ - -/* Start: bn_fast_mp_invmod.c */ -#include <ltc_tommath.h> -#ifdef BN_FAST_MP_INVMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes the modular inverse via binary extended euclidean algorithm, - * that is c = 1/a mod b - * - * Based on slow invmod except this is optimized for the case where b is - * odd as per HAC Note 14.64 on pp. 610 - */ -int fast_mp_invmod (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int x, y, u, v, B, D; - int res, neg; - - /* 2. [modified] b must be odd */ - if (mp_iseven (b) == 1) { - return MP_VAL; - } - - /* init all our temps */ - if ((res = mp_init_multi(&x, &y, &u, &v, &B, &D, NULL)) != MP_OKAY) { - return res; - } - - /* x == modulus, y == value to invert */ - if ((res = mp_copy (b, &x)) != MP_OKAY) { - goto LBL_ERR; - } - - /* we need y = |a| */ - if ((res = mp_mod (a, b, &y)) != MP_OKAY) { - goto LBL_ERR; - } - - /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ - if ((res = mp_copy (&x, &u)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_copy (&y, &v)) != MP_OKAY) { - goto LBL_ERR; - } - mp_set (&D, 1); - -top: - /* 4. while u is even do */ - while (mp_iseven (&u) == 1) { - /* 4.1 u = u/2 */ - if ((res = mp_div_2 (&u, &u)) != MP_OKAY) { - goto LBL_ERR; - } - /* 4.2 if B is odd then */ - if (mp_isodd (&B) == 1) { - if ((res = mp_sub (&B, &x, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } - /* B = B/2 */ - if ((res = mp_div_2 (&B, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* 5. while v is even do */ - while (mp_iseven (&v) == 1) { - /* 5.1 v = v/2 */ - if ((res = mp_div_2 (&v, &v)) != MP_OKAY) { - goto LBL_ERR; - } - /* 5.2 if D is odd then */ - if (mp_isodd (&D) == 1) { - /* D = (D-x)/2 */ - if ((res = mp_sub (&D, &x, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - /* D = D/2 */ - if ((res = mp_div_2 (&D, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* 6. if u >= v then */ - if (mp_cmp (&u, &v) != MP_LT) { - /* u = u - v, B = B - D */ - if ((res = mp_sub (&u, &v, &u)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&B, &D, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } else { - /* v - v - u, D = D - B */ - if ((res = mp_sub (&v, &u, &v)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&D, &B, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* if not zero goto step 4 */ - if (mp_iszero (&u) == 0) { - goto top; - } - - /* now a = C, b = D, gcd == g*v */ - - /* if v != 1 then there is no inverse */ - if (mp_cmp_d (&v, 1) != MP_EQ) { - res = MP_VAL; - goto LBL_ERR; - } - - /* b is now the inverse */ - neg = a->sign; - while (D.sign == MP_NEG) { - if ((res = mp_add (&D, b, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - mp_exch (&D, c); - c->sign = neg; - res = MP_OKAY; - -LBL_ERR:mp_clear_multi (&x, &y, &u, &v, &B, &D, NULL); - return res; -} -#endif - -/* End: bn_fast_mp_invmod.c */ - -/* Start: bn_fast_mp_montgomery_reduce.c */ -#include <ltc_tommath.h> -#ifdef BN_FAST_MP_MONTGOMERY_REDUCE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes xR**-1 == x (mod N) via Montgomery Reduction - * - * This is an optimized implementation of montgomery_reduce - * which uses the comba method to quickly calculate the columns of the - * reduction. - * - * Based on Algorithm 14.32 on pp.601 of HAC. -*/ -int fast_mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) -{ - int ix, res, olduse; - mp_word W[MP_WARRAY]; - - /* get old used count */ - olduse = x->used; - - /* grow a as required */ - if (x->alloc < n->used + 1) { - if ((res = mp_grow (x, n->used + 1)) != MP_OKAY) { - return res; - } - } - - /* first we have to get the digits of the input into - * an array of double precision words W[...] - */ - { - register mp_word *_W; - register mp_digit *tmpx; - - /* alias for the W[] array */ - _W = W; - - /* alias for the digits of x*/ - tmpx = x->dp; - - /* copy the digits of a into W[0..a->used-1] */ - for (ix = 0; ix < x->used; ix++) { - *_W++ = *tmpx++; - } - - /* zero the high words of W[a->used..m->used*2] */ - for (; ix < n->used * 2 + 1; ix++) { - *_W++ = 0; - } - } - - /* now we proceed to zero successive digits - * from the least significant upwards - */ - for (ix = 0; ix < n->used; ix++) { - /* mu = ai * m' mod b - * - * We avoid a double precision multiplication (which isn't required) - * by casting the value down to a mp_digit. Note this requires - * that W[ix-1] have the carry cleared (see after the inner loop) - */ - register mp_digit mu; - mu = (mp_digit) (((W[ix] & MP_MASK) * rho) & MP_MASK); - - /* a = a + mu * m * b**i - * - * This is computed in place and on the fly. The multiplication - * by b**i is handled by offseting which columns the results - * are added to. - * - * Note the comba method normally doesn't handle carries in the - * inner loop In this case we fix the carry from the previous - * column since the Montgomery reduction requires digits of the - * result (so far) [see above] to work. This is - * handled by fixing up one carry after the inner loop. The - * carry fixups are done in order so after these loops the - * first m->used words of W[] have the carries fixed - */ - { - register int iy; - register mp_digit *tmpn; - register mp_word *_W; - - /* alias for the digits of the modulus */ - tmpn = n->dp; - - /* Alias for the columns set by an offset of ix */ - _W = W + ix; - - /* inner loop */ - for (iy = 0; iy < n->used; iy++) { - *_W++ += ((mp_word)mu) * ((mp_word)*tmpn++); - } - } - - /* now fix carry for next digit, W[ix+1] */ - W[ix + 1] += W[ix] >> ((mp_word) DIGIT_BIT); - } - - /* now we have to propagate the carries and - * shift the words downward [all those least - * significant digits we zeroed]. - */ - { - register mp_digit *tmpx; - register mp_word *_W, *_W1; - - /* nox fix rest of carries */ - - /* alias for current word */ - _W1 = W + ix; - - /* alias for next word, where the carry goes */ - _W = W + ++ix; - - for (; ix <= n->used * 2 + 1; ix++) { - *_W++ += *_W1++ >> ((mp_word) DIGIT_BIT); - } - - /* copy out, A = A/b**n - * - * The result is A/b**n but instead of converting from an - * array of mp_word to mp_digit than calling mp_rshd - * we just copy them in the right order - */ - - /* alias for destination word */ - tmpx = x->dp; - - /* alias for shifted double precision result */ - _W = W + n->used; - - for (ix = 0; ix < n->used + 1; ix++) { - *tmpx++ = (mp_digit)(*_W++ & ((mp_word) MP_MASK)); - } - - /* zero oldused digits, if the input a was larger than - * m->used+1 we'll have to clear the digits - */ - for (; ix < olduse; ix++) { - *tmpx++ = 0; - } - } - - /* set the max used and clamp */ - x->used = n->used + 1; - mp_clamp (x); - - /* if A >= m then A = A - m */ - if (mp_cmp_mag (x, n) != MP_LT) { - return s_mp_sub (x, n, x); - } - return MP_OKAY; -} -#endif - -/* End: bn_fast_mp_montgomery_reduce.c */ - -/* Start: bn_fast_s_mp_mul_digs.c */ -#include <ltc_tommath.h> -#ifdef BN_FAST_S_MP_MUL_DIGS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Fast (comba) multiplier - * - * This is the fast column-array [comba] multiplier. It is - * designed to compute the columns of the product first - * then handle the carries afterwards. This has the effect - * of making the nested loops that compute the columns very - * simple and schedulable on super-scalar processors. - * - * This has been modified to produce a variable number of - * digits of output so if say only a half-product is required - * you don't have to compute the upper half (a feature - * required for fast Barrett reduction). - * - * Based on Algorithm 14.12 on pp.595 of HAC. - * - */ -int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) -{ - int olduse, res, pa, ix, iz; - mp_digit W[MP_WARRAY]; - register mp_word _W; - - /* grow the destination as required */ - if (c->alloc < digs) { - if ((res = mp_grow (c, digs)) != MP_OKAY) { - return res; - } - } - - /* number of output digits to produce */ - pa = MIN(digs, a->used + b->used); - - /* clear the carry */ - _W = 0; - for (ix = 0; ix < pa; ix++) { - int tx, ty; - int iy; - mp_digit *tmpx, *tmpy; - - /* get offsets into the two bignums */ - ty = MIN(b->used-1, ix); - tx = ix - ty; - - /* setup temp aliases */ - tmpx = a->dp + tx; - tmpy = b->dp + ty; - - /* this is the number of times the loop will iterrate, essentially - while (tx++ < a->used && ty-- >= 0) { ... } - */ - iy = MIN(a->used-tx, ty+1); - - /* execute loop */ - for (iz = 0; iz < iy; ++iz) { - _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); - } - - /* store term */ - W[ix] = ((mp_digit)_W) & MP_MASK; - - /* make next carry */ - _W = _W >> ((mp_word)DIGIT_BIT); - } - - /* store final carry */ - W[ix] = (mp_digit)(_W & MP_MASK); - - /* setup dest */ - olduse = c->used; - c->used = pa; - - { - register mp_digit *tmpc; - tmpc = c->dp; - for (ix = 0; ix < pa+1; ix++) { - /* now extract the previous digit [below the carry] */ - *tmpc++ = W[ix]; - } - - /* clear unused digits [that existed in the old copy of c] */ - for (; ix < olduse; ix++) { - *tmpc++ = 0; - } - } - mp_clamp (c); - return MP_OKAY; -} -#endif - -/* End: bn_fast_s_mp_mul_digs.c */ - -/* Start: bn_fast_s_mp_mul_high_digs.c */ -#include <ltc_tommath.h> -#ifdef BN_FAST_S_MP_MUL_HIGH_DIGS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* this is a modified version of fast_s_mul_digs that only produces - * output digits *above* digs. See the comments for fast_s_mul_digs - * to see how it works. - * - * This is used in the Barrett reduction since for one of the multiplications - * only the higher digits were needed. This essentially halves the work. - * - * Based on Algorithm 14.12 on pp.595 of HAC. - */ -int fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) -{ - int olduse, res, pa, ix, iz; - mp_digit W[MP_WARRAY]; - mp_word _W; - - /* grow the destination as required */ - pa = a->used + b->used; - if (c->alloc < pa) { - if ((res = mp_grow (c, pa)) != MP_OKAY) { - return res; - } - } - - /* number of output digits to produce */ - pa = a->used + b->used; - _W = 0; - for (ix = digs; ix < pa; ix++) { - int tx, ty, iy; - mp_digit *tmpx, *tmpy; - - /* get offsets into the two bignums */ - ty = MIN(b->used-1, ix); - tx = ix - ty; - - /* setup temp aliases */ - tmpx = a->dp + tx; - tmpy = b->dp + ty; - - /* this is the number of times the loop will iterrate, essentially its - while (tx++ < a->used && ty-- >= 0) { ... } - */ - iy = MIN(a->used-tx, ty+1); - - /* execute loop */ - for (iz = 0; iz < iy; iz++) { - _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); - } - - /* store term */ - W[ix] = ((mp_digit)_W) & MP_MASK; - - /* make next carry */ - _W = _W >> ((mp_word)DIGIT_BIT); - } - - /* store final carry */ - W[ix] = (mp_digit)(_W & MP_MASK); - - /* setup dest */ - olduse = c->used; - c->used = pa; - - { - register mp_digit *tmpc; - - tmpc = c->dp + digs; - for (ix = digs; ix <= pa; ix++) { - /* now extract the previous digit [below the carry] */ - *tmpc++ = W[ix]; - } - - /* clear unused digits [that existed in the old copy of c] */ - for (; ix < olduse; ix++) { - *tmpc++ = 0; - } - } - mp_clamp (c); - return MP_OKAY; -} -#endif - -/* End: bn_fast_s_mp_mul_high_digs.c */ - -/* Start: bn_fast_s_mp_sqr.c */ -#include <ltc_tommath.h> -#ifdef BN_FAST_S_MP_SQR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* the jist of squaring... - * you do like mult except the offset of the tmpx [one that - * starts closer to zero] can't equal the offset of tmpy. - * So basically you set up iy like before then you min it with - * (ty-tx) so that it never happens. You double all those - * you add in the inner loop - -After that loop you do the squares and add them in. -*/ - -int fast_s_mp_sqr (mp_int * a, mp_int * b) -{ - int olduse, res, pa, ix, iz; - mp_digit W[MP_WARRAY], *tmpx; - mp_word W1; - - /* grow the destination as required */ - pa = a->used + a->used; - if (b->alloc < pa) { - if ((res = mp_grow (b, pa)) != MP_OKAY) { - return res; - } - } - - /* number of output digits to produce */ - W1 = 0; - for (ix = 0; ix < pa; ix++) { - int tx, ty, iy; - mp_word _W; - mp_digit *tmpy; - - /* clear counter */ - _W = 0; - - /* get offsets into the two bignums */ - ty = MIN(a->used-1, ix); - tx = ix - ty; - - /* setup temp aliases */ - tmpx = a->dp + tx; - tmpy = a->dp + ty; - - /* this is the number of times the loop will iterrate, essentially - while (tx++ < a->used && ty-- >= 0) { ... } - */ - iy = MIN(a->used-tx, ty+1); - - /* now for squaring tx can never equal ty - * we halve the distance since they approach at a rate of 2x - * and we have to round because odd cases need to be executed - */ - iy = MIN(iy, (ty-tx+1)>>1); - - /* execute loop */ - for (iz = 0; iz < iy; iz++) { - _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); - } - - /* double the inner product and add carry */ - _W = _W + _W + W1; - - /* even columns have the square term in them */ - if ((ix&1) == 0) { - _W += ((mp_word)a->dp[ix>>1])*((mp_word)a->dp[ix>>1]); - } - - /* store it */ - W[ix] = (mp_digit)(_W & MP_MASK); - - /* make next carry */ - W1 = _W >> ((mp_word)DIGIT_BIT); - } - - /* setup dest */ - olduse = b->used; - b->used = a->used+a->used; - - { - mp_digit *tmpb; - tmpb = b->dp; - for (ix = 0; ix < pa; ix++) { - *tmpb++ = W[ix] & MP_MASK; - } - - /* clear unused digits [that existed in the old copy of c] */ - for (; ix < olduse; ix++) { - *tmpb++ = 0; - } - } - mp_clamp (b); - return MP_OKAY; -} -#endif - -/* End: bn_fast_s_mp_sqr.c */ - -/* Start: bn_mp_2expt.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_2EXPT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes a = 2**b - * - * Simple algorithm which zeroes the int, grows it then just sets one bit - * as required. - */ -int -mp_2expt (mp_int * a, int b) -{ - int res; - - /* zero a as per default */ - mp_zero (a); - - /* grow a to accomodate the single bit */ - if ((res = mp_grow (a, b / DIGIT_BIT + 1)) != MP_OKAY) { - return res; - } - - /* set the used count of where the bit will go */ - a->used = b / DIGIT_BIT + 1; - - /* put the single bit in its place */ - a->dp[b / DIGIT_BIT] = ((mp_digit)1) << (b % DIGIT_BIT); - - return MP_OKAY; -} -#endif - -/* End: bn_mp_2expt.c */ - -/* Start: bn_mp_abs.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_ABS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* b = |a| - * - * Simple function copies the input and fixes the sign to positive - */ -int -mp_abs (mp_int * a, mp_int * b) -{ - int res; - - /* copy a to b */ - if (a != b) { - if ((res = mp_copy (a, b)) != MP_OKAY) { - return res; - } - } - - /* force the sign of b to positive */ - b->sign = MP_ZPOS; - - return MP_OKAY; -} -#endif - -/* End: bn_mp_abs.c */ - -/* Start: bn_mp_add.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_ADD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* high level addition (handles signs) */ -int mp_add (mp_int * a, mp_int * b, mp_int * c) -{ - int sa, sb, res; - - /* get sign of both inputs */ - sa = a->sign; - sb = b->sign; - - /* handle two cases, not four */ - if (sa == sb) { - /* both positive or both negative */ - /* add their magnitudes, copy the sign */ - c->sign = sa; - res = s_mp_add (a, b, c); - } else { - /* one positive, the other negative */ - /* subtract the one with the greater magnitude from */ - /* the one of the lesser magnitude. The result gets */ - /* the sign of the one with the greater magnitude. */ - if (mp_cmp_mag (a, b) == MP_LT) { - c->sign = sb; - res = s_mp_sub (b, a, c); - } else { - c->sign = sa; - res = s_mp_sub (a, b, c); - } - } - return res; -} - -#endif - -/* End: bn_mp_add.c */ - -/* Start: bn_mp_add_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_ADD_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* single digit addition */ -int -mp_add_d (mp_int * a, mp_digit b, mp_int * c) -{ - int res, ix, oldused; - mp_digit *tmpa, *tmpc, mu; - - /* grow c as required */ - if (c->alloc < a->used + 1) { - if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) { - return res; - } - } - - /* if a is negative and |a| >= b, call c = |a| - b */ - if (a->sign == MP_NEG && (a->used > 1 || a->dp[0] >= b)) { - /* temporarily fix sign of a */ - a->sign = MP_ZPOS; - - /* c = |a| - b */ - res = mp_sub_d(a, b, c); - - /* fix sign */ - a->sign = c->sign = MP_NEG; - - return res; - } - - /* old number of used digits in c */ - oldused = c->used; - - /* sign always positive */ - c->sign = MP_ZPOS; - - /* source alias */ - tmpa = a->dp; - - /* destination alias */ - tmpc = c->dp; - - /* if a is positive */ - if (a->sign == MP_ZPOS) { - /* add digit, after this we're propagating - * the carry. - */ - *tmpc = *tmpa++ + b; - mu = *tmpc >> DIGIT_BIT; - *tmpc++ &= MP_MASK; - - /* now handle rest of the digits */ - for (ix = 1; ix < a->used; ix++) { - *tmpc = *tmpa++ + mu; - mu = *tmpc >> DIGIT_BIT; - *tmpc++ &= MP_MASK; - } - /* set final carry */ - ix++; - *tmpc++ = mu; - - /* setup size */ - c->used = a->used + 1; - } else { - /* a was negative and |a| < b */ - c->used = 1; - - /* the result is a single digit */ - if (a->used == 1) { - *tmpc++ = b - a->dp[0]; - } else { - *tmpc++ = b; - } - - /* setup count so the clearing of oldused - * can fall through correctly - */ - ix = 1; - } - - /* now zero to oldused */ - while (ix++ < oldused) { - *tmpc++ = 0; - } - mp_clamp(c); - - return MP_OKAY; -} - -#endif - -/* End: bn_mp_add_d.c */ - -/* Start: bn_mp_addmod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_ADDMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* d = a + b (mod c) */ -int -mp_addmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) -{ - int res; - mp_int t; - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - if ((res = mp_add (a, b, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - res = mp_mod (&t, c, d); - mp_clear (&t); - return res; -} -#endif - -/* End: bn_mp_addmod.c */ - -/* Start: bn_mp_and.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_AND_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* AND two ints together */ -int -mp_and (mp_int * a, mp_int * b, mp_int * c) -{ - int res, ix, px; - mp_int t, *x; - - if (a->used > b->used) { - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - px = b->used; - x = b; - } else { - if ((res = mp_init_copy (&t, b)) != MP_OKAY) { - return res; - } - px = a->used; - x = a; - } - - for (ix = 0; ix < px; ix++) { - t.dp[ix] &= x->dp[ix]; - } - - /* zero digits above the last from the smallest mp_int */ - for (; ix < t.used; ix++) { - t.dp[ix] = 0; - } - - mp_clamp (&t); - mp_exch (c, &t); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_mp_and.c */ - -/* Start: bn_mp_clamp.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CLAMP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* trim unused digits - * - * This is used to ensure that leading zero digits are - * trimed and the leading "used" digit will be non-zero - * Typically very fast. Also fixes the sign if there - * are no more leading digits - */ -void -mp_clamp (mp_int * a) -{ - /* decrease used while the most significant digit is - * zero. - */ - while (a->used > 0 && a->dp[a->used - 1] == 0) { - --(a->used); - } - - /* reset the sign flag if used == 0 */ - if (a->used == 0) { - a->sign = MP_ZPOS; - } -} -#endif - -/* End: bn_mp_clamp.c */ - -/* Start: bn_mp_clear.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CLEAR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* clear one (frees) */ -void -mp_clear (mp_int * a) -{ - int i; - - /* only do anything if a hasn't been freed previously */ - if (a->dp != NULL) { - /* first zero the digits */ - for (i = 0; i < a->used; i++) { - a->dp[i] = 0; - } - - /* free ram */ - XFREE(a->dp); - - /* reset members to make debugging easier */ - a->dp = NULL; - a->alloc = a->used = 0; - a->sign = MP_ZPOS; - } -} -#endif - -/* End: bn_mp_clear.c */ - -/* Start: bn_mp_clear_multi.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CLEAR_MULTI_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ -#include <stdarg.h> - -void mp_clear_multi(mp_int *mp, ...) -{ - mp_int* next_mp = mp; - va_list args; - va_start(args, mp); - while (next_mp != NULL) { - mp_clear(next_mp); - next_mp = va_arg(args, mp_int*); - } - va_end(args); -} -#endif - -/* End: bn_mp_clear_multi.c */ - -/* Start: bn_mp_cmp.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CMP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* compare two ints (signed)*/ -int -mp_cmp (mp_int * a, mp_int * b) -{ - /* compare based on sign */ - if (a->sign != b->sign) { - if (a->sign == MP_NEG) { - return MP_LT; - } else { - return MP_GT; - } - } - - /* compare digits */ - if (a->sign == MP_NEG) { - /* if negative compare opposite direction */ - return mp_cmp_mag(b, a); - } else { - return mp_cmp_mag(a, b); - } -} -#endif - -/* End: bn_mp_cmp.c */ - -/* Start: bn_mp_cmp_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CMP_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* compare a digit */ -int mp_cmp_d(mp_int * a, mp_digit b) -{ - /* compare based on sign */ - if (a->sign == MP_NEG) { - return MP_LT; - } - - /* compare based on magnitude */ - if (a->used > 1) { - return MP_GT; - } - - /* compare the only digit of a to b */ - if (a->dp[0] > b) { - return MP_GT; - } else if (a->dp[0] < b) { - return MP_LT; - } else { - return MP_EQ; - } -} -#endif - -/* End: bn_mp_cmp_d.c */ - -/* Start: bn_mp_cmp_mag.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CMP_MAG_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* compare maginitude of two ints (unsigned) */ -int mp_cmp_mag (mp_int * a, mp_int * b) -{ - int n; - mp_digit *tmpa, *tmpb; - - /* compare based on # of non-zero digits */ - if (a->used > b->used) { - return MP_GT; - } - - if (a->used < b->used) { - return MP_LT; - } - - /* alias for a */ - tmpa = a->dp + (a->used - 1); - - /* alias for b */ - tmpb = b->dp + (a->used - 1); - - /* compare based on digits */ - for (n = 0; n < a->used; ++n, --tmpa, --tmpb) { - if (*tmpa > *tmpb) { - return MP_GT; - } - - if (*tmpa < *tmpb) { - return MP_LT; - } - } - return MP_EQ; -} -#endif - -/* End: bn_mp_cmp_mag.c */ - -/* Start: bn_mp_cnt_lsb.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_CNT_LSB_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -static const int lnz[16] = { - 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 -}; - -/* Counts the number of lsbs which are zero before the first zero bit */ -int mp_cnt_lsb(mp_int *a) -{ - int x; - mp_digit q, qq; - - /* easy out */ - if (mp_iszero(a) == 1) { - return 0; - } - - /* scan lower digits until non-zero */ - for (x = 0; x < a->used && a->dp[x] == 0; x++); - q = a->dp[x]; - x *= DIGIT_BIT; - - /* now scan this digit until a 1 is found */ - if ((q & 1) == 0) { - do { - qq = q & 15; - x += lnz[qq]; - q >>= 4; - } while (qq == 0); - } - return x; -} - -#endif - -/* End: bn_mp_cnt_lsb.c */ - -/* Start: bn_mp_copy.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_COPY_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* copy, b = a */ -int -mp_copy (mp_int * a, mp_int * b) -{ - int res, n; - - /* if dst == src do nothing */ - if (a == b) { - return MP_OKAY; - } - - /* grow dest */ - if (b->alloc < a->used) { - if ((res = mp_grow (b, a->used)) != MP_OKAY) { - return res; - } - } - - /* zero b and copy the parameters over */ - { - register mp_digit *tmpa, *tmpb; - - /* pointer aliases */ - - /* source */ - tmpa = a->dp; - - /* destination */ - tmpb = b->dp; - - /* copy all the digits */ - for (n = 0; n < a->used; n++) { - *tmpb++ = *tmpa++; - } - - /* clear high digits */ - for (; n < b->used; n++) { - *tmpb++ = 0; - } - } - - /* copy used count and sign */ - b->used = a->used; - b->sign = a->sign; - return MP_OKAY; -} -#endif - -/* End: bn_mp_copy.c */ - -/* Start: bn_mp_count_bits.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_COUNT_BITS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* returns the number of bits in an int */ -int -mp_count_bits (mp_int * a) -{ - int r; - mp_digit q; - - /* shortcut */ - if (a->used == 0) { - return 0; - } - - /* get number of digits and add that */ - r = (a->used - 1) * DIGIT_BIT; - - /* take the last digit and count the bits in it */ - q = a->dp[a->used - 1]; - while (q > ((mp_digit) 0)) { - ++r; - q >>= ((mp_digit) 1); - } - return r; -} -#endif - -/* End: bn_mp_count_bits.c */ - -/* Start: bn_mp_div.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DIV_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -#ifdef BN_MP_DIV_SMALL - -/* slower bit-bang division... also smaller */ -int mp_div(mp_int * a, mp_int * b, mp_int * c, mp_int * d) -{ - mp_int ta, tb, tq, q; - int res, n, n2; - - /* is divisor zero ? */ - if (mp_iszero (b) == 1) { - return MP_VAL; - } - - /* if a < b then q=0, r = a */ - if (mp_cmp_mag (a, b) == MP_LT) { - if (d != NULL) { - res = mp_copy (a, d); - } else { - res = MP_OKAY; - } - if (c != NULL) { - mp_zero (c); - } - return res; - } - - /* init our temps */ - if ((res = mp_init_multi(&ta, &tb, &tq, &q, NULL) != MP_OKAY)) { - return res; - } - - - mp_set(&tq, 1); - n = mp_count_bits(a) - mp_count_bits(b); - if (((res = mp_abs(a, &ta)) != MP_OKAY) || - ((res = mp_abs(b, &tb)) != MP_OKAY) || - ((res = mp_mul_2d(&tb, n, &tb)) != MP_OKAY) || - ((res = mp_mul_2d(&tq, n, &tq)) != MP_OKAY)) { - goto LBL_ERR; - } - - while (n-- >= 0) { - if (mp_cmp(&tb, &ta) != MP_GT) { - if (((res = mp_sub(&ta, &tb, &ta)) != MP_OKAY) || - ((res = mp_add(&q, &tq, &q)) != MP_OKAY)) { - goto LBL_ERR; - } - } - if (((res = mp_div_2d(&tb, 1, &tb, NULL)) != MP_OKAY) || - ((res = mp_div_2d(&tq, 1, &tq, NULL)) != MP_OKAY)) { - goto LBL_ERR; - } - } - - /* now q == quotient and ta == remainder */ - n = a->sign; - n2 = (a->sign == b->sign ? MP_ZPOS : MP_NEG); - if (c != NULL) { - mp_exch(c, &q); - c->sign = (mp_iszero(c) == MP_YES) ? MP_ZPOS : n2; - } - if (d != NULL) { - mp_exch(d, &ta); - d->sign = (mp_iszero(d) == MP_YES) ? MP_ZPOS : n; - } -LBL_ERR: - mp_clear_multi(&ta, &tb, &tq, &q, NULL); - return res; -} - -#else - -/* integer signed division. - * c*b + d == a [e.g. a/b, c=quotient, d=remainder] - * HAC pp.598 Algorithm 14.20 - * - * Note that the description in HAC is horribly - * incomplete. For example, it doesn't consider - * the case where digits are removed from 'x' in - * the inner loop. It also doesn't consider the - * case that y has fewer than three digits, etc.. - * - * The overall algorithm is as described as - * 14.20 from HAC but fixed to treat these cases. -*/ -int mp_div (mp_int * a, mp_int * b, mp_int * c, mp_int * d) -{ - mp_int q, x, y, t1, t2; - int res, n, t, i, norm, neg; - - /* is divisor zero ? */ - if (mp_iszero (b) == 1) { - return MP_VAL; - } - - /* if a < b then q=0, r = a */ - if (mp_cmp_mag (a, b) == MP_LT) { - if (d != NULL) { - res = mp_copy (a, d); - } else { - res = MP_OKAY; - } - if (c != NULL) { - mp_zero (c); - } - return res; - } - - if ((res = mp_init_size (&q, a->used + 2)) != MP_OKAY) { - return res; - } - q.used = a->used + 2; - - if ((res = mp_init (&t1)) != MP_OKAY) { - goto LBL_Q; - } - - if ((res = mp_init (&t2)) != MP_OKAY) { - goto LBL_T1; - } - - if ((res = mp_init_copy (&x, a)) != MP_OKAY) { - goto LBL_T2; - } - - if ((res = mp_init_copy (&y, b)) != MP_OKAY) { - goto LBL_X; - } - - /* fix the sign */ - neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; - x.sign = y.sign = MP_ZPOS; - - /* normalize both x and y, ensure that y >= b/2, [b == 2**DIGIT_BIT] */ - norm = mp_count_bits(&y) % DIGIT_BIT; - if (norm < (int)(DIGIT_BIT-1)) { - norm = (DIGIT_BIT-1) - norm; - if ((res = mp_mul_2d (&x, norm, &x)) != MP_OKAY) { - goto LBL_Y; - } - if ((res = mp_mul_2d (&y, norm, &y)) != MP_OKAY) { - goto LBL_Y; - } - } else { - norm = 0; - } - - /* note hac does 0 based, so if used==5 then its 0,1,2,3,4, e.g. use 4 */ - n = x.used - 1; - t = y.used - 1; - - /* while (x >= y*b**n-t) do { q[n-t] += 1; x -= y*b**{n-t} } */ - if ((res = mp_lshd (&y, n - t)) != MP_OKAY) { /* y = y*b**{n-t} */ - goto LBL_Y; - } - - while (mp_cmp (&x, &y) != MP_LT) { - ++(q.dp[n - t]); - if ((res = mp_sub (&x, &y, &x)) != MP_OKAY) { - goto LBL_Y; - } - } - - /* reset y by shifting it back down */ - mp_rshd (&y, n - t); - - /* step 3. for i from n down to (t + 1) */ - for (i = n; i >= (t + 1); i--) { - if (i > x.used) { - continue; - } - - /* step 3.1 if xi == yt then set q{i-t-1} to b-1, - * otherwise set q{i-t-1} to (xi*b + x{i-1})/yt */ - if (x.dp[i] == y.dp[t]) { - q.dp[i - t - 1] = ((((mp_digit)1) << DIGIT_BIT) - 1); - } else { - mp_word tmp; - tmp = ((mp_word) x.dp[i]) << ((mp_word) DIGIT_BIT); - tmp |= ((mp_word) x.dp[i - 1]); - tmp /= ((mp_word) y.dp[t]); - if (tmp > (mp_word) MP_MASK) - tmp = MP_MASK; - q.dp[i - t - 1] = (mp_digit) (tmp & (mp_word) (MP_MASK)); - } - - /* while (q{i-t-1} * (yt * b + y{t-1})) > - xi * b**2 + xi-1 * b + xi-2 - - do q{i-t-1} -= 1; - */ - q.dp[i - t - 1] = (q.dp[i - t - 1] + 1) & MP_MASK; - do { - q.dp[i - t - 1] = (q.dp[i - t - 1] - 1) & MP_MASK; - - /* find left hand */ - mp_zero (&t1); - t1.dp[0] = (t - 1 < 0) ? 0 : y.dp[t - 1]; - t1.dp[1] = y.dp[t]; - t1.used = 2; - if ((res = mp_mul_d (&t1, q.dp[i - t - 1], &t1)) != MP_OKAY) { - goto LBL_Y; - } - - /* find right hand */ - t2.dp[0] = (i - 2 < 0) ? 0 : x.dp[i - 2]; - t2.dp[1] = (i - 1 < 0) ? 0 : x.dp[i - 1]; - t2.dp[2] = x.dp[i]; - t2.used = 3; - } while (mp_cmp_mag(&t1, &t2) == MP_GT); - - /* step 3.3 x = x - q{i-t-1} * y * b**{i-t-1} */ - if ((res = mp_mul_d (&y, q.dp[i - t - 1], &t1)) != MP_OKAY) { - goto LBL_Y; - } - - if ((res = mp_lshd (&t1, i - t - 1)) != MP_OKAY) { - goto LBL_Y; - } - - if ((res = mp_sub (&x, &t1, &x)) != MP_OKAY) { - goto LBL_Y; - } - - /* if x < 0 then { x = x + y*b**{i-t-1}; q{i-t-1} -= 1; } */ - if (x.sign == MP_NEG) { - if ((res = mp_copy (&y, &t1)) != MP_OKAY) { - goto LBL_Y; - } - if ((res = mp_lshd (&t1, i - t - 1)) != MP_OKAY) { - goto LBL_Y; - } - if ((res = mp_add (&x, &t1, &x)) != MP_OKAY) { - goto LBL_Y; - } - - q.dp[i - t - 1] = (q.dp[i - t - 1] - 1UL) & MP_MASK; - } - } - - /* now q is the quotient and x is the remainder - * [which we have to normalize] - */ - - /* get sign before writing to c */ - x.sign = x.used == 0 ? MP_ZPOS : a->sign; - - if (c != NULL) { - mp_clamp (&q); - mp_exch (&q, c); - c->sign = neg; - } - - if (d != NULL) { - mp_div_2d (&x, norm, &x, NULL); - mp_exch (&x, d); - } - - res = MP_OKAY; - -LBL_Y:mp_clear (&y); -LBL_X:mp_clear (&x); -LBL_T2:mp_clear (&t2); -LBL_T1:mp_clear (&t1); -LBL_Q:mp_clear (&q); - return res; -} - -#endif - -#endif - -/* End: bn_mp_div.c */ - -/* Start: bn_mp_div_2.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DIV_2_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* b = a/2 */ -int mp_div_2(mp_int * a, mp_int * b) -{ - int x, res, oldused; - - /* copy */ - if (b->alloc < a->used) { - if ((res = mp_grow (b, a->used)) != MP_OKAY) { - return res; - } - } - - oldused = b->used; - b->used = a->used; - { - register mp_digit r, rr, *tmpa, *tmpb; - - /* source alias */ - tmpa = a->dp + b->used - 1; - - /* dest alias */ - tmpb = b->dp + b->used - 1; - - /* carry */ - r = 0; - for (x = b->used - 1; x >= 0; x--) { - /* get the carry for the next iteration */ - rr = *tmpa & 1; - - /* shift the current digit, add in carry and store */ - *tmpb-- = (*tmpa-- >> 1) | (r << (DIGIT_BIT - 1)); - - /* forward carry to next iteration */ - r = rr; - } - - /* zero excess digits */ - tmpb = b->dp + b->used; - for (x = b->used; x < oldused; x++) { - *tmpb++ = 0; - } - } - b->sign = a->sign; - mp_clamp (b); - return MP_OKAY; -} -#endif - -/* End: bn_mp_div_2.c */ - -/* Start: bn_mp_div_2d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DIV_2D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* shift right by a certain bit count (store quotient in c, optional remainder in d) */ -int mp_div_2d (mp_int * a, int b, mp_int * c, mp_int * d) -{ - mp_digit D, r, rr; - int x, res; - mp_int t; - - - /* if the shift count is <= 0 then we do no work */ - if (b <= 0) { - res = mp_copy (a, c); - if (d != NULL) { - mp_zero (d); - } - return res; - } - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - /* get the remainder */ - if (d != NULL) { - if ((res = mp_mod_2d (a, b, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - } - - /* copy */ - if ((res = mp_copy (a, c)) != MP_OKAY) { - mp_clear (&t); - return res; - } - - /* shift by as many digits in the bit count */ - if (b >= (int)DIGIT_BIT) { - mp_rshd (c, b / DIGIT_BIT); - } - - /* shift any bit count < DIGIT_BIT */ - D = (mp_digit) (b % DIGIT_BIT); - if (D != 0) { - register mp_digit *tmpc, mask, shift; - - /* mask */ - mask = (((mp_digit)1) << D) - 1; - - /* shift for lsb */ - shift = DIGIT_BIT - D; - - /* alias */ - tmpc = c->dp + (c->used - 1); - - /* carry */ - r = 0; - for (x = c->used - 1; x >= 0; x--) { - /* get the lower bits of this word in a temp */ - rr = *tmpc & mask; - - /* shift the current word and mix in the carry bits from the previous word */ - *tmpc = (*tmpc >> D) | (r << shift); - --tmpc; - - /* set the carry to the carry bits of the current word found above */ - r = rr; - } - } - mp_clamp (c); - if (d != NULL) { - mp_exch (&t, d); - } - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_mp_div_2d.c */ - -/* Start: bn_mp_div_3.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DIV_3_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* divide by three (based on routine from MPI and the GMP manual) */ -int -mp_div_3 (mp_int * a, mp_int *c, mp_digit * d) -{ - mp_int q; - mp_word w, t; - mp_digit b; - int res, ix; - - /* b = 2**DIGIT_BIT / 3 */ - b = (((mp_word)1) << ((mp_word)DIGIT_BIT)) / ((mp_word)3); - - if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { - return res; - } - - q.used = a->used; - q.sign = a->sign; - w = 0; - for (ix = a->used - 1; ix >= 0; ix--) { - w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); - - if (w >= 3) { - /* multiply w by [1/3] */ - t = (w * ((mp_word)b)) >> ((mp_word)DIGIT_BIT); - - /* now subtract 3 * [w/3] from w, to get the remainder */ - w -= t+t+t; - - /* fixup the remainder as required since - * the optimization is not exact. - */ - while (w >= 3) { - t += 1; - w -= 3; - } - } else { - t = 0; - } - q.dp[ix] = (mp_digit)t; - } - - /* [optional] store the remainder */ - if (d != NULL) { - *d = (mp_digit)w; - } - - /* [optional] store the quotient */ - if (c != NULL) { - mp_clamp(&q); - mp_exch(&q, c); - } - mp_clear(&q); - - return res; -} - -#endif - -/* End: bn_mp_div_3.c */ - -/* Start: bn_mp_div_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DIV_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -static int s_is_power_of_two(mp_digit b, int *p) -{ - int x; - - for (x = 1; x < DIGIT_BIT; x++) { - if (b == (((mp_digit)1)<<x)) { - *p = x; - return 1; - } - } - return 0; -} - -/* single digit division (based on routine from MPI) */ -int mp_div_d (mp_int * a, mp_digit b, mp_int * c, mp_digit * d) -{ - mp_int q; - mp_word w; - mp_digit t; - int res, ix; - - /* cannot divide by zero */ - if (b == 0) { - return MP_VAL; - } - - /* quick outs */ - if (b == 1 || mp_iszero(a) == 1) { - if (d != NULL) { - *d = 0; - } - if (c != NULL) { - return mp_copy(a, c); - } - return MP_OKAY; - } - - /* power of two ? */ - if (s_is_power_of_two(b, &ix) == 1) { - if (d != NULL) { - *d = a->dp[0] & ((((mp_digit)1)<<ix) - 1); - } - if (c != NULL) { - return mp_div_2d(a, ix, c, NULL); - } - return MP_OKAY; - } - -#ifdef BN_MP_DIV_3_C - /* three? */ - if (b == 3) { - return mp_div_3(a, c, d); - } -#endif - - /* no easy answer [c'est la vie]. Just division */ - if ((res = mp_init_size(&q, a->used)) != MP_OKAY) { - return res; - } - - q.used = a->used; - q.sign = a->sign; - w = 0; - for (ix = a->used - 1; ix >= 0; ix--) { - w = (w << ((mp_word)DIGIT_BIT)) | ((mp_word)a->dp[ix]); - - if (w >= b) { - t = (mp_digit)(w / b); - w -= ((mp_word)t) * ((mp_word)b); - } else { - t = 0; - } - q.dp[ix] = (mp_digit)t; - } - - if (d != NULL) { - *d = (mp_digit)w; - } - - if (c != NULL) { - mp_clamp(&q); - mp_exch(&q, c); - } - mp_clear(&q); - - return res; -} - -#endif - -/* End: bn_mp_div_d.c */ - -/* Start: bn_mp_dr_is_modulus.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DR_IS_MODULUS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines if a number is a valid DR modulus */ -int mp_dr_is_modulus(mp_int *a) -{ - int ix; - - /* must be at least two digits */ - if (a->used < 2) { - return 0; - } - - /* must be of the form b**k - a [a <= b] so all - * but the first digit must be equal to -1 (mod b). - */ - for (ix = 1; ix < a->used; ix++) { - if (a->dp[ix] != MP_MASK) { - return 0; - } - } - return 1; -} - -#endif - -/* End: bn_mp_dr_is_modulus.c */ - -/* Start: bn_mp_dr_reduce.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DR_REDUCE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reduce "x" in place modulo "n" using the Diminished Radix algorithm. - * - * Based on algorithm from the paper - * - * "Generating Efficient Primes for Discrete Log Cryptosystems" - * Chae Hoon Lim, Pil Joong Lee, - * POSTECH Information Research Laboratories - * - * The modulus must be of a special format [see manual] - * - * Has been modified to use algorithm 7.10 from the LTM book instead - * - * Input x must be in the range 0 <= x <= (n-1)**2 - */ -int -mp_dr_reduce (mp_int * x, mp_int * n, mp_digit k) -{ - int err, i, m; - mp_word r; - mp_digit mu, *tmpx1, *tmpx2; - - /* m = digits in modulus */ - m = n->used; - - /* ensure that "x" has at least 2m digits */ - if (x->alloc < m + m) { - if ((err = mp_grow (x, m + m)) != MP_OKAY) { - return err; - } - } - -/* top of loop, this is where the code resumes if - * another reduction pass is required. - */ -top: - /* aliases for digits */ - /* alias for lower half of x */ - tmpx1 = x->dp; - - /* alias for upper half of x, or x/B**m */ - tmpx2 = x->dp + m; - - /* set carry to zero */ - mu = 0; - - /* compute (x mod B**m) + k * [x/B**m] inline and inplace */ - for (i = 0; i < m; i++) { - r = ((mp_word)*tmpx2++) * ((mp_word)k) + *tmpx1 + mu; - *tmpx1++ = (mp_digit)(r & MP_MASK); - mu = (mp_digit)(r >> ((mp_word)DIGIT_BIT)); - } - - /* set final carry */ - *tmpx1++ = mu; - - /* zero words above m */ - for (i = m + 1; i < x->used; i++) { - *tmpx1++ = 0; - } - - /* clamp, sub and return */ - mp_clamp (x); - - /* if x >= n then subtract and reduce again - * Each successive "recursion" makes the input smaller and smaller. - */ - if (mp_cmp_mag (x, n) != MP_LT) { - s_mp_sub(x, n, x); - goto top; - } - return MP_OKAY; -} -#endif - -/* End: bn_mp_dr_reduce.c */ - -/* Start: bn_mp_dr_setup.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_DR_SETUP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines the setup value */ -void mp_dr_setup(mp_int *a, mp_digit *d) -{ - /* the casts are required if DIGIT_BIT is one less than - * the number of bits in a mp_digit [e.g. DIGIT_BIT==31] - */ - *d = (mp_digit)((((mp_word)1) << ((mp_word)DIGIT_BIT)) - - ((mp_word)a->dp[0])); -} - -#endif - -/* End: bn_mp_dr_setup.c */ - -/* Start: bn_mp_exch.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_EXCH_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* swap the elements of two integers, for cases where you can't simply swap the - * mp_int pointers around - */ -void -mp_exch (mp_int * a, mp_int * b) -{ - mp_int t; - - t = *a; - *a = *b; - *b = t; -} -#endif - -/* End: bn_mp_exch.c */ - -/* Start: bn_mp_expt_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_EXPT_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* calculate c = a**b using a square-multiply algorithm */ -int mp_expt_d (mp_int * a, mp_digit b, mp_int * c) -{ - int res, x; - mp_int g; - - if ((res = mp_init_copy (&g, a)) != MP_OKAY) { - return res; - } - - /* set initial result */ - mp_set (c, 1); - - for (x = 0; x < (int) DIGIT_BIT; x++) { - /* square */ - if ((res = mp_sqr (c, c)) != MP_OKAY) { - mp_clear (&g); - return res; - } - - /* if the bit is set multiply */ - if ((b & (mp_digit) (((mp_digit)1) << (DIGIT_BIT - 1))) != 0) { - if ((res = mp_mul (c, &g, c)) != MP_OKAY) { - mp_clear (&g); - return res; - } - } - - /* shift to next bit */ - b <<= 1; - } - - mp_clear (&g); - return MP_OKAY; -} -#endif - -/* End: bn_mp_expt_d.c */ - -/* Start: bn_mp_exptmod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_EXPTMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - - -/* this is a shell function that calls either the normal or Montgomery - * exptmod functions. Originally the call to the montgomery code was - * embedded in the normal function but that wasted alot of stack space - * for nothing (since 99% of the time the Montgomery code would be called) - */ -int mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y) -{ - int dr; - - /* modulus P must be positive */ - if (P->sign == MP_NEG) { - return MP_VAL; - } - - /* if exponent X is negative we have to recurse */ - if (X->sign == MP_NEG) { -#ifdef BN_MP_INVMOD_C - mp_int tmpG, tmpX; - int err; - - /* first compute 1/G mod P */ - if ((err = mp_init(&tmpG)) != MP_OKAY) { - return err; - } - if ((err = mp_invmod(G, P, &tmpG)) != MP_OKAY) { - mp_clear(&tmpG); - return err; - } - - /* now get |X| */ - if ((err = mp_init(&tmpX)) != MP_OKAY) { - mp_clear(&tmpG); - return err; - } - if ((err = mp_abs(X, &tmpX)) != MP_OKAY) { - mp_clear_multi(&tmpG, &tmpX, NULL); - return err; - } - - /* and now compute (1/G)**|X| instead of G**X [X < 0] */ - err = mp_exptmod(&tmpG, &tmpX, P, Y); - mp_clear_multi(&tmpG, &tmpX, NULL); - return err; -#else - /* no invmod */ - return MP_VAL; -#endif - } - -/* modified diminished radix reduction */ -#if defined(BN_MP_REDUCE_IS_2K_L_C) && defined(BN_MP_REDUCE_2K_L_C) - if (mp_reduce_is_2k_l(P) == MP_YES) { - return s_mp_exptmod(G, X, P, Y, 1); - } -#endif - -#ifdef BN_MP_DR_IS_MODULUS_C - /* is it a DR modulus? */ - dr = mp_dr_is_modulus(P); -#else - /* default to no */ - dr = 0; -#endif - -#ifdef BN_MP_REDUCE_IS_2K_C - /* if not, is it a unrestricted DR modulus? */ - if (dr == 0) { - dr = mp_reduce_is_2k(P) << 1; - } -#endif - - /* if the modulus is odd or dr != 0 use the montgomery method */ -#ifdef BN_MP_EXPTMOD_FAST_C - if (mp_isodd (P) == 1 || dr != 0) { - return mp_exptmod_fast (G, X, P, Y, dr); - } else { -#endif -#ifdef BN_S_MP_EXPTMOD_C - /* otherwise use the generic Barrett reduction technique */ - return s_mp_exptmod (G, X, P, Y, 0); -#else - /* no exptmod for evens */ - return MP_VAL; -#endif -#ifdef BN_MP_EXPTMOD_FAST_C - } -#endif -} - -#endif - -/* End: bn_mp_exptmod.c */ - -/* Start: bn_mp_exptmod_fast.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_EXPTMOD_FAST_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85 - * - * Uses a left-to-right k-ary sliding window to compute the modular exponentiation. - * The value of k changes based on the size of the exponent. - * - * Uses Montgomery or Diminished Radix reduction [whichever appropriate] - */ - -#ifdef MP_LOW_MEM - #define TAB_SIZE 32 -#else - #define TAB_SIZE 256 -#endif - -int mp_exptmod_fast (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) -{ - mp_int M[TAB_SIZE], res; - mp_digit buf, mp; - int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; - - /* use a pointer to the reduction algorithm. This allows us to use - * one of many reduction algorithms without modding the guts of - * the code with if statements everywhere. - */ - int (*redux)(mp_int*,mp_int*,mp_digit); - - /* find window size */ - x = mp_count_bits (X); - if (x <= 7) { - winsize = 2; - } else if (x <= 36) { - winsize = 3; - } else if (x <= 140) { - winsize = 4; - } else if (x <= 450) { - winsize = 5; - } else if (x <= 1303) { - winsize = 6; - } else if (x <= 3529) { - winsize = 7; - } else { - winsize = 8; - } - -#ifdef MP_LOW_MEM - if (winsize > 5) { - winsize = 5; - } -#endif - - /* init M array */ - /* init first cell */ - if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; - } - - /* now init the second half of the array */ - for (x = 1<<(winsize-1); x < (1 << winsize); x++) { - if ((err = mp_init(&M[x])) != MP_OKAY) { - for (y = 1<<(winsize-1); y < x; y++) { - mp_clear (&M[y]); - } - mp_clear(&M[1]); - return err; - } - } - - /* determine and setup reduction code */ - if (redmode == 0) { -#ifdef BN_MP_MONTGOMERY_SETUP_C - /* now setup montgomery */ - if ((err = mp_montgomery_setup (P, &mp)) != MP_OKAY) { - goto LBL_M; - } -#else - err = MP_VAL; - goto LBL_M; -#endif - - /* automatically pick the comba one if available (saves quite a few calls/ifs) */ -#ifdef BN_FAST_MP_MONTGOMERY_REDUCE_C - if (((P->used * 2 + 1) < MP_WARRAY) && - P->used < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { - redux = fast_mp_montgomery_reduce; - } else -#endif - { -#ifdef BN_MP_MONTGOMERY_REDUCE_C - /* use slower baseline Montgomery method */ - redux = mp_montgomery_reduce; -#else - err = MP_VAL; - goto LBL_M; -#endif - } - } else if (redmode == 1) { -#if defined(BN_MP_DR_SETUP_C) && defined(BN_MP_DR_REDUCE_C) - /* setup DR reduction for moduli of the form B**k - b */ - mp_dr_setup(P, &mp); - redux = mp_dr_reduce; -#else - err = MP_VAL; - goto LBL_M; -#endif - } else { -#if defined(BN_MP_REDUCE_2K_SETUP_C) && defined(BN_MP_REDUCE_2K_C) - /* setup DR reduction for moduli of the form 2**k - b */ - if ((err = mp_reduce_2k_setup(P, &mp)) != MP_OKAY) { - goto LBL_M; - } - redux = mp_reduce_2k; -#else - err = MP_VAL; - goto LBL_M; -#endif - } - - /* setup result */ - if ((err = mp_init (&res)) != MP_OKAY) { - goto LBL_M; - } - - /* create M table - * - - * - * The first half of the table is not computed though accept for M[0] and M[1] - */ - - if (redmode == 0) { -#ifdef BN_MP_MONTGOMERY_CALC_NORMALIZATION_C - /* now we need R mod m */ - if ((err = mp_montgomery_calc_normalization (&res, P)) != MP_OKAY) { - goto LBL_RES; - } -#else - err = MP_VAL; - goto LBL_RES; -#endif - - /* now set M[1] to G * R mod m */ - if ((err = mp_mulmod (G, &res, P, &M[1])) != MP_OKAY) { - goto LBL_RES; - } - } else { - mp_set(&res, 1); - if ((err = mp_mod(G, P, &M[1])) != MP_OKAY) { - goto LBL_RES; - } - } - - /* compute the value at M[1<<(winsize-1)] by squaring M[1] (winsize-1) times */ - if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { - goto LBL_RES; - } - - for (x = 0; x < (winsize - 1); x++) { - if ((err = mp_sqr (&M[1 << (winsize - 1)], &M[1 << (winsize - 1)])) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&M[1 << (winsize - 1)], P, mp)) != MP_OKAY) { - goto LBL_RES; - } - } - - /* create upper table */ - for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) { - if ((err = mp_mul (&M[x - 1], &M[1], &M[x])) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&M[x], P, mp)) != MP_OKAY) { - goto LBL_RES; - } - } - - /* set initial mode and bit cnt */ - mode = 0; - bitcnt = 1; - buf = 0; - digidx = X->used - 1; - bitcpy = 0; - bitbuf = 0; - - for (;;) { - /* grab next digit as required */ - if (--bitcnt == 0) { - /* if digidx == -1 we are out of digits so break */ - if (digidx == -1) { - break; - } - /* read next digit and reset bitcnt */ - buf = X->dp[digidx--]; - bitcnt = (int)DIGIT_BIT; - } - - /* grab the next msb from the exponent */ - y = (mp_digit)(buf >> (DIGIT_BIT - 1)) & 1; - buf <<= (mp_digit)1; - - /* if the bit is zero and mode == 0 then we ignore it - * These represent the leading zero bits before the first 1 bit - * in the exponent. Technically this opt is not required but it - * does lower the # of trivial squaring/reductions used - */ - if (mode == 0 && y == 0) { - continue; - } - - /* if the bit is zero and mode == 1 then we square */ - if (mode == 1 && y == 0) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - continue; - } - - /* else we add it to the window */ - bitbuf |= (y << (winsize - ++bitcpy)); - mode = 2; - - if (bitcpy == winsize) { - /* ok window is filled so square as required and multiply */ - /* square first */ - for (x = 0; x < winsize; x++) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - } - - /* then multiply */ - if ((err = mp_mul (&res, &M[bitbuf], &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - - /* empty window and reset */ - bitcpy = 0; - bitbuf = 0; - mode = 1; - } - } - - /* if bits remain then square/multiply */ - if (mode == 2 && bitcpy > 0) { - /* square then multiply if the bit is set */ - for (x = 0; x < bitcpy; x++) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - - /* get next bit of the window */ - bitbuf <<= 1; - if ((bitbuf & (1 << winsize)) != 0) { - /* then multiply */ - if ((err = mp_mul (&res, &M[1], &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - } - } - } - - if (redmode == 0) { - /* fixup result if Montgomery reduction is used - * recall that any value in a Montgomery system is - * actually multiplied by R mod n. So we have - * to reduce one more time to cancel out the factor - * of R. - */ - if ((err = redux(&res, P, mp)) != MP_OKAY) { - goto LBL_RES; - } - } - - /* swap res with Y */ - mp_exch (&res, Y); - err = MP_OKAY; -LBL_RES:mp_clear (&res); -LBL_M: - mp_clear(&M[1]); - for (x = 1<<(winsize-1); x < (1 << winsize); x++) { - mp_clear (&M[x]); - } - return err; -} -#endif - - -/* End: bn_mp_exptmod_fast.c */ - -/* Start: bn_mp_exteuclid.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_EXTEUCLID_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Extended euclidean algorithm of (a, b) produces - a*u1 + b*u2 = u3 - */ -int mp_exteuclid(mp_int *a, mp_int *b, mp_int *U1, mp_int *U2, mp_int *U3) -{ - mp_int u1,u2,u3,v1,v2,v3,t1,t2,t3,q,tmp; - int err; - - if ((err = mp_init_multi(&u1, &u2, &u3, &v1, &v2, &v3, &t1, &t2, &t3, &q, &tmp, NULL)) != MP_OKAY) { - return err; - } - - /* initialize, (u1,u2,u3) = (1,0,a) */ - mp_set(&u1, 1); - if ((err = mp_copy(a, &u3)) != MP_OKAY) { goto _ERR; } - - /* initialize, (v1,v2,v3) = (0,1,b) */ - mp_set(&v2, 1); - if ((err = mp_copy(b, &v3)) != MP_OKAY) { goto _ERR; } - - /* loop while v3 != 0 */ - while (mp_iszero(&v3) == MP_NO) { - /* q = u3/v3 */ - if ((err = mp_div(&u3, &v3, &q, NULL)) != MP_OKAY) { goto _ERR; } - - /* (t1,t2,t3) = (u1,u2,u3) - (v1,v2,v3)q */ - if ((err = mp_mul(&v1, &q, &tmp)) != MP_OKAY) { goto _ERR; } - if ((err = mp_sub(&u1, &tmp, &t1)) != MP_OKAY) { goto _ERR; } - if ((err = mp_mul(&v2, &q, &tmp)) != MP_OKAY) { goto _ERR; } - if ((err = mp_sub(&u2, &tmp, &t2)) != MP_OKAY) { goto _ERR; } - if ((err = mp_mul(&v3, &q, &tmp)) != MP_OKAY) { goto _ERR; } - if ((err = mp_sub(&u3, &tmp, &t3)) != MP_OKAY) { goto _ERR; } - - /* (u1,u2,u3) = (v1,v2,v3) */ - if ((err = mp_copy(&v1, &u1)) != MP_OKAY) { goto _ERR; } - if ((err = mp_copy(&v2, &u2)) != MP_OKAY) { goto _ERR; } - if ((err = mp_copy(&v3, &u3)) != MP_OKAY) { goto _ERR; } - - /* (v1,v2,v3) = (t1,t2,t3) */ - if ((err = mp_copy(&t1, &v1)) != MP_OKAY) { goto _ERR; } - if ((err = mp_copy(&t2, &v2)) != MP_OKAY) { goto _ERR; } - if ((err = mp_copy(&t3, &v3)) != MP_OKAY) { goto _ERR; } - } - - /* make sure U3 >= 0 */ - if (u3.sign == MP_NEG) { - mp_neg(&u1, &u1); - mp_neg(&u2, &u2); - mp_neg(&u3, &u3); - } - - /* copy result out */ - if (U1 != NULL) { mp_exch(U1, &u1); } - if (U2 != NULL) { mp_exch(U2, &u2); } - if (U3 != NULL) { mp_exch(U3, &u3); } - - err = MP_OKAY; -_ERR: mp_clear_multi(&u1, &u2, &u3, &v1, &v2, &v3, &t1, &t2, &t3, &q, &tmp, NULL); - return err; -} -#endif - -/* End: bn_mp_exteuclid.c */ - -/* Start: bn_mp_fread.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_FREAD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* read a bigint from a file stream in ASCII */ -int mp_fread(mp_int *a, int radix, FILE *stream) -{ - int err, ch, neg, y; - - /* clear a */ - mp_zero(a); - - /* if first digit is - then set negative */ - ch = fgetc(stream); - if (ch == '-') { - neg = MP_NEG; - ch = fgetc(stream); - } else { - neg = MP_ZPOS; - } - - for (;;) { - /* find y in the radix map */ - for (y = 0; y < radix; y++) { - if (mp_s_rmap[y] == ch) { - break; - } - } - if (y == radix) { - break; - } - - /* shift up and add */ - if ((err = mp_mul_d(a, radix, a)) != MP_OKAY) { - return err; - } - if ((err = mp_add_d(a, y, a)) != MP_OKAY) { - return err; - } - - ch = fgetc(stream); - } - if (mp_cmp_d(a, 0) != MP_EQ) { - a->sign = neg; - } - - return MP_OKAY; -} - -#endif - -/* End: bn_mp_fread.c */ - -/* Start: bn_mp_fwrite.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_FWRITE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -int mp_fwrite(mp_int *a, int radix, FILE *stream) -{ - char *buf; - int err, len, x; - - if ((err = mp_radix_size(a, radix, &len)) != MP_OKAY) { - return err; - } - - buf = OPT_CAST(char) XMALLOC (len); - if (buf == NULL) { - return MP_MEM; - } - - if ((err = mp_toradix(a, buf, radix)) != MP_OKAY) { - XFREE (buf); - return err; - } - - for (x = 0; x < len; x++) { - if (fputc(buf[x], stream) == EOF) { - XFREE (buf); - return MP_VAL; - } - } - - XFREE (buf); - return MP_OKAY; -} - -#endif - -/* End: bn_mp_fwrite.c */ - -/* Start: bn_mp_gcd.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_GCD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Greatest Common Divisor using the binary method */ -int mp_gcd (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int u, v; - int k, u_lsb, v_lsb, res; - - /* either zero than gcd is the largest */ - if (mp_iszero (a) == 1 && mp_iszero (b) == 0) { - return mp_abs (b, c); - } - if (mp_iszero (a) == 0 && mp_iszero (b) == 1) { - return mp_abs (a, c); - } - - /* optimized. At this point if a == 0 then - * b must equal zero too - */ - if (mp_iszero (a) == 1) { - mp_zero(c); - return MP_OKAY; - } - - /* get copies of a and b we can modify */ - if ((res = mp_init_copy (&u, a)) != MP_OKAY) { - return res; - } - - if ((res = mp_init_copy (&v, b)) != MP_OKAY) { - goto LBL_U; - } - - /* must be positive for the remainder of the algorithm */ - u.sign = v.sign = MP_ZPOS; - - /* B1. Find the common power of two for u and v */ - u_lsb = mp_cnt_lsb(&u); - v_lsb = mp_cnt_lsb(&v); - k = MIN(u_lsb, v_lsb); - - if (k > 0) { - /* divide the power of two out */ - if ((res = mp_div_2d(&u, k, &u, NULL)) != MP_OKAY) { - goto LBL_V; - } - - if ((res = mp_div_2d(&v, k, &v, NULL)) != MP_OKAY) { - goto LBL_V; - } - } - - /* divide any remaining factors of two out */ - if (u_lsb != k) { - if ((res = mp_div_2d(&u, u_lsb - k, &u, NULL)) != MP_OKAY) { - goto LBL_V; - } - } - - if (v_lsb != k) { - if ((res = mp_div_2d(&v, v_lsb - k, &v, NULL)) != MP_OKAY) { - goto LBL_V; - } - } - - while (mp_iszero(&v) == 0) { - /* make sure v is the largest */ - if (mp_cmp_mag(&u, &v) == MP_GT) { - /* swap u and v to make sure v is >= u */ - mp_exch(&u, &v); - } - - /* subtract smallest from largest */ - if ((res = s_mp_sub(&v, &u, &v)) != MP_OKAY) { - goto LBL_V; - } - - /* Divide out all factors of two */ - if ((res = mp_div_2d(&v, mp_cnt_lsb(&v), &v, NULL)) != MP_OKAY) { - goto LBL_V; - } - } - - /* multiply by 2**k which we divided out at the beginning */ - if ((res = mp_mul_2d (&u, k, c)) != MP_OKAY) { - goto LBL_V; - } - c->sign = MP_ZPOS; - res = MP_OKAY; -LBL_V:mp_clear (&u); -LBL_U:mp_clear (&v); - return res; -} -#endif - -/* End: bn_mp_gcd.c */ - -/* Start: bn_mp_get_int.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_GET_INT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* get the lower 32-bits of an mp_int */ -unsigned long mp_get_int(mp_int * a) -{ - int i; - unsigned long res; - - if (a->used == 0) { - return 0; - } - - /* get number of digits of the lsb we have to read */ - i = MIN(a->used,(int)((sizeof(unsigned long)*CHAR_BIT+DIGIT_BIT-1)/DIGIT_BIT))-1; - - /* get most significant digit of result */ - res = DIGIT(a,i); - - while (--i >= 0) { - res = (res << DIGIT_BIT) | DIGIT(a,i); - } - - /* force result to 32-bits always so it is consistent on non 32-bit platforms */ - return res & 0xFFFFFFFFUL; -} -#endif - -/* End: bn_mp_get_int.c */ - -/* Start: bn_mp_grow.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_GROW_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* grow as required */ -int mp_grow (mp_int * a, int size) -{ - int i; - mp_digit *tmp; - - /* if the alloc size is smaller alloc more ram */ - if (a->alloc < size) { - /* ensure there are always at least MP_PREC digits extra on top */ - size += (MP_PREC * 2) - (size % MP_PREC); - - /* reallocate the array a->dp - * - * We store the return in a temporary variable - * in case the operation failed we don't want - * to overwrite the dp member of a. - */ - tmp = OPT_CAST(mp_digit) XREALLOC (a->dp, sizeof (mp_digit) * size); - if (tmp == NULL) { - /* reallocation failed but "a" is still valid [can be freed] */ - return MP_MEM; - } - - /* reallocation succeeded so set a->dp */ - a->dp = tmp; - - /* zero excess digits */ - i = a->alloc; - a->alloc = size; - for (; i < a->alloc; i++) { - a->dp[i] = 0; - } - } - return MP_OKAY; -} -#endif - -/* End: bn_mp_grow.c */ - -/* Start: bn_mp_init.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* init a new mp_int */ -int mp_init (mp_int * a) -{ - int i; - - /* allocate memory required and clear it */ - a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * MP_PREC); - if (a->dp == NULL) { - return MP_MEM; - } - - /* set the digits to zero */ - for (i = 0; i < MP_PREC; i++) { - a->dp[i] = 0; - } - - /* set the used to zero, allocated digits to the default precision - * and sign to positive */ - a->used = 0; - a->alloc = MP_PREC; - a->sign = MP_ZPOS; - - return MP_OKAY; -} -#endif - -/* End: bn_mp_init.c */ - -/* Start: bn_mp_init_copy.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_COPY_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* creates "a" then copies b into it */ -int mp_init_copy (mp_int * a, mp_int * b) -{ - int res; - - if ((res = mp_init (a)) != MP_OKAY) { - return res; - } - return mp_copy (b, a); -} -#endif - -/* End: bn_mp_init_copy.c */ - -/* Start: bn_mp_init_multi.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_MULTI_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ -#include <stdarg.h> - -int mp_init_multi(mp_int *mp, ...) -{ - mp_err res = MP_OKAY; /* Assume ok until proven otherwise */ - int n = 0; /* Number of ok inits */ - mp_int* cur_arg = mp; - va_list args; - - va_start(args, mp); /* init args to next argument from caller */ - while (cur_arg != NULL) { - if (mp_init(cur_arg) != MP_OKAY) { - /* Oops - error! Back-track and mp_clear what we already - succeeded in init-ing, then return error. - */ - va_list clean_args; - - /* end the current list */ - va_end(args); - - /* now start cleaning up */ - cur_arg = mp; - va_start(clean_args, mp); - while (n--) { - mp_clear(cur_arg); - cur_arg = va_arg(clean_args, mp_int*); - } - va_end(clean_args); - res = MP_MEM; - break; - } - n++; - cur_arg = va_arg(args, mp_int*); - } - va_end(args); - return res; /* Assumed ok, if error flagged above. */ -} - -#endif - -/* End: bn_mp_init_multi.c */ - -/* Start: bn_mp_init_set.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_SET_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* initialize and set a digit */ -int mp_init_set (mp_int * a, mp_digit b) -{ - int err; - if ((err = mp_init(a)) != MP_OKAY) { - return err; - } - mp_set(a, b); - return err; -} -#endif - -/* End: bn_mp_init_set.c */ - -/* Start: bn_mp_init_set_int.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_SET_INT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* initialize and set a digit */ -int mp_init_set_int (mp_int * a, unsigned long b) -{ - int err; - if ((err = mp_init(a)) != MP_OKAY) { - return err; - } - return mp_set_int(a, b); -} -#endif - -/* End: bn_mp_init_set_int.c */ - -/* Start: bn_mp_init_size.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INIT_SIZE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* init an mp_init for a given size */ -int mp_init_size (mp_int * a, int size) -{ - int x; - - /* pad size so there are always extra digits */ - size += (MP_PREC * 2) - (size % MP_PREC); - - /* alloc mem */ - a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * size); - if (a->dp == NULL) { - return MP_MEM; - } - - /* set the members */ - a->used = 0; - a->alloc = size; - a->sign = MP_ZPOS; - - /* zero the digits */ - for (x = 0; x < size; x++) { - a->dp[x] = 0; - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_init_size.c */ - -/* Start: bn_mp_invmod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INVMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* hac 14.61, pp608 */ -int mp_invmod (mp_int * a, mp_int * b, mp_int * c) -{ - /* b cannot be negative */ - if (b->sign == MP_NEG || mp_iszero(b) == 1) { - return MP_VAL; - } - -#ifdef BN_FAST_MP_INVMOD_C - /* if the modulus is odd we can use a faster routine instead */ - if (mp_isodd (b) == 1) { - return fast_mp_invmod (a, b, c); - } -#endif - -#ifdef BN_MP_INVMOD_SLOW_C - return mp_invmod_slow(a, b, c); -#endif - - return MP_VAL; -} -#endif - -/* End: bn_mp_invmod.c */ - -/* Start: bn_mp_invmod_slow.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_INVMOD_SLOW_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* hac 14.61, pp608 */ -int mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int x, y, u, v, A, B, C, D; - int res; - - /* b cannot be negative */ - if (b->sign == MP_NEG || mp_iszero(b) == 1) { - return MP_VAL; - } - - /* init temps */ - if ((res = mp_init_multi(&x, &y, &u, &v, - &A, &B, &C, &D, NULL)) != MP_OKAY) { - return res; - } - - /* x = a, y = b */ - if ((res = mp_mod(a, b, &x)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_copy (b, &y)) != MP_OKAY) { - goto LBL_ERR; - } - - /* 2. [modified] if x,y are both even then return an error! */ - if (mp_iseven (&x) == 1 && mp_iseven (&y) == 1) { - res = MP_VAL; - goto LBL_ERR; - } - - /* 3. u=x, v=y, A=1, B=0, C=0,D=1 */ - if ((res = mp_copy (&x, &u)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_copy (&y, &v)) != MP_OKAY) { - goto LBL_ERR; - } - mp_set (&A, 1); - mp_set (&D, 1); - -top: - /* 4. while u is even do */ - while (mp_iseven (&u) == 1) { - /* 4.1 u = u/2 */ - if ((res = mp_div_2 (&u, &u)) != MP_OKAY) { - goto LBL_ERR; - } - /* 4.2 if A or B is odd then */ - if (mp_isodd (&A) == 1 || mp_isodd (&B) == 1) { - /* A = (A+y)/2, B = (B-x)/2 */ - if ((res = mp_add (&A, &y, &A)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_sub (&B, &x, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } - /* A = A/2, B = B/2 */ - if ((res = mp_div_2 (&A, &A)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_div_2 (&B, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* 5. while v is even do */ - while (mp_iseven (&v) == 1) { - /* 5.1 v = v/2 */ - if ((res = mp_div_2 (&v, &v)) != MP_OKAY) { - goto LBL_ERR; - } - /* 5.2 if C or D is odd then */ - if (mp_isodd (&C) == 1 || mp_isodd (&D) == 1) { - /* C = (C+y)/2, D = (D-x)/2 */ - if ((res = mp_add (&C, &y, &C)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_sub (&D, &x, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - /* C = C/2, D = D/2 */ - if ((res = mp_div_2 (&C, &C)) != MP_OKAY) { - goto LBL_ERR; - } - if ((res = mp_div_2 (&D, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* 6. if u >= v then */ - if (mp_cmp (&u, &v) != MP_LT) { - /* u = u - v, A = A - C, B = B - D */ - if ((res = mp_sub (&u, &v, &u)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&A, &C, &A)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&B, &D, &B)) != MP_OKAY) { - goto LBL_ERR; - } - } else { - /* v - v - u, C = C - A, D = D - B */ - if ((res = mp_sub (&v, &u, &v)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&C, &A, &C)) != MP_OKAY) { - goto LBL_ERR; - } - - if ((res = mp_sub (&D, &B, &D)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* if not zero goto step 4 */ - if (mp_iszero (&u) == 0) - goto top; - - /* now a = C, b = D, gcd == g*v */ - - /* if v != 1 then there is no inverse */ - if (mp_cmp_d (&v, 1) != MP_EQ) { - res = MP_VAL; - goto LBL_ERR; - } - - /* if its too low */ - while (mp_cmp_d(&C, 0) == MP_LT) { - if ((res = mp_add(&C, b, &C)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* too big */ - while (mp_cmp_mag(&C, b) != MP_LT) { - if ((res = mp_sub(&C, b, &C)) != MP_OKAY) { - goto LBL_ERR; - } - } - - /* C is now the inverse */ - mp_exch (&C, c); - res = MP_OKAY; -LBL_ERR:mp_clear_multi (&x, &y, &u, &v, &A, &B, &C, &D, NULL); - return res; -} -#endif - -/* End: bn_mp_invmod_slow.c */ - -/* Start: bn_mp_is_square.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_IS_SQUARE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Check if remainders are possible squares - fast exclude non-squares */ -static const char rem_128[128] = { - 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1 -}; - -static const char rem_105[105] = { - 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 -}; - -/* Store non-zero to ret if arg is square, and zero if not */ -int mp_is_square(mp_int *arg,int *ret) -{ - int res; - mp_digit c; - mp_int t; - unsigned long r; - - /* Default to Non-square :) */ - *ret = MP_NO; - - if (arg->sign == MP_NEG) { - return MP_VAL; - } - - /* digits used? (TSD) */ - if (arg->used == 0) { - return MP_OKAY; - } - - /* First check mod 128 (suppose that DIGIT_BIT is at least 7) */ - if (rem_128[127 & DIGIT(arg,0)] == 1) { - return MP_OKAY; - } - - /* Next check mod 105 (3*5*7) */ - if ((res = mp_mod_d(arg,105,&c)) != MP_OKAY) { - return res; - } - if (rem_105[c] == 1) { - return MP_OKAY; - } - - - if ((res = mp_init_set_int(&t,11L*13L*17L*19L*23L*29L*31L)) != MP_OKAY) { - return res; - } - if ((res = mp_mod(arg,&t,&t)) != MP_OKAY) { - goto ERR; - } - r = mp_get_int(&t); - /* Check for other prime modules, note it's not an ERROR but we must - * free "t" so the easiest way is to goto ERR. We know that res - * is already equal to MP_OKAY from the mp_mod call - */ - if ( (1L<<(r%11)) & 0x5C4L ) goto ERR; - if ( (1L<<(r%13)) & 0x9E4L ) goto ERR; - if ( (1L<<(r%17)) & 0x5CE8L ) goto ERR; - if ( (1L<<(r%19)) & 0x4F50CL ) goto ERR; - if ( (1L<<(r%23)) & 0x7ACCA0L ) goto ERR; - if ( (1L<<(r%29)) & 0xC2EDD0CL ) goto ERR; - if ( (1L<<(r%31)) & 0x6DE2B848L ) goto ERR; - - /* Final check - is sqr(sqrt(arg)) == arg ? */ - if ((res = mp_sqrt(arg,&t)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sqr(&t,&t)) != MP_OKAY) { - goto ERR; - } - - *ret = (mp_cmp_mag(&t,arg) == MP_EQ) ? MP_YES : MP_NO; -ERR:mp_clear(&t); - return res; -} -#endif - -/* End: bn_mp_is_square.c */ - -/* Start: bn_mp_jacobi.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_JACOBI_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes the jacobi c = (a | n) (or Legendre if n is prime) - * HAC pp. 73 Algorithm 2.149 - */ -int mp_jacobi (mp_int * a, mp_int * p, int *c) -{ - mp_int a1, p1; - int k, s, r, res; - mp_digit residue; - - /* if p <= 0 return MP_VAL */ - if (mp_cmp_d(p, 0) != MP_GT) { - return MP_VAL; - } - - /* step 1. if a == 0, return 0 */ - if (mp_iszero (a) == 1) { - *c = 0; - return MP_OKAY; - } - - /* step 2. if a == 1, return 1 */ - if (mp_cmp_d (a, 1) == MP_EQ) { - *c = 1; - return MP_OKAY; - } - - /* default */ - s = 0; - - /* step 3. write a = a1 * 2**k */ - if ((res = mp_init_copy (&a1, a)) != MP_OKAY) { - return res; - } - - if ((res = mp_init (&p1)) != MP_OKAY) { - goto LBL_A1; - } - - /* divide out larger power of two */ - k = mp_cnt_lsb(&a1); - if ((res = mp_div_2d(&a1, k, &a1, NULL)) != MP_OKAY) { - goto LBL_P1; - } - - /* step 4. if e is even set s=1 */ - if ((k & 1) == 0) { - s = 1; - } else { - /* else set s=1 if p = 1/7 (mod 8) or s=-1 if p = 3/5 (mod 8) */ - residue = p->dp[0] & 7; - - if (residue == 1 || residue == 7) { - s = 1; - } else if (residue == 3 || residue == 5) { - s = -1; - } - } - - /* step 5. if p == 3 (mod 4) *and* a1 == 3 (mod 4) then s = -s */ - if ( ((p->dp[0] & 3) == 3) && ((a1.dp[0] & 3) == 3)) { - s = -s; - } - - /* if a1 == 1 we're done */ - if (mp_cmp_d (&a1, 1) == MP_EQ) { - *c = s; - } else { - /* n1 = n mod a1 */ - if ((res = mp_mod (p, &a1, &p1)) != MP_OKAY) { - goto LBL_P1; - } - if ((res = mp_jacobi (&p1, &a1, &r)) != MP_OKAY) { - goto LBL_P1; - } - *c = s * r; - } - - /* done */ - res = MP_OKAY; -LBL_P1:mp_clear (&p1); -LBL_A1:mp_clear (&a1); - return res; -} -#endif - -/* End: bn_mp_jacobi.c */ - -/* Start: bn_mp_karatsuba_mul.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_KARATSUBA_MUL_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* c = |a| * |b| using Karatsuba Multiplication using - * three half size multiplications - * - * Let B represent the radix [e.g. 2**DIGIT_BIT] and - * let n represent half of the number of digits in - * the min(a,b) - * - * a = a1 * B**n + a0 - * b = b1 * B**n + b0 - * - * Then, a * b => - a1b1 * B**2n + ((a1 - a0)(b1 - b0) + a0b0 + a1b1) * B + a0b0 - * - * Note that a1b1 and a0b0 are used twice and only need to be - * computed once. So in total three half size (half # of - * digit) multiplications are performed, a0b0, a1b1 and - * (a1-b1)(a0-b0) - * - * Note that a multiplication of half the digits requires - * 1/4th the number of single precision multiplications so in - * total after one call 25% of the single precision multiplications - * are saved. Note also that the call to mp_mul can end up back - * in this function if the a0, a1, b0, or b1 are above the threshold. - * This is known as divide-and-conquer and leads to the famous - * O(N**lg(3)) or O(N**1.584) work which is asymptopically lower than - * the standard O(N**2) that the baseline/comba methods use. - * Generally though the overhead of this method doesn't pay off - * until a certain size (N ~ 80) is reached. - */ -int mp_karatsuba_mul (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int x0, x1, y0, y1, t1, x0y0, x1y1; - int B, err; - - /* default the return code to an error */ - err = MP_MEM; - - /* min # of digits */ - B = MIN (a->used, b->used); - - /* now divide in two */ - B = B >> 1; - - /* init copy all the temps */ - if (mp_init_size (&x0, B) != MP_OKAY) - goto ERR; - if (mp_init_size (&x1, a->used - B) != MP_OKAY) - goto X0; - if (mp_init_size (&y0, B) != MP_OKAY) - goto X1; - if (mp_init_size (&y1, b->used - B) != MP_OKAY) - goto Y0; - - /* init temps */ - if (mp_init_size (&t1, B * 2) != MP_OKAY) - goto Y1; - if (mp_init_size (&x0y0, B * 2) != MP_OKAY) - goto T1; - if (mp_init_size (&x1y1, B * 2) != MP_OKAY) - goto X0Y0; - - /* now shift the digits */ - x0.used = y0.used = B; - x1.used = a->used - B; - y1.used = b->used - B; - - { - register int x; - register mp_digit *tmpa, *tmpb, *tmpx, *tmpy; - - /* we copy the digits directly instead of using higher level functions - * since we also need to shift the digits - */ - tmpa = a->dp; - tmpb = b->dp; - - tmpx = x0.dp; - tmpy = y0.dp; - for (x = 0; x < B; x++) { - *tmpx++ = *tmpa++; - *tmpy++ = *tmpb++; - } - - tmpx = x1.dp; - for (x = B; x < a->used; x++) { - *tmpx++ = *tmpa++; - } - - tmpy = y1.dp; - for (x = B; x < b->used; x++) { - *tmpy++ = *tmpb++; - } - } - - /* only need to clamp the lower words since by definition the - * upper words x1/y1 must have a known number of digits - */ - mp_clamp (&x0); - mp_clamp (&y0); - - /* now calc the products x0y0 and x1y1 */ - /* after this x0 is no longer required, free temp [x0==t2]! */ - if (mp_mul (&x0, &y0, &x0y0) != MP_OKAY) - goto X1Y1; /* x0y0 = x0*y0 */ - if (mp_mul (&x1, &y1, &x1y1) != MP_OKAY) - goto X1Y1; /* x1y1 = x1*y1 */ - - /* now calc x1-x0 and y1-y0 */ - if (mp_sub (&x1, &x0, &t1) != MP_OKAY) - goto X1Y1; /* t1 = x1 - x0 */ - if (mp_sub (&y1, &y0, &x0) != MP_OKAY) - goto X1Y1; /* t2 = y1 - y0 */ - if (mp_mul (&t1, &x0, &t1) != MP_OKAY) - goto X1Y1; /* t1 = (x1 - x0) * (y1 - y0) */ - - /* add x0y0 */ - if (mp_add (&x0y0, &x1y1, &x0) != MP_OKAY) - goto X1Y1; /* t2 = x0y0 + x1y1 */ - if (mp_sub (&x0, &t1, &t1) != MP_OKAY) - goto X1Y1; /* t1 = x0y0 + x1y1 - (x1-x0)*(y1-y0) */ - - /* shift by B */ - if (mp_lshd (&t1, B) != MP_OKAY) - goto X1Y1; /* t1 = (x0y0 + x1y1 - (x1-x0)*(y1-y0))<<B */ - if (mp_lshd (&x1y1, B * 2) != MP_OKAY) - goto X1Y1; /* x1y1 = x1y1 << 2*B */ - - if (mp_add (&x0y0, &t1, &t1) != MP_OKAY) - goto X1Y1; /* t1 = x0y0 + t1 */ - if (mp_add (&t1, &x1y1, c) != MP_OKAY) - goto X1Y1; /* t1 = x0y0 + t1 + x1y1 */ - - /* Algorithm succeeded set the return code to MP_OKAY */ - err = MP_OKAY; - -X1Y1:mp_clear (&x1y1); -X0Y0:mp_clear (&x0y0); -T1:mp_clear (&t1); -Y1:mp_clear (&y1); -Y0:mp_clear (&y0); -X1:mp_clear (&x1); -X0:mp_clear (&x0); -ERR: - return err; -} -#endif - -/* End: bn_mp_karatsuba_mul.c */ - -/* Start: bn_mp_karatsuba_sqr.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_KARATSUBA_SQR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Karatsuba squaring, computes b = a*a using three - * half size squarings - * - * See comments of karatsuba_mul for details. It - * is essentially the same algorithm but merely - * tuned to perform recursive squarings. - */ -int mp_karatsuba_sqr (mp_int * a, mp_int * b) -{ - mp_int x0, x1, t1, t2, x0x0, x1x1; - int B, err; - - err = MP_MEM; - - /* min # of digits */ - B = a->used; - - /* now divide in two */ - B = B >> 1; - - /* init copy all the temps */ - if (mp_init_size (&x0, B) != MP_OKAY) - goto ERR; - if (mp_init_size (&x1, a->used - B) != MP_OKAY) - goto X0; - - /* init temps */ - if (mp_init_size (&t1, a->used * 2) != MP_OKAY) - goto X1; - if (mp_init_size (&t2, a->used * 2) != MP_OKAY) - goto T1; - if (mp_init_size (&x0x0, B * 2) != MP_OKAY) - goto T2; - if (mp_init_size (&x1x1, (a->used - B) * 2) != MP_OKAY) - goto X0X0; - - { - register int x; - register mp_digit *dst, *src; - - src = a->dp; - - /* now shift the digits */ - dst = x0.dp; - for (x = 0; x < B; x++) { - *dst++ = *src++; - } - - dst = x1.dp; - for (x = B; x < a->used; x++) { - *dst++ = *src++; - } - } - - x0.used = B; - x1.used = a->used - B; - - mp_clamp (&x0); - - /* now calc the products x0*x0 and x1*x1 */ - if (mp_sqr (&x0, &x0x0) != MP_OKAY) - goto X1X1; /* x0x0 = x0*x0 */ - if (mp_sqr (&x1, &x1x1) != MP_OKAY) - goto X1X1; /* x1x1 = x1*x1 */ - - /* now calc (x1-x0)**2 */ - if (mp_sub (&x1, &x0, &t1) != MP_OKAY) - goto X1X1; /* t1 = x1 - x0 */ - if (mp_sqr (&t1, &t1) != MP_OKAY) - goto X1X1; /* t1 = (x1 - x0) * (x1 - x0) */ - - /* add x0y0 */ - if (s_mp_add (&x0x0, &x1x1, &t2) != MP_OKAY) - goto X1X1; /* t2 = x0x0 + x1x1 */ - if (mp_sub (&t2, &t1, &t1) != MP_OKAY) - goto X1X1; /* t1 = x0x0 + x1x1 - (x1-x0)*(x1-x0) */ - - /* shift by B */ - if (mp_lshd (&t1, B) != MP_OKAY) - goto X1X1; /* t1 = (x0x0 + x1x1 - (x1-x0)*(x1-x0))<<B */ - if (mp_lshd (&x1x1, B * 2) != MP_OKAY) - goto X1X1; /* x1x1 = x1x1 << 2*B */ - - if (mp_add (&x0x0, &t1, &t1) != MP_OKAY) - goto X1X1; /* t1 = x0x0 + t1 */ - if (mp_add (&t1, &x1x1, b) != MP_OKAY) - goto X1X1; /* t1 = x0x0 + t1 + x1x1 */ - - err = MP_OKAY; - -X1X1:mp_clear (&x1x1); -X0X0:mp_clear (&x0x0); -T2:mp_clear (&t2); -T1:mp_clear (&t1); -X1:mp_clear (&x1); -X0:mp_clear (&x0); -ERR: - return err; -} -#endif - -/* End: bn_mp_karatsuba_sqr.c */ - -/* Start: bn_mp_lcm.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_LCM_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes least common multiple as |a*b|/(a, b) */ -int mp_lcm (mp_int * a, mp_int * b, mp_int * c) -{ - int res; - mp_int t1, t2; - - - if ((res = mp_init_multi (&t1, &t2, NULL)) != MP_OKAY) { - return res; - } - - /* t1 = get the GCD of the two inputs */ - if ((res = mp_gcd (a, b, &t1)) != MP_OKAY) { - goto LBL_T; - } - - /* divide the smallest by the GCD */ - if (mp_cmp_mag(a, b) == MP_LT) { - /* store quotient in t2 such that t2 * b is the LCM */ - if ((res = mp_div(a, &t1, &t2, NULL)) != MP_OKAY) { - goto LBL_T; - } - res = mp_mul(b, &t2, c); - } else { - /* store quotient in t2 such that t2 * a is the LCM */ - if ((res = mp_div(b, &t1, &t2, NULL)) != MP_OKAY) { - goto LBL_T; - } - res = mp_mul(a, &t2, c); - } - - /* fix the sign to positive */ - c->sign = MP_ZPOS; - -LBL_T: - mp_clear_multi (&t1, &t2, NULL); - return res; -} -#endif - -/* End: bn_mp_lcm.c */ - -/* Start: bn_mp_lshd.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_LSHD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* shift left a certain amount of digits */ -int mp_lshd (mp_int * a, int b) -{ - int x, res; - - /* if its less than zero return */ - if (b <= 0) { - return MP_OKAY; - } - - /* grow to fit the new digits */ - if (a->alloc < a->used + b) { - if ((res = mp_grow (a, a->used + b)) != MP_OKAY) { - return res; - } - } - - { - register mp_digit *top, *bottom; - - /* increment the used by the shift amount then copy upwards */ - a->used += b; - - /* top */ - top = a->dp + a->used - 1; - - /* base */ - bottom = a->dp + a->used - 1 - b; - - /* much like mp_rshd this is implemented using a sliding window - * except the window goes the otherway around. Copying from - * the bottom to the top. see bn_mp_rshd.c for more info. - */ - for (x = a->used - 1; x >= b; x--) { - *top-- = *bottom--; - } - - /* zero the lower digits */ - top = a->dp; - for (x = 0; x < b; x++) { - *top++ = 0; - } - } - return MP_OKAY; -} -#endif - -/* End: bn_mp_lshd.c */ - -/* Start: bn_mp_mod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* c = a mod b, 0 <= c < b */ -int -mp_mod (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int t; - int res; - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - if ((res = mp_div (a, b, NULL, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - - if (t.sign != b->sign) { - res = mp_add (b, &t, c); - } else { - res = MP_OKAY; - mp_exch (&t, c); - } - - mp_clear (&t); - return res; -} -#endif - -/* End: bn_mp_mod.c */ - -/* Start: bn_mp_mod_2d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MOD_2D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* calc a value mod 2**b */ -int -mp_mod_2d (mp_int * a, int b, mp_int * c) -{ - int x, res; - - /* if b is <= 0 then zero the int */ - if (b <= 0) { - mp_zero (c); - return MP_OKAY; - } - - /* if the modulus is larger than the value than return */ - if (b >= (int) (a->used * DIGIT_BIT)) { - res = mp_copy (a, c); - return res; - } - - /* copy */ - if ((res = mp_copy (a, c)) != MP_OKAY) { - return res; - } - - /* zero digits above the last digit of the modulus */ - for (x = (b / DIGIT_BIT) + ((b % DIGIT_BIT) == 0 ? 0 : 1); x < c->used; x++) { - c->dp[x] = 0; - } - /* clear the digit that is not completely outside/inside the modulus */ - c->dp[b / DIGIT_BIT] &= - (mp_digit) ((((mp_digit) 1) << (((mp_digit) b) % DIGIT_BIT)) - ((mp_digit) 1)); - mp_clamp (c); - return MP_OKAY; -} -#endif - -/* End: bn_mp_mod_2d.c */ - -/* Start: bn_mp_mod_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MOD_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -int -mp_mod_d (mp_int * a, mp_digit b, mp_digit * c) -{ - return mp_div_d(a, b, NULL, c); -} -#endif - -/* End: bn_mp_mod_d.c */ - -/* Start: bn_mp_montgomery_calc_normalization.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MONTGOMERY_CALC_NORMALIZATION_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* - * shifts with subtractions when the result is greater than b. - * - * The method is slightly modified to shift B unconditionally upto just under - * the leading bit of b. This saves alot of multiple precision shifting. - */ -int mp_montgomery_calc_normalization (mp_int * a, mp_int * b) -{ - int x, bits, res; - - /* how many bits of last digit does b use */ - bits = mp_count_bits (b) % DIGIT_BIT; - - if (b->used > 1) { - if ((res = mp_2expt (a, (b->used - 1) * DIGIT_BIT + bits - 1)) != MP_OKAY) { - return res; - } - } else { - mp_set(a, 1); - bits = 1; - } - - - /* now compute C = A * B mod b */ - for (x = bits - 1; x < (int)DIGIT_BIT; x++) { - if ((res = mp_mul_2 (a, a)) != MP_OKAY) { - return res; - } - if (mp_cmp_mag (a, b) != MP_LT) { - if ((res = s_mp_sub (a, b, a)) != MP_OKAY) { - return res; - } - } - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_montgomery_calc_normalization.c */ - -/* Start: bn_mp_montgomery_reduce.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MONTGOMERY_REDUCE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes xR**-1 == x (mod N) via Montgomery Reduction */ -int -mp_montgomery_reduce (mp_int * x, mp_int * n, mp_digit rho) -{ - int ix, res, digs; - mp_digit mu; - - /* can the fast reduction [comba] method be used? - * - * Note that unlike in mul you're safely allowed *less* - * than the available columns [255 per default] since carries - * are fixed up in the inner loop. - */ - digs = n->used * 2 + 1; - if ((digs < MP_WARRAY) && - n->used < - (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { - return fast_mp_montgomery_reduce (x, n, rho); - } - - /* grow the input as required */ - if (x->alloc < digs) { - if ((res = mp_grow (x, digs)) != MP_OKAY) { - return res; - } - } - x->used = digs; - - for (ix = 0; ix < n->used; ix++) { - /* mu = ai * rho mod b - * - * The value of rho must be precalculated via - * montgomery_setup() such that - * it equals -1/n0 mod b this allows the - * following inner loop to reduce the - * input one digit at a time - */ - mu = (mp_digit) (((mp_word)x->dp[ix]) * ((mp_word)rho) & MP_MASK); - - /* a = a + mu * m * b**i */ - { - register int iy; - register mp_digit *tmpn, *tmpx, u; - register mp_word r; - - /* alias for digits of the modulus */ - tmpn = n->dp; - - /* alias for the digits of x [the input] */ - tmpx = x->dp + ix; - - /* set the carry to zero */ - u = 0; - - /* Multiply and add in place */ - for (iy = 0; iy < n->used; iy++) { - /* compute product and sum */ - r = ((mp_word)mu) * ((mp_word)*tmpn++) + - ((mp_word) u) + ((mp_word) * tmpx); - - /* get carry */ - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); - - /* fix digit */ - *tmpx++ = (mp_digit)(r & ((mp_word) MP_MASK)); - } - /* At this point the ix'th digit of x should be zero */ - - - /* propagate carries upwards as required*/ - while (u) { - *tmpx += u; - u = *tmpx >> DIGIT_BIT; - *tmpx++ &= MP_MASK; - } - } - } - - /* at this point the n.used'th least - * significant digits of x are all zero - * which means we can shift x to the - * right by n.used digits and the - * residue is unchanged. - */ - - /* x = x/b**n.used */ - mp_clamp(x); - mp_rshd (x, n->used); - - /* if x >= n then x = x - n */ - if (mp_cmp_mag (x, n) != MP_LT) { - return s_mp_sub (x, n, x); - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_montgomery_reduce.c */ - -/* Start: bn_mp_montgomery_setup.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MONTGOMERY_SETUP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* setups the montgomery reduction stuff */ -int -mp_montgomery_setup (mp_int * n, mp_digit * rho) -{ - mp_digit x, b; - -/* fast inversion mod 2**k - * - * Based on the fact that - * - * XA = 1 (mod 2**n) => (X(2-XA)) A = 1 (mod 2**2n) - * => 2*X*A - X*X*A*A = 1 - * => 2*(1) - (1) = 1 - */ - b = n->dp[0]; - - if ((b & 1) == 0) { - return MP_VAL; - } - - x = (((b + 2) & 4) << 1) + b; /* here x*a==1 mod 2**4 */ - x *= 2 - b * x; /* here x*a==1 mod 2**8 */ -#if !defined(MP_8BIT) - x *= 2 - b * x; /* here x*a==1 mod 2**16 */ -#endif -#if defined(MP_64BIT) || !(defined(MP_8BIT) || defined(MP_16BIT)) - x *= 2 - b * x; /* here x*a==1 mod 2**32 */ -#endif -#ifdef MP_64BIT - x *= 2 - b * x; /* here x*a==1 mod 2**64 */ -#endif - - /* rho = -1/m mod b */ - *rho = (((mp_word)1 << ((mp_word) DIGIT_BIT)) - x) & MP_MASK; - - return MP_OKAY; -} -#endif - -/* End: bn_mp_montgomery_setup.c */ - -/* Start: bn_mp_mul.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MUL_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* high level multiplication (handles sign) */ -int mp_mul (mp_int * a, mp_int * b, mp_int * c) -{ - int res, neg; - neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; - - /* use Toom-Cook? */ -#ifdef BN_MP_TOOM_MUL_C - if (MIN (a->used, b->used) >= TOOM_MUL_CUTOFF) { - res = mp_toom_mul(a, b, c); - } else -#endif -#ifdef BN_MP_KARATSUBA_MUL_C - /* use Karatsuba? */ - if (MIN (a->used, b->used) >= KARATSUBA_MUL_CUTOFF) { - res = mp_karatsuba_mul (a, b, c); - } else -#endif - { - /* can we use the fast multiplier? - * - * The fast multiplier can be used if the output will - * have less than MP_WARRAY digits and the number of - * digits won't affect carry propagation - */ - int digs = a->used + b->used + 1; - -#ifdef BN_FAST_S_MP_MUL_DIGS_C - if ((digs < MP_WARRAY) && - MIN(a->used, b->used) <= - (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { - res = fast_s_mp_mul_digs (a, b, c, digs); - } else -#endif -#ifdef BN_S_MP_MUL_DIGS_C - res = s_mp_mul (a, b, c); /* uses s_mp_mul_digs */ -#else - res = MP_VAL; -#endif - - } - c->sign = (c->used > 0) ? neg : MP_ZPOS; - return res; -} -#endif - -/* End: bn_mp_mul.c */ - -/* Start: bn_mp_mul_2.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MUL_2_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* b = a*2 */ -int mp_mul_2(mp_int * a, mp_int * b) -{ - int x, res, oldused; - - /* grow to accomodate result */ - if (b->alloc < a->used + 1) { - if ((res = mp_grow (b, a->used + 1)) != MP_OKAY) { - return res; - } - } - - oldused = b->used; - b->used = a->used; - - { - register mp_digit r, rr, *tmpa, *tmpb; - - /* alias for source */ - tmpa = a->dp; - - /* alias for dest */ - tmpb = b->dp; - - /* carry */ - r = 0; - for (x = 0; x < a->used; x++) { - - /* get what will be the *next* carry bit from the - * MSB of the current digit - */ - rr = *tmpa >> ((mp_digit)(DIGIT_BIT - 1)); - - /* now shift up this digit, add in the carry [from the previous] */ - *tmpb++ = ((*tmpa++ << ((mp_digit)1)) | r) & MP_MASK; - - /* copy the carry that would be from the source - * digit into the next iteration - */ - r = rr; - } - - /* new leading digit? */ - if (r != 0) { - /* add a MSB which is always 1 at this point */ - *tmpb = 1; - ++(b->used); - } - - /* now zero any excess digits on the destination - * that we didn't write to - */ - tmpb = b->dp + b->used; - for (x = b->used; x < oldused; x++) { - *tmpb++ = 0; - } - } - b->sign = a->sign; - return MP_OKAY; -} -#endif - -/* End: bn_mp_mul_2.c */ - -/* Start: bn_mp_mul_2d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MUL_2D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* shift left by a certain bit count */ -int mp_mul_2d (mp_int * a, int b, mp_int * c) -{ - mp_digit d; - int res; - - /* copy */ - if (a != c) { - if ((res = mp_copy (a, c)) != MP_OKAY) { - return res; - } - } - - if (c->alloc < (int)(c->used + b/DIGIT_BIT + 1)) { - if ((res = mp_grow (c, c->used + b / DIGIT_BIT + 1)) != MP_OKAY) { - return res; - } - } - - /* shift by as many digits in the bit count */ - if (b >= (int)DIGIT_BIT) { - if ((res = mp_lshd (c, b / DIGIT_BIT)) != MP_OKAY) { - return res; - } - } - - /* shift any bit count < DIGIT_BIT */ - d = (mp_digit) (b % DIGIT_BIT); - if (d != 0) { - register mp_digit *tmpc, shift, mask, r, rr; - register int x; - - /* bitmask for carries */ - mask = (((mp_digit)1) << d) - 1; - - /* shift for msbs */ - shift = DIGIT_BIT - d; - - /* alias */ - tmpc = c->dp; - - /* carry */ - r = 0; - for (x = 0; x < c->used; x++) { - /* get the higher bits of the current word */ - rr = (*tmpc >> shift) & mask; - - /* shift the current word and OR in the carry */ - *tmpc = ((*tmpc << d) | r) & MP_MASK; - ++tmpc; - - /* set the carry to the carry bits of the current word */ - r = rr; - } - - /* set final carry */ - if (r != 0) { - c->dp[(c->used)++] = r; - } - } - mp_clamp (c); - return MP_OKAY; -} -#endif - -/* End: bn_mp_mul_2d.c */ - -/* Start: bn_mp_mul_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MUL_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* multiply by a digit */ -int -mp_mul_d (mp_int * a, mp_digit b, mp_int * c) -{ - mp_digit u, *tmpa, *tmpc; - mp_word r; - int ix, res, olduse; - - /* make sure c is big enough to hold a*b */ - if (c->alloc < a->used + 1) { - if ((res = mp_grow (c, a->used + 1)) != MP_OKAY) { - return res; - } - } - - /* get the original destinations used count */ - olduse = c->used; - - /* set the sign */ - c->sign = a->sign; - - /* alias for a->dp [source] */ - tmpa = a->dp; - - /* alias for c->dp [dest] */ - tmpc = c->dp; - - /* zero carry */ - u = 0; - - /* compute columns */ - for (ix = 0; ix < a->used; ix++) { - /* compute product and carry sum for this term */ - r = ((mp_word) u) + ((mp_word)*tmpa++) * ((mp_word)b); - - /* mask off higher bits to get a single digit */ - *tmpc++ = (mp_digit) (r & ((mp_word) MP_MASK)); - - /* send carry into next iteration */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - - /* store final carry [if any] and increment ix offset */ - *tmpc++ = u; - ++ix; - - /* now zero digits above the top */ - while (ix++ < olduse) { - *tmpc++ = 0; - } - - /* set used count */ - c->used = a->used + 1; - mp_clamp(c); - - return MP_OKAY; -} -#endif - -/* End: bn_mp_mul_d.c */ - -/* Start: bn_mp_mulmod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_MULMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* d = a * b (mod c) */ -int -mp_mulmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) -{ - int res; - mp_int t; - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - if ((res = mp_mul (a, b, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - res = mp_mod (&t, c, d); - mp_clear (&t); - return res; -} -#endif - -/* End: bn_mp_mulmod.c */ - -/* Start: bn_mp_n_root.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_N_ROOT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* find the n'th root of an integer - * - * Result found such that (c)**b <= a and (c+1)**b > a - * - * This algorithm uses Newton's approximation - * x[i+1] = x[i] - f(x[i])/f'(x[i]) - * which will find the root in log(N) time where - * each step involves a fair bit. This is not meant to - * find huge roots [square and cube, etc]. - */ -int mp_n_root (mp_int * a, mp_digit b, mp_int * c) -{ - mp_int t1, t2, t3; - int res, neg; - - /* input must be positive if b is even */ - if ((b & 1) == 0 && a->sign == MP_NEG) { - return MP_VAL; - } - - if ((res = mp_init (&t1)) != MP_OKAY) { - return res; - } - - if ((res = mp_init (&t2)) != MP_OKAY) { - goto LBL_T1; - } - - if ((res = mp_init (&t3)) != MP_OKAY) { - goto LBL_T2; - } - - /* if a is negative fudge the sign but keep track */ - neg = a->sign; - a->sign = MP_ZPOS; - - /* t2 = 2 */ - mp_set (&t2, 2); - - do { - /* t1 = t2 */ - if ((res = mp_copy (&t2, &t1)) != MP_OKAY) { - goto LBL_T3; - } - - /* t2 = t1 - ((t1**b - a) / (b * t1**(b-1))) */ - - /* t3 = t1**(b-1) */ - if ((res = mp_expt_d (&t1, b - 1, &t3)) != MP_OKAY) { - goto LBL_T3; - } - - /* numerator */ - /* t2 = t1**b */ - if ((res = mp_mul (&t3, &t1, &t2)) != MP_OKAY) { - goto LBL_T3; - } - - /* t2 = t1**b - a */ - if ((res = mp_sub (&t2, a, &t2)) != MP_OKAY) { - goto LBL_T3; - } - - /* denominator */ - /* t3 = t1**(b-1) * b */ - if ((res = mp_mul_d (&t3, b, &t3)) != MP_OKAY) { - goto LBL_T3; - } - - /* t3 = (t1**b - a)/(b * t1**(b-1)) */ - if ((res = mp_div (&t2, &t3, &t3, NULL)) != MP_OKAY) { - goto LBL_T3; - } - - if ((res = mp_sub (&t1, &t3, &t2)) != MP_OKAY) { - goto LBL_T3; - } - } while (mp_cmp (&t1, &t2) != MP_EQ); - - /* result can be off by a few so check */ - for (;;) { - if ((res = mp_expt_d (&t1, b, &t2)) != MP_OKAY) { - goto LBL_T3; - } - - if (mp_cmp (&t2, a) == MP_GT) { - if ((res = mp_sub_d (&t1, 1, &t1)) != MP_OKAY) { - goto LBL_T3; - } - } else { - break; - } - } - - /* reset the sign of a first */ - a->sign = neg; - - /* set the result */ - mp_exch (&t1, c); - - /* set the sign of the result */ - c->sign = neg; - - res = MP_OKAY; - -LBL_T3:mp_clear (&t3); -LBL_T2:mp_clear (&t2); -LBL_T1:mp_clear (&t1); - return res; -} -#endif - -/* End: bn_mp_n_root.c */ - -/* Start: bn_mp_neg.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_NEG_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* b = -a */ -int mp_neg (mp_int * a, mp_int * b) -{ - int res; - if (a != b) { - if ((res = mp_copy (a, b)) != MP_OKAY) { - return res; - } - } - - if (mp_iszero(b) != MP_YES) { - b->sign = (a->sign == MP_ZPOS) ? MP_NEG : MP_ZPOS; - } else { - b->sign = MP_ZPOS; - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_neg.c */ - -/* Start: bn_mp_or.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_OR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* OR two ints together */ -int mp_or (mp_int * a, mp_int * b, mp_int * c) -{ - int res, ix, px; - mp_int t, *x; - - if (a->used > b->used) { - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - px = b->used; - x = b; - } else { - if ((res = mp_init_copy (&t, b)) != MP_OKAY) { - return res; - } - px = a->used; - x = a; - } - - for (ix = 0; ix < px; ix++) { - t.dp[ix] |= x->dp[ix]; - } - mp_clamp (&t); - mp_exch (c, &t); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_mp_or.c */ - -/* Start: bn_mp_prime_fermat.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_FERMAT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* performs one Fermat test. - * - * If "a" were prime then b**a == b (mod a) since the order of - * the multiplicative sub-group would be phi(a) = a-1. That means - * it would be the same as b**(a mod (a-1)) == b**1 == b (mod a). - * - * Sets result to 1 if the congruence holds, or zero otherwise. - */ -int mp_prime_fermat (mp_int * a, mp_int * b, int *result) -{ - mp_int t; - int err; - - /* default to composite */ - *result = MP_NO; - - /* ensure b > 1 */ - if (mp_cmp_d(b, 1) != MP_GT) { - return MP_VAL; - } - - /* init t */ - if ((err = mp_init (&t)) != MP_OKAY) { - return err; - } - - /* compute t = b**a mod a */ - if ((err = mp_exptmod (b, a, a, &t)) != MP_OKAY) { - goto LBL_T; - } - - /* is it equal to b? */ - if (mp_cmp (&t, b) == MP_EQ) { - *result = MP_YES; - } - - err = MP_OKAY; -LBL_T:mp_clear (&t); - return err; -} -#endif - -/* End: bn_mp_prime_fermat.c */ - -/* Start: bn_mp_prime_is_divisible.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_IS_DIVISIBLE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines if an integers is divisible by one - * of the first PRIME_SIZE primes or not - * - * sets result to 0 if not, 1 if yes - */ -int mp_prime_is_divisible (mp_int * a, int *result) -{ - int err, ix; - mp_digit res; - - /* default to not */ - *result = MP_NO; - - for (ix = 0; ix < PRIME_SIZE; ix++) { - /* what is a mod LBL_prime_tab[ix] */ - if ((err = mp_mod_d (a, ltm_prime_tab[ix], &res)) != MP_OKAY) { - return err; - } - - /* is the residue zero? */ - if (res == 0) { - *result = MP_YES; - return MP_OKAY; - } - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_prime_is_divisible.c */ - -/* Start: bn_mp_prime_is_prime.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_IS_PRIME_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* performs a variable number of rounds of Miller-Rabin - * - * Probability of error after t rounds is no more than - - * - * Sets result to 1 if probably prime, 0 otherwise - */ -int mp_prime_is_prime (mp_int * a, int t, int *result) -{ - mp_int b; - int ix, err, res; - - /* default to no */ - *result = MP_NO; - - /* valid value of t? */ - if (t <= 0 || t > PRIME_SIZE) { - return MP_VAL; - } - - /* is the input equal to one of the primes in the table? */ - for (ix = 0; ix < PRIME_SIZE; ix++) { - if (mp_cmp_d(a, ltm_prime_tab[ix]) == MP_EQ) { - *result = 1; - return MP_OKAY; - } - } - - /* first perform trial division */ - if ((err = mp_prime_is_divisible (a, &res)) != MP_OKAY) { - return err; - } - - /* return if it was trivially divisible */ - if (res == MP_YES) { - return MP_OKAY; - } - - /* now perform the miller-rabin rounds */ - if ((err = mp_init (&b)) != MP_OKAY) { - return err; - } - - for (ix = 0; ix < t; ix++) { - /* set the prime */ - mp_set (&b, ltm_prime_tab[ix]); - - if ((err = mp_prime_miller_rabin (a, &b, &res)) != MP_OKAY) { - goto LBL_B; - } - - if (res == MP_NO) { - goto LBL_B; - } - } - - /* passed the test */ - *result = MP_YES; -LBL_B:mp_clear (&b); - return err; -} -#endif - -/* End: bn_mp_prime_is_prime.c */ - -/* Start: bn_mp_prime_miller_rabin.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_MILLER_RABIN_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Miller-Rabin test of "a" to the base of "b" as described in - * HAC pp. 139 Algorithm 4.24 - * - * Sets result to 0 if definitely composite or 1 if probably prime. - * Randomly the chance of error is no more than 1/4 and often - * very much lower. - */ -int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result) -{ - mp_int n1, y, r; - int s, j, err; - - /* default */ - *result = MP_NO; - - /* ensure b > 1 */ - if (mp_cmp_d(b, 1) != MP_GT) { - return MP_VAL; - } - - /* get n1 = a - 1 */ - if ((err = mp_init_copy (&n1, a)) != MP_OKAY) { - return err; - } - if ((err = mp_sub_d (&n1, 1, &n1)) != MP_OKAY) { - goto LBL_N1; - } - - /* set 2**s * r = n1 */ - if ((err = mp_init_copy (&r, &n1)) != MP_OKAY) { - goto LBL_N1; - } - - /* count the number of least significant bits - * which are zero - */ - s = mp_cnt_lsb(&r); - - /* now divide n - 1 by 2**s */ - if ((err = mp_div_2d (&r, s, &r, NULL)) != MP_OKAY) { - goto LBL_R; - } - - /* compute y = b**r mod a */ - if ((err = mp_init (&y)) != MP_OKAY) { - goto LBL_R; - } - if ((err = mp_exptmod (b, &r, a, &y)) != MP_OKAY) { - goto LBL_Y; - } - - /* if y != 1 and y != n1 do */ - if (mp_cmp_d (&y, 1) != MP_EQ && mp_cmp (&y, &n1) != MP_EQ) { - j = 1; - /* while j <= s-1 and y != n1 */ - while ((j <= (s - 1)) && mp_cmp (&y, &n1) != MP_EQ) { - if ((err = mp_sqrmod (&y, a, &y)) != MP_OKAY) { - goto LBL_Y; - } - - /* if y == 1 then composite */ - if (mp_cmp_d (&y, 1) == MP_EQ) { - goto LBL_Y; - } - - ++j; - } - - /* if y != n1 then composite */ - if (mp_cmp (&y, &n1) != MP_EQ) { - goto LBL_Y; - } - } - - /* probably prime now */ - *result = MP_YES; -LBL_Y:mp_clear (&y); -LBL_R:mp_clear (&r); -LBL_N1:mp_clear (&n1); - return err; -} -#endif - -/* End: bn_mp_prime_miller_rabin.c */ - -/* Start: bn_mp_prime_next_prime.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_NEXT_PRIME_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* finds the next prime after the number "a" using "t" trials - * of Miller-Rabin. - * - * bbs_style = 1 means the prime must be congruent to 3 mod 4 - */ -int mp_prime_next_prime(mp_int *a, int t, int bbs_style) -{ - int err, res, x, y; - mp_digit res_tab[PRIME_SIZE], step, kstep; - mp_int b; - - /* ensure t is valid */ - if (t <= 0 || t > PRIME_SIZE) { - return MP_VAL; - } - - /* force positive */ - a->sign = MP_ZPOS; - - /* simple algo if a is less than the largest prime in the table */ - if (mp_cmp_d(a, ltm_prime_tab[PRIME_SIZE-1]) == MP_LT) { - /* find which prime it is bigger than */ - for (x = PRIME_SIZE - 2; x >= 0; x--) { - if (mp_cmp_d(a, ltm_prime_tab[x]) != MP_LT) { - if (bbs_style == 1) { - /* ok we found a prime smaller or - * equal [so the next is larger] - * - * however, the prime must be - * congruent to 3 mod 4 - */ - if ((ltm_prime_tab[x + 1] & 3) != 3) { - /* scan upwards for a prime congruent to 3 mod 4 */ - for (y = x + 1; y < PRIME_SIZE; y++) { - if ((ltm_prime_tab[y] & 3) == 3) { - mp_set(a, ltm_prime_tab[y]); - return MP_OKAY; - } - } - } - } else { - mp_set(a, ltm_prime_tab[x + 1]); - return MP_OKAY; - } - } - } - /* at this point a maybe 1 */ - if (mp_cmp_d(a, 1) == MP_EQ) { - mp_set(a, 2); - return MP_OKAY; - } - /* fall through to the sieve */ - } - - /* generate a prime congruent to 3 mod 4 or 1/3 mod 4? */ - if (bbs_style == 1) { - kstep = 4; - } else { - kstep = 2; - } - - /* at this point we will use a combination of a sieve and Miller-Rabin */ - - if (bbs_style == 1) { - /* if a mod 4 != 3 subtract the correct value to make it so */ - if ((a->dp[0] & 3) != 3) { - if ((err = mp_sub_d(a, (a->dp[0] & 3) + 1, a)) != MP_OKAY) { return err; }; - } - } else { - if (mp_iseven(a) == 1) { - /* force odd */ - if ((err = mp_sub_d(a, 1, a)) != MP_OKAY) { - return err; - } - } - } - - /* generate the restable */ - for (x = 1; x < PRIME_SIZE; x++) { - if ((err = mp_mod_d(a, ltm_prime_tab[x], res_tab + x)) != MP_OKAY) { - return err; - } - } - - /* init temp used for Miller-Rabin Testing */ - if ((err = mp_init(&b)) != MP_OKAY) { - return err; - } - - for (;;) { - /* skip to the next non-trivially divisible candidate */ - step = 0; - do { - /* y == 1 if any residue was zero [e.g. cannot be prime] */ - y = 0; - - /* increase step to next candidate */ - step += kstep; - - /* compute the new residue without using division */ - for (x = 1; x < PRIME_SIZE; x++) { - /* add the step to each residue */ - res_tab[x] += kstep; - - /* subtract the modulus [instead of using division] */ - if (res_tab[x] >= ltm_prime_tab[x]) { - res_tab[x] -= ltm_prime_tab[x]; - } - - /* set flag if zero */ - if (res_tab[x] == 0) { - y = 1; - } - } - } while (y == 1 && step < ((((mp_digit)1)<<DIGIT_BIT) - kstep)); - - /* add the step */ - if ((err = mp_add_d(a, step, a)) != MP_OKAY) { - goto LBL_ERR; - } - - /* if didn't pass sieve and step == MAX then skip test */ - if (y == 1 && step >= ((((mp_digit)1)<<DIGIT_BIT) - kstep)) { - continue; - } - - /* is this prime? */ - for (x = 0; x < t; x++) { - mp_set(&b, ltm_prime_tab[t]); - if ((err = mp_prime_miller_rabin(a, &b, &res)) != MP_OKAY) { - goto LBL_ERR; - } - if (res == MP_NO) { - break; - } - } - - if (res == MP_YES) { - break; - } - } - - err = MP_OKAY; -LBL_ERR: - mp_clear(&b); - return err; -} - -#endif - -/* End: bn_mp_prime_next_prime.c */ - -/* Start: bn_mp_prime_rabin_miller_trials.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_RABIN_MILLER_TRIALS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - - -static const struct { - int k, t; -} sizes[] = { -{ 128, 28 }, -{ 256, 16 }, -{ 384, 10 }, -{ 512, 7 }, -{ 640, 6 }, -{ 768, 5 }, -{ 896, 4 }, -{ 1024, 4 } -}; - -/* returns # of RM trials required for a given bit size */ -int mp_prime_rabin_miller_trials(int size) -{ - int x; - - for (x = 0; x < (int)(sizeof(sizes)/(sizeof(sizes[0]))); x++) { - if (sizes[x].k == size) { - return sizes[x].t; - } else if (sizes[x].k > size) { - return (x == 0) ? sizes[0].t : sizes[x - 1].t; - } - } - return sizes[x-1].t + 1; -} - - -#endif - -/* End: bn_mp_prime_rabin_miller_trials.c */ - -/* Start: bn_mp_prime_random_ex.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_PRIME_RANDOM_EX_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* makes a truly random prime of a given size (bits), - * - * Flags are as follows: - * - * LTM_PRIME_BBS - make prime congruent to 3 mod 4 - * LTM_PRIME_SAFE - make sure (p-1)/2 is prime as well (implies LTM_PRIME_BBS) - * LTM_PRIME_2MSB_OFF - make the 2nd highest bit zero - * LTM_PRIME_2MSB_ON - make the 2nd highest bit one - * - * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can - * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself - * so it can be NULL - * - */ - -/* This is possibly the mother of all prime generation functions, muahahahahaha! */ -int mp_prime_random_ex(mp_int *a, int t, int size, int flags, ltm_prime_callback cb, void *dat) -{ - unsigned char *tmp, maskAND, maskOR_msb, maskOR_lsb; - int res, err, bsize, maskOR_msb_offset; - - /* sanity check the input */ - if (size <= 1 || t <= 0) { - return MP_VAL; - } - - /* LTM_PRIME_SAFE implies LTM_PRIME_BBS */ - if (flags & LTM_PRIME_SAFE) { - flags |= LTM_PRIME_BBS; - } - - /* calc the byte size */ - bsize = (size>>3) + ((size&7)?1:0); - - /* we need a buffer of bsize bytes */ - tmp = OPT_CAST(unsigned char) XMALLOC(bsize); - if (tmp == NULL) { - return MP_MEM; - } - - /* calc the maskAND value for the MSbyte*/ - maskAND = ((size&7) == 0) ? 0xFF : (0xFF >> (8 - (size & 7))); - - /* calc the maskOR_msb */ - maskOR_msb = 0; - maskOR_msb_offset = ((size & 7) == 1) ? 1 : 0; - if (flags & LTM_PRIME_2MSB_ON) { - maskOR_msb |= 0x80 >> ((9 - size) & 7); - } - - /* get the maskOR_lsb */ - maskOR_lsb = 1; - if (flags & LTM_PRIME_BBS) { - maskOR_lsb |= 3; - } - - do { - /* read the bytes */ - if (cb(tmp, bsize, dat) != bsize) { - err = MP_VAL; - goto error; - } - - /* work over the MSbyte */ - tmp[0] &= maskAND; - tmp[0] |= 1 << ((size - 1) & 7); - - /* mix in the maskORs */ - tmp[maskOR_msb_offset] |= maskOR_msb; - tmp[bsize-1] |= maskOR_lsb; - - /* read it in */ - if ((err = mp_read_unsigned_bin(a, tmp, bsize)) != MP_OKAY) { goto error; } - - /* is it prime? */ - if ((err = mp_prime_is_prime(a, t, &res)) != MP_OKAY) { goto error; } - if (res == MP_NO) { - continue; - } - - if (flags & LTM_PRIME_SAFE) { - /* see if (a-1)/2 is prime */ - if ((err = mp_sub_d(a, 1, a)) != MP_OKAY) { goto error; } - if ((err = mp_div_2(a, a)) != MP_OKAY) { goto error; } - - /* is it prime? */ - if ((err = mp_prime_is_prime(a, t, &res)) != MP_OKAY) { goto error; } - } - } while (res == MP_NO); - - if (flags & LTM_PRIME_SAFE) { - /* restore a to the original value */ - if ((err = mp_mul_2(a, a)) != MP_OKAY) { goto error; } - if ((err = mp_add_d(a, 1, a)) != MP_OKAY) { goto error; } - } - - err = MP_OKAY; -error: - XFREE(tmp); - return err; -} - - -#endif - -/* End: bn_mp_prime_random_ex.c */ - -/* Start: bn_mp_radix_size.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_RADIX_SIZE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* returns size of ASCII reprensentation */ -int mp_radix_size (mp_int * a, int radix, int *size) -{ - int res, digs; - mp_int t; - mp_digit d; - - *size = 0; - - /* special case for binary */ - if (radix == 2) { - *size = mp_count_bits (a) + (a->sign == MP_NEG ? 1 : 0) + 1; - return MP_OKAY; - } - - /* make sure the radix is in range */ - if (radix < 2 || radix > 64) { - return MP_VAL; - } - - if (mp_iszero(a) == MP_YES) { - *size = 2; - return MP_OKAY; - } - - /* digs is the digit count */ - digs = 0; - - /* if it's negative add one for the sign */ - if (a->sign == MP_NEG) { - ++digs; - } - - /* init a copy of the input */ - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - - /* force temp to positive */ - t.sign = MP_ZPOS; - - /* fetch out all of the digits */ - while (mp_iszero (&t) == MP_NO) { - if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) { - mp_clear (&t); - return res; - } - ++digs; - } - mp_clear (&t); - - /* return digs + 1, the 1 is for the NULL byte that would be required. */ - *size = digs + 1; - return MP_OKAY; -} - -#endif - -/* End: bn_mp_radix_size.c */ - -/* Start: bn_mp_radix_smap.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_RADIX_SMAP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* chars used in radix conversions */ -const char *mp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"; -#endif - -/* End: bn_mp_radix_smap.c */ - -/* Start: bn_mp_rand.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_RAND_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* makes a pseudo-random int of a given size */ -int -mp_rand (mp_int * a, int digits) -{ - int res; - mp_digit d; - - mp_zero (a); - if (digits <= 0) { - return MP_OKAY; - } - - /* first place a random non-zero digit */ - do { - d = ((mp_digit) abs (rand ())) & MP_MASK; - } while (d == 0); - - if ((res = mp_add_d (a, d, a)) != MP_OKAY) { - return res; - } - - while (--digits > 0) { - if ((res = mp_lshd (a, 1)) != MP_OKAY) { - return res; - } - - if ((res = mp_add_d (a, ((mp_digit) abs (rand ())), a)) != MP_OKAY) { - return res; - } - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_rand.c */ - -/* Start: bn_mp_read_radix.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_READ_RADIX_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* read a string [ASCII] in a given radix */ -int mp_read_radix (mp_int * a, const char *str, int radix) -{ - int y, res, neg; - char ch; - - /* make sure the radix is ok */ - if (radix < 2 || radix > 64) { - return MP_VAL; - } - - /* if the leading digit is a - * minus set the sign to negative. - */ - if (*str == '-') { - ++str; - neg = MP_NEG; - } else { - neg = MP_ZPOS; - } - - /* set the integer to the default of zero */ - mp_zero (a); - - /* process each digit of the string */ - while (*str) { - /* if the radix < 36 the conversion is case insensitive - * this allows numbers like 1AB and 1ab to represent the same value - * [e.g. in hex] - */ - ch = (char) ((radix < 36) ? toupper (*str) : *str); - for (y = 0; y < 64; y++) { - if (ch == mp_s_rmap[y]) { - break; - } - } - - /* if the char was found in the map - * and is less than the given radix add it - * to the number, otherwise exit the loop. - */ - if (y < radix) { - if ((res = mp_mul_d (a, (mp_digit) radix, a)) != MP_OKAY) { - return res; - } - if ((res = mp_add_d (a, (mp_digit) y, a)) != MP_OKAY) { - return res; - } - } else { - break; - } - ++str; - } - - /* set the sign only if a != 0 */ - if (mp_iszero(a) != 1) { - a->sign = neg; - } - return MP_OKAY; -} -#endif - -/* End: bn_mp_read_radix.c */ - -/* Start: bn_mp_read_signed_bin.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_READ_SIGNED_BIN_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* read signed bin, big endian, first byte is 0==positive or 1==negative */ -int mp_read_signed_bin (mp_int * a, const unsigned char *b, int c) -{ - int res; - - /* read magnitude */ - if ((res = mp_read_unsigned_bin (a, b + 1, c - 1)) != MP_OKAY) { - return res; - } - - /* first byte is 0 for positive, non-zero for negative */ - if (b[0] == 0) { - a->sign = MP_ZPOS; - } else { - a->sign = MP_NEG; - } - - return MP_OKAY; -} -#endif - -/* End: bn_mp_read_signed_bin.c */ - -/* Start: bn_mp_read_unsigned_bin.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_READ_UNSIGNED_BIN_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reads a unsigned char array, assumes the msb is stored first [big endian] */ -int mp_read_unsigned_bin (mp_int * a, const unsigned char *b, int c) -{ - int res; - - /* make sure there are at least two digits */ - if (a->alloc < 2) { - if ((res = mp_grow(a, 2)) != MP_OKAY) { - return res; - } - } - - /* zero the int */ - mp_zero (a); - - /* read the bytes in */ - while (c-- > 0) { - if ((res = mp_mul_2d (a, 8, a)) != MP_OKAY) { - return res; - } - -#ifndef MP_8BIT - a->dp[0] |= *b++; - a->used += 1; -#else - a->dp[0] = (*b & MP_MASK); - a->dp[1] |= ((*b++ >> 7U) & 1); - a->used += 2; -#endif - } - mp_clamp (a); - return MP_OKAY; -} -#endif - -/* End: bn_mp_read_unsigned_bin.c */ - -/* Start: bn_mp_reduce.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reduces x mod m, assumes 0 < x < m**2, mu is - * precomputed via mp_reduce_setup. - * From HAC pp.604 Algorithm 14.42 - */ -int mp_reduce (mp_int * x, mp_int * m, mp_int * mu) -{ - mp_int q; - int res, um = m->used; - - /* q = x */ - if ((res = mp_init_copy (&q, x)) != MP_OKAY) { - return res; - } - - /* q1 = x / b**(k-1) */ - mp_rshd (&q, um - 1); - - /* according to HAC this optimization is ok */ - if (((unsigned long) um) > (((mp_digit)1) << (DIGIT_BIT - 1))) { - if ((res = mp_mul (&q, mu, &q)) != MP_OKAY) { - goto CLEANUP; - } - } else { -#ifdef BN_S_MP_MUL_HIGH_DIGS_C - if ((res = s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { - goto CLEANUP; - } -#elif defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C) - if ((res = fast_s_mp_mul_high_digs (&q, mu, &q, um)) != MP_OKAY) { - goto CLEANUP; - } -#else - { - res = MP_VAL; - goto CLEANUP; - } -#endif - } - - /* q3 = q2 / b**(k+1) */ - mp_rshd (&q, um + 1); - - /* x = x mod b**(k+1), quick (no division) */ - if ((res = mp_mod_2d (x, DIGIT_BIT * (um + 1), x)) != MP_OKAY) { - goto CLEANUP; - } - - /* q = q * m mod b**(k+1), quick (no division) */ - if ((res = s_mp_mul_digs (&q, m, &q, um + 1)) != MP_OKAY) { - goto CLEANUP; - } - - /* x = x - q */ - if ((res = mp_sub (x, &q, x)) != MP_OKAY) { - goto CLEANUP; - } - - /* If x < 0, add b**(k+1) to it */ - if (mp_cmp_d (x, 0) == MP_LT) { - mp_set (&q, 1); - if ((res = mp_lshd (&q, um + 1)) != MP_OKAY) - goto CLEANUP; - if ((res = mp_add (x, &q, x)) != MP_OKAY) - goto CLEANUP; - } - - /* Back off if it's too big */ - while (mp_cmp (x, m) != MP_LT) { - if ((res = s_mp_sub (x, m, x)) != MP_OKAY) { - goto CLEANUP; - } - } - -CLEANUP: - mp_clear (&q); - - return res; -} -#endif - -/* End: bn_mp_reduce.c */ - -/* Start: bn_mp_reduce_2k.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_2K_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reduces a modulo n where n is of the form 2**p - d */ -int mp_reduce_2k(mp_int *a, mp_int *n, mp_digit d) -{ - mp_int q; - int p, res; - - if ((res = mp_init(&q)) != MP_OKAY) { - return res; - } - - p = mp_count_bits(n); -top: - /* q = a/2**p, a = a mod 2**p */ - if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { - goto ERR; - } - - if (d != 1) { - /* q = q * d */ - if ((res = mp_mul_d(&q, d, &q)) != MP_OKAY) { - goto ERR; - } - } - - /* a = a + q */ - if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { - goto ERR; - } - - if (mp_cmp_mag(a, n) != MP_LT) { - s_mp_sub(a, n, a); - goto top; - } - -ERR: - mp_clear(&q); - return res; -} - -#endif - -/* End: bn_mp_reduce_2k.c */ - -/* Start: bn_mp_reduce_2k_l.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_2K_L_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reduces a modulo n where n is of the form 2**p - d - This differs from reduce_2k since "d" can be larger - than a single digit. -*/ -int mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d) -{ - mp_int q; - int p, res; - - if ((res = mp_init(&q)) != MP_OKAY) { - return res; - } - - p = mp_count_bits(n); -top: - /* q = a/2**p, a = a mod 2**p */ - if ((res = mp_div_2d(a, p, &q, a)) != MP_OKAY) { - goto ERR; - } - - /* q = q * d */ - if ((res = mp_mul(&q, d, &q)) != MP_OKAY) { - goto ERR; - } - - /* a = a + q */ - if ((res = s_mp_add(a, &q, a)) != MP_OKAY) { - goto ERR; - } - - if (mp_cmp_mag(a, n) != MP_LT) { - s_mp_sub(a, n, a); - goto top; - } - -ERR: - mp_clear(&q); - return res; -} - -#endif - -/* End: bn_mp_reduce_2k_l.c */ - -/* Start: bn_mp_reduce_2k_setup.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_2K_SETUP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines the setup value */ -int mp_reduce_2k_setup(mp_int *a, mp_digit *d) -{ - int res, p; - mp_int tmp; - - if ((res = mp_init(&tmp)) != MP_OKAY) { - return res; - } - - p = mp_count_bits(a); - if ((res = mp_2expt(&tmp, p)) != MP_OKAY) { - mp_clear(&tmp); - return res; - } - - if ((res = s_mp_sub(&tmp, a, &tmp)) != MP_OKAY) { - mp_clear(&tmp); - return res; - } - - *d = tmp.dp[0]; - mp_clear(&tmp); - return MP_OKAY; -} -#endif - -/* End: bn_mp_reduce_2k_setup.c */ - -/* Start: bn_mp_reduce_2k_setup_l.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_2K_SETUP_L_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines the setup value */ -int mp_reduce_2k_setup_l(mp_int *a, mp_int *d) -{ - int res; - mp_int tmp; - - if ((res = mp_init(&tmp)) != MP_OKAY) { - return res; - } - - if ((res = mp_2expt(&tmp, mp_count_bits(a))) != MP_OKAY) { - goto ERR; - } - - if ((res = s_mp_sub(&tmp, a, d)) != MP_OKAY) { - goto ERR; - } - -ERR: - mp_clear(&tmp); - return res; -} -#endif - -/* End: bn_mp_reduce_2k_setup_l.c */ - -/* Start: bn_mp_reduce_is_2k.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_IS_2K_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines if mp_reduce_2k can be used */ -int mp_reduce_is_2k(mp_int *a) -{ - int ix, iy, iw; - mp_digit iz; - - if (a->used == 0) { - return MP_NO; - } else if (a->used == 1) { - return MP_YES; - } else if (a->used > 1) { - iy = mp_count_bits(a); - iz = 1; - iw = 1; - - /* Test every bit from the second digit up, must be 1 */ - for (ix = DIGIT_BIT; ix < iy; ix++) { - if ((a->dp[iw] & iz) == 0) { - return MP_NO; - } - iz <<= 1; - if (iz > (mp_digit)MP_MASK) { - ++iw; - iz = 1; - } - } - } - return MP_YES; -} - -#endif - -/* End: bn_mp_reduce_is_2k.c */ - -/* Start: bn_mp_reduce_is_2k_l.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_IS_2K_L_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* determines if reduce_2k_l can be used */ -int mp_reduce_is_2k_l(mp_int *a) -{ - int ix, iy; - - if (a->used == 0) { - return MP_NO; - } else if (a->used == 1) { - return MP_YES; - } else if (a->used > 1) { - /* if more than half of the digits are -1 we're sold */ - for (iy = ix = 0; ix < a->used; ix++) { - if (a->dp[ix] == MP_MASK) { - ++iy; - } - } - return (iy >= (a->used/2)) ? MP_YES : MP_NO; - - } - return MP_NO; -} - -#endif - -/* End: bn_mp_reduce_is_2k_l.c */ - -/* Start: bn_mp_reduce_setup.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_REDUCE_SETUP_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* pre-calculate the value required for Barrett reduction - * For a given modulus "b" it calulates the value required in "a" - */ -int mp_reduce_setup (mp_int * a, mp_int * b) -{ - int res; - - if ((res = mp_2expt (a, b->used * 2 * DIGIT_BIT)) != MP_OKAY) { - return res; - } - return mp_div (a, b, a, NULL); -} -#endif - -/* End: bn_mp_reduce_setup.c */ - -/* Start: bn_mp_rshd.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_RSHD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* shift right a certain amount of digits */ -void mp_rshd (mp_int * a, int b) -{ - int x; - - /* if b <= 0 then ignore it */ - if (b <= 0) { - return; - } - - /* if b > used then simply zero it and return */ - if (a->used <= b) { - mp_zero (a); - return; - } - - { - register mp_digit *bottom, *top; - - /* shift the digits down */ - - /* bottom */ - bottom = a->dp; - - /* top [offset into digits] */ - top = a->dp + b; - - /* this is implemented as a sliding window where - * the window is b-digits long and digits from - * the top of the window are copied to the bottom - * - * e.g. - - b-2 | b-1 | b0 | b1 | b2 | ... | bb | ----> - /\ | ----> - \-------------------/ ----> - */ - for (x = 0; x < (a->used - b); x++) { - *bottom++ = *top++; - } - - /* zero the top digits */ - for (; x < a->used; x++) { - *bottom++ = 0; - } - } - - /* remove excess digits */ - a->used -= b; -} -#endif - -/* End: bn_mp_rshd.c */ - -/* Start: bn_mp_set.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SET_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* set to a digit */ -void mp_set (mp_int * a, mp_digit b) -{ - mp_zero (a); - a->dp[0] = b & MP_MASK; - a->used = (a->dp[0] != 0) ? 1 : 0; -} -#endif - -/* End: bn_mp_set.c */ - -/* Start: bn_mp_set_int.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SET_INT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* set a 32-bit const */ -int mp_set_int (mp_int * a, unsigned long b) -{ - int x, res; - - mp_zero (a); - - /* set four bits at a time */ - for (x = 0; x < 8; x++) { - /* shift the number up four bits */ - if ((res = mp_mul_2d (a, 4, a)) != MP_OKAY) { - return res; - } - - /* OR in the top four bits of the source */ - a->dp[0] |= (b >> 28) & 15; - - /* shift the source up to the next four bits */ - b <<= 4; - - /* ensure that digits are not clamped off */ - a->used += 1; - } - mp_clamp (a); - return MP_OKAY; -} -#endif - -/* End: bn_mp_set_int.c */ - -/* Start: bn_mp_shrink.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SHRINK_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* shrink a bignum */ -int mp_shrink (mp_int * a) -{ - mp_digit *tmp; - if (a->alloc != a->used && a->used > 0) { - if ((tmp = OPT_CAST(mp_digit) XREALLOC (a->dp, sizeof (mp_digit) * a->used)) == NULL) { - return MP_MEM; - } - a->dp = tmp; - a->alloc = a->used; - } - return MP_OKAY; -} -#endif - -/* End: bn_mp_shrink.c */ - -/* Start: bn_mp_signed_bin_size.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SIGNED_BIN_SIZE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* get the size for an signed equivalent */ -int mp_signed_bin_size (mp_int * a) -{ - return 1 + mp_unsigned_bin_size (a); -} -#endif - -/* End: bn_mp_signed_bin_size.c */ - -/* Start: bn_mp_sqr.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SQR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* computes b = a*a */ -int -mp_sqr (mp_int * a, mp_int * b) -{ - int res; - -#ifdef BN_MP_TOOM_SQR_C - /* use Toom-Cook? */ - if (a->used >= TOOM_SQR_CUTOFF) { - res = mp_toom_sqr(a, b); - /* Karatsuba? */ - } else -#endif -#ifdef BN_MP_KARATSUBA_SQR_C -if (a->used >= KARATSUBA_SQR_CUTOFF) { - res = mp_karatsuba_sqr (a, b); - } else -#endif - { -#ifdef BN_FAST_S_MP_SQR_C - /* can we use the fast comba multiplier? */ - if ((a->used * 2 + 1) < MP_WARRAY && - a->used < - (1 << (sizeof(mp_word) * CHAR_BIT - 2*DIGIT_BIT - 1))) { - res = fast_s_mp_sqr (a, b); - } else -#endif -#ifdef BN_S_MP_SQR_C - res = s_mp_sqr (a, b); -#else - res = MP_VAL; -#endif - } - b->sign = MP_ZPOS; - return res; -} -#endif - -/* End: bn_mp_sqr.c */ - -/* Start: bn_mp_sqrmod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SQRMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* c = a * a (mod b) */ -int -mp_sqrmod (mp_int * a, mp_int * b, mp_int * c) -{ - int res; - mp_int t; - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - if ((res = mp_sqr (a, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - res = mp_mod (&t, b, c); - mp_clear (&t); - return res; -} -#endif - -/* End: bn_mp_sqrmod.c */ - -/* Start: bn_mp_sqrt.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SQRT_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* this function is less generic than mp_n_root, simpler and faster */ -int mp_sqrt(mp_int *arg, mp_int *ret) -{ - int res; - mp_int t1,t2; - - /* must be positive */ - if (arg->sign == MP_NEG) { - return MP_VAL; - } - - /* easy out */ - if (mp_iszero(arg) == MP_YES) { - mp_zero(ret); - return MP_OKAY; - } - - if ((res = mp_init_copy(&t1, arg)) != MP_OKAY) { - return res; - } - - if ((res = mp_init(&t2)) != MP_OKAY) { - goto E2; - } - - /* First approx. (not very bad for large arg) */ - mp_rshd (&t1,t1.used/2); - - /* t1 > 0 */ - if ((res = mp_div(arg,&t1,&t2,NULL)) != MP_OKAY) { - goto E1; - } - if ((res = mp_add(&t1,&t2,&t1)) != MP_OKAY) { - goto E1; - } - if ((res = mp_div_2(&t1,&t1)) != MP_OKAY) { - goto E1; - } - /* And now t1 > sqrt(arg) */ - do { - if ((res = mp_div(arg,&t1,&t2,NULL)) != MP_OKAY) { - goto E1; - } - if ((res = mp_add(&t1,&t2,&t1)) != MP_OKAY) { - goto E1; - } - if ((res = mp_div_2(&t1,&t1)) != MP_OKAY) { - goto E1; - } - /* t1 >= sqrt(arg) >= t2 at this point */ - } while (mp_cmp_mag(&t1,&t2) == MP_GT); - - mp_exch(&t1,ret); - -E1: mp_clear(&t2); -E2: mp_clear(&t1); - return res; -} - -#endif - -/* End: bn_mp_sqrt.c */ - -/* Start: bn_mp_sub.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SUB_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* high level subtraction (handles signs) */ -int -mp_sub (mp_int * a, mp_int * b, mp_int * c) -{ - int sa, sb, res; - - sa = a->sign; - sb = b->sign; - - if (sa != sb) { - /* subtract a negative from a positive, OR */ - /* subtract a positive from a negative. */ - /* In either case, ADD their magnitudes, */ - /* and use the sign of the first number. */ - c->sign = sa; - res = s_mp_add (a, b, c); - } else { - /* subtract a positive from a positive, OR */ - /* subtract a negative from a negative. */ - /* First, take the difference between their */ - /* magnitudes, then... */ - if (mp_cmp_mag (a, b) != MP_LT) { - /* Copy the sign from the first */ - c->sign = sa; - /* The first has a larger or equal magnitude */ - res = s_mp_sub (a, b, c); - } else { - /* The result has the *opposite* sign from */ - /* the first number. */ - c->sign = (sa == MP_ZPOS) ? MP_NEG : MP_ZPOS; - /* The second has a larger magnitude */ - res = s_mp_sub (b, a, c); - } - } - return res; -} - -#endif - -/* End: bn_mp_sub.c */ - -/* Start: bn_mp_sub_d.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SUB_D_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* single digit subtraction */ -int -mp_sub_d (mp_int * a, mp_digit b, mp_int * c) -{ - mp_digit *tmpa, *tmpc, mu; - int res, ix, oldused; - - /* grow c as required */ - if (c->alloc < a->used + 1) { - if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) { - return res; - } - } - - /* if a is negative just do an unsigned - * addition [with fudged signs] - */ - if (a->sign == MP_NEG) { - a->sign = MP_ZPOS; - res = mp_add_d(a, b, c); - a->sign = c->sign = MP_NEG; - return res; - } - - /* setup regs */ - oldused = c->used; - tmpa = a->dp; - tmpc = c->dp; - - /* if a <= b simply fix the single digit */ - if ((a->used == 1 && a->dp[0] <= b) || a->used == 0) { - if (a->used == 1) { - *tmpc++ = b - *tmpa; - } else { - *tmpc++ = b; - } - ix = 1; - - /* negative/1digit */ - c->sign = MP_NEG; - c->used = 1; - } else { - /* positive/size */ - c->sign = MP_ZPOS; - c->used = a->used; - - /* subtract first digit */ - *tmpc = *tmpa++ - b; - mu = *tmpc >> (sizeof(mp_digit) * CHAR_BIT - 1); - *tmpc++ &= MP_MASK; - - /* handle rest of the digits */ - for (ix = 1; ix < a->used; ix++) { - *tmpc = *tmpa++ - mu; - mu = *tmpc >> (sizeof(mp_digit) * CHAR_BIT - 1); - *tmpc++ &= MP_MASK; - } - } - - /* zero excess digits */ - while (ix++ < oldused) { - *tmpc++ = 0; - } - mp_clamp(c); - return MP_OKAY; -} - -#endif - -/* End: bn_mp_sub_d.c */ - -/* Start: bn_mp_submod.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_SUBMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* d = a - b (mod c) */ -int -mp_submod (mp_int * a, mp_int * b, mp_int * c, mp_int * d) -{ - int res; - mp_int t; - - - if ((res = mp_init (&t)) != MP_OKAY) { - return res; - } - - if ((res = mp_sub (a, b, &t)) != MP_OKAY) { - mp_clear (&t); - return res; - } - res = mp_mod (&t, c, d); - mp_clear (&t); - return res; -} -#endif - -/* End: bn_mp_submod.c */ - -/* Start: bn_mp_to_signed_bin.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TO_SIGNED_BIN_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* store in signed [big endian] format */ -int mp_to_signed_bin (mp_int * a, unsigned char *b) -{ - int res; - - if ((res = mp_to_unsigned_bin (a, b + 1)) != MP_OKAY) { - return res; - } - b[0] = (unsigned char) ((a->sign == MP_ZPOS) ? 0 : 1); - return MP_OKAY; -} -#endif - -/* End: bn_mp_to_signed_bin.c */ - -/* Start: bn_mp_to_signed_bin_n.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TO_SIGNED_BIN_N_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* store in signed [big endian] format */ -int mp_to_signed_bin_n (mp_int * a, unsigned char *b, unsigned long *outlen) -{ - if (*outlen < (unsigned long)mp_signed_bin_size(a)) { - return MP_VAL; - } - *outlen = mp_signed_bin_size(a); - return mp_to_signed_bin(a, b); -} -#endif - -/* End: bn_mp_to_signed_bin_n.c */ - -/* Start: bn_mp_to_unsigned_bin.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TO_UNSIGNED_BIN_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* store in unsigned [big endian] format */ -int mp_to_unsigned_bin (mp_int * a, unsigned char *b) -{ - int x, res; - mp_int t; - - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - - x = 0; - while (mp_iszero (&t) == 0) { -#ifndef MP_8BIT - b[x++] = (unsigned char) (t.dp[0] & 255); -#else - b[x++] = (unsigned char) (t.dp[0] | ((t.dp[1] & 0x01) << 7)); -#endif - if ((res = mp_div_2d (&t, 8, &t, NULL)) != MP_OKAY) { - mp_clear (&t); - return res; - } - } - bn_reverse (b, x); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_mp_to_unsigned_bin.c */ - -/* Start: bn_mp_to_unsigned_bin_n.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TO_UNSIGNED_BIN_N_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* store in unsigned [big endian] format */ -int mp_to_unsigned_bin_n (mp_int * a, unsigned char *b, unsigned long *outlen) -{ - if (*outlen < (unsigned long)mp_unsigned_bin_size(a)) { - return MP_VAL; - } - *outlen = mp_unsigned_bin_size(a); - return mp_to_unsigned_bin(a, b); -} -#endif - -/* End: bn_mp_to_unsigned_bin_n.c */ - -/* Start: bn_mp_toom_mul.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TOOM_MUL_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* multiplication using the Toom-Cook 3-way algorithm - * - * Much more complicated than Karatsuba but has a lower - * asymptotic running time of O(N**1.464). This algorithm is - * only particularly useful on VERY large inputs - * (we're talking 1000s of digits here...). -*/ -int mp_toom_mul(mp_int *a, mp_int *b, mp_int *c) -{ - mp_int w0, w1, w2, w3, w4, tmp1, tmp2, a0, a1, a2, b0, b1, b2; - int res, B; - - /* init temps */ - if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, - &a0, &a1, &a2, &b0, &b1, - &b2, &tmp1, &tmp2, NULL)) != MP_OKAY) { - return res; - } - - /* B */ - B = MIN(a->used, b->used) / 3; - - /* a = a2 * B**2 + a1 * B + a0 */ - if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_copy(a, &a1)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&a1, B); - mp_mod_2d(&a1, DIGIT_BIT * B, &a1); - - if ((res = mp_copy(a, &a2)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&a2, B*2); - - /* b = b2 * B**2 + b1 * B + b0 */ - if ((res = mp_mod_2d(b, DIGIT_BIT * B, &b0)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_copy(b, &b1)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&b1, B); - mp_mod_2d(&b1, DIGIT_BIT * B, &b1); - - if ((res = mp_copy(b, &b2)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&b2, B*2); - - /* w0 = a0*b0 */ - if ((res = mp_mul(&a0, &b0, &w0)) != MP_OKAY) { - goto ERR; - } - - /* w4 = a2 * b2 */ - if ((res = mp_mul(&a2, &b2, &w4)) != MP_OKAY) { - goto ERR; - } - - /* w1 = (a2 + 2(a1 + 2a0))(b2 + 2(b1 + 2b0)) */ - if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_mul_2(&b0, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp2, &b1, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp2, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp2, &b2, &tmp2)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_mul(&tmp1, &tmp2, &w1)) != MP_OKAY) { - goto ERR; - } - - /* w3 = (a0 + 2(a1 + 2a2))(b0 + 2(b1 + 2b2)) */ - if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_mul_2(&b2, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp2, &b1, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp2, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp2, &b0, &tmp2)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_mul(&tmp1, &tmp2, &w3)) != MP_OKAY) { - goto ERR; - } - - - /* w2 = (a2 + a1 + a0)(b2 + b1 + b0) */ - if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&b2, &b1, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp2, &b0, &tmp2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul(&tmp1, &tmp2, &w2)) != MP_OKAY) { - goto ERR; - } - - /* now solve the matrix - - 0 0 0 0 1 - 1 2 4 8 16 - 1 1 1 1 1 - 16 8 4 2 1 - 1 0 0 0 0 - - using 12 subtractions, 4 shifts, - 2 small divisions and 1 small multiplication - */ - - /* r1 - r4 */ - if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r0 */ - if ((res = mp_sub(&w3, &w0, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1/2 */ - if ((res = mp_div_2(&w1, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3/2 */ - if ((res = mp_div_2(&w3, &w3)) != MP_OKAY) { - goto ERR; - } - /* r2 - r0 - r4 */ - if ((res = mp_sub(&w2, &w0, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w4, &w2)) != MP_OKAY) { - goto ERR; - } - /* r1 - r2 */ - if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r2 */ - if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1 - 8r0 */ - if ((res = mp_mul_2d(&w0, 3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w1, &tmp1, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - 8r4 */ - if ((res = mp_mul_2d(&w4, 3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w3, &tmp1, &w3)) != MP_OKAY) { - goto ERR; - } - /* 3r2 - r1 - r3 */ - if ((res = mp_mul_d(&w2, 3, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w1, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w3, &w2)) != MP_OKAY) { - goto ERR; - } - /* r1 - r2 */ - if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r2 */ - if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1/3 */ - if ((res = mp_div_3(&w1, &w1, NULL)) != MP_OKAY) { - goto ERR; - } - /* r3/3 */ - if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { - goto ERR; - } - - /* at this point shift W[n] by B*n */ - if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w2, 2*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w3, 3*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_add(&w0, &w1, c)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&w2, &w3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&w4, &tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, c, c)) != MP_OKAY) { - goto ERR; - } - -ERR: - mp_clear_multi(&w0, &w1, &w2, &w3, &w4, - &a0, &a1, &a2, &b0, &b1, - &b2, &tmp1, &tmp2, NULL); - return res; -} - -#endif - -/* End: bn_mp_toom_mul.c */ - -/* Start: bn_mp_toom_sqr.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TOOM_SQR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* squaring using Toom-Cook 3-way algorithm */ -int -mp_toom_sqr(mp_int *a, mp_int *b) -{ - mp_int w0, w1, w2, w3, w4, tmp1, a0, a1, a2; - int res, B; - - /* init temps */ - if ((res = mp_init_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL)) != MP_OKAY) { - return res; - } - - /* B */ - B = a->used / 3; - - /* a = a2 * B**2 + a1 * B + a0 */ - if ((res = mp_mod_2d(a, DIGIT_BIT * B, &a0)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_copy(a, &a1)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&a1, B); - mp_mod_2d(&a1, DIGIT_BIT * B, &a1); - - if ((res = mp_copy(a, &a2)) != MP_OKAY) { - goto ERR; - } - mp_rshd(&a2, B*2); - - /* w0 = a0*a0 */ - if ((res = mp_sqr(&a0, &w0)) != MP_OKAY) { - goto ERR; - } - - /* w4 = a2 * a2 */ - if ((res = mp_sqr(&a2, &w4)) != MP_OKAY) { - goto ERR; - } - - /* w1 = (a2 + 2(a1 + 2a0))**2 */ - if ((res = mp_mul_2(&a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a2, &tmp1)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_sqr(&tmp1, &w1)) != MP_OKAY) { - goto ERR; - } - - /* w3 = (a0 + 2(a1 + 2a2))**2 */ - if ((res = mp_mul_2(&a2, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_mul_2(&tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_sqr(&tmp1, &w3)) != MP_OKAY) { - goto ERR; - } - - - /* w2 = (a2 + a1 + a0)**2 */ - if ((res = mp_add(&a2, &a1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, &a0, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sqr(&tmp1, &w2)) != MP_OKAY) { - goto ERR; - } - - /* now solve the matrix - - 0 0 0 0 1 - 1 2 4 8 16 - 1 1 1 1 1 - 16 8 4 2 1 - 1 0 0 0 0 - - using 12 subtractions, 4 shifts, 2 small divisions and 1 small multiplication. - */ - - /* r1 - r4 */ - if ((res = mp_sub(&w1, &w4, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r0 */ - if ((res = mp_sub(&w3, &w0, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1/2 */ - if ((res = mp_div_2(&w1, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3/2 */ - if ((res = mp_div_2(&w3, &w3)) != MP_OKAY) { - goto ERR; - } - /* r2 - r0 - r4 */ - if ((res = mp_sub(&w2, &w0, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w4, &w2)) != MP_OKAY) { - goto ERR; - } - /* r1 - r2 */ - if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r2 */ - if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1 - 8r0 */ - if ((res = mp_mul_2d(&w0, 3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w1, &tmp1, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - 8r4 */ - if ((res = mp_mul_2d(&w4, 3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w3, &tmp1, &w3)) != MP_OKAY) { - goto ERR; - } - /* 3r2 - r1 - r3 */ - if ((res = mp_mul_d(&w2, 3, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w1, &w2)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_sub(&w2, &w3, &w2)) != MP_OKAY) { - goto ERR; - } - /* r1 - r2 */ - if ((res = mp_sub(&w1, &w2, &w1)) != MP_OKAY) { - goto ERR; - } - /* r3 - r2 */ - if ((res = mp_sub(&w3, &w2, &w3)) != MP_OKAY) { - goto ERR; - } - /* r1/3 */ - if ((res = mp_div_3(&w1, &w1, NULL)) != MP_OKAY) { - goto ERR; - } - /* r3/3 */ - if ((res = mp_div_3(&w3, &w3, NULL)) != MP_OKAY) { - goto ERR; - } - - /* at this point shift W[n] by B*n */ - if ((res = mp_lshd(&w1, 1*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w2, 2*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w3, 3*B)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_lshd(&w4, 4*B)) != MP_OKAY) { - goto ERR; - } - - if ((res = mp_add(&w0, &w1, b)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&w2, &w3, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&w4, &tmp1, &tmp1)) != MP_OKAY) { - goto ERR; - } - if ((res = mp_add(&tmp1, b, b)) != MP_OKAY) { - goto ERR; - } - -ERR: - mp_clear_multi(&w0, &w1, &w2, &w3, &w4, &a0, &a1, &a2, &tmp1, NULL); - return res; -} - -#endif - -/* End: bn_mp_toom_sqr.c */ - -/* Start: bn_mp_toradix.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TORADIX_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* stores a bignum as a ASCII string in a given radix (2..64) */ -int mp_toradix (mp_int * a, char *str, int radix) -{ - int res, digs; - mp_int t; - mp_digit d; - char *_s = str; - - /* check range of the radix */ - if (radix < 2 || radix > 64) { - return MP_VAL; - } - - /* quick out if its zero */ - if (mp_iszero(a) == 1) { - *str++ = '0'; - *str = '\0'; - return MP_OKAY; - } - - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - - /* if it is negative output a - */ - if (t.sign == MP_NEG) { - ++_s; - *str++ = '-'; - t.sign = MP_ZPOS; - } - - digs = 0; - while (mp_iszero (&t) == 0) { - if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) { - mp_clear (&t); - return res; - } - *str++ = mp_s_rmap[d]; - ++digs; - } - - /* reverse the digits of the string. In this case _s points - * to the first digit [exluding the sign] of the number] - */ - bn_reverse ((unsigned char *)_s, digs); - - /* append a NULL so the string is properly terminated */ - *str = '\0'; - - mp_clear (&t); - return MP_OKAY; -} - -#endif - -/* End: bn_mp_toradix.c */ - -/* Start: bn_mp_toradix_n.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_TORADIX_N_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* stores a bignum as a ASCII string in a given radix (2..64) - * - * Stores upto maxlen-1 chars and always a NULL byte - */ -int mp_toradix_n(mp_int * a, char *str, int radix, int maxlen) -{ - int res, digs; - mp_int t; - mp_digit d; - char *_s = str; - - /* check range of the maxlen, radix */ - if (maxlen < 3 || radix < 2 || radix > 64) { - return MP_VAL; - } - - /* quick out if its zero */ - if (mp_iszero(a) == 1) { - *str++ = '0'; - *str = '\0'; - return MP_OKAY; - } - - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - - /* if it is negative output a - */ - if (t.sign == MP_NEG) { - /* we have to reverse our digits later... but not the - sign!! */ - ++_s; - - /* store the flag and mark the number as positive */ - *str++ = '-'; - t.sign = MP_ZPOS; - - /* subtract a char */ - --maxlen; - } - - digs = 0; - while (mp_iszero (&t) == 0) { - if ((res = mp_div_d (&t, (mp_digit) radix, &t, &d)) != MP_OKAY) { - mp_clear (&t); - return res; - } - *str++ = mp_s_rmap[d]; - ++digs; - - if (--maxlen == 1) { - /* no more room */ - break; - } - } - - /* reverse the digits of the string. In this case _s points - * to the first digit [exluding the sign] of the number] - */ - bn_reverse ((unsigned char *)_s, digs); - - /* append a NULL so the string is properly terminated */ - *str = '\0'; - - mp_clear (&t); - return MP_OKAY; -} - -#endif - -/* End: bn_mp_toradix_n.c */ - -/* Start: bn_mp_unsigned_bin_size.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_UNSIGNED_BIN_SIZE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* get the size for an unsigned equivalent */ -int mp_unsigned_bin_size (mp_int * a) -{ - int size = mp_count_bits (a); - return (size / 8 + ((size & 7) != 0 ? 1 : 0)); -} -#endif - -/* End: bn_mp_unsigned_bin_size.c */ - -/* Start: bn_mp_xor.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_XOR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* XOR two ints together */ -int -mp_xor (mp_int * a, mp_int * b, mp_int * c) -{ - int res, ix, px; - mp_int t, *x; - - if (a->used > b->used) { - if ((res = mp_init_copy (&t, a)) != MP_OKAY) { - return res; - } - px = b->used; - x = b; - } else { - if ((res = mp_init_copy (&t, b)) != MP_OKAY) { - return res; - } - px = a->used; - x = a; - } - - for (ix = 0; ix < px; ix++) { - t.dp[ix] ^= x->dp[ix]; - } - mp_clamp (&t); - mp_exch (c, &t); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_mp_xor.c */ - -/* Start: bn_mp_zero.c */ -#include <ltc_tommath.h> -#ifdef BN_MP_ZERO_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* set to zero */ -void mp_zero (mp_int * a) -{ - int n; - mp_digit *tmp; - - a->sign = MP_ZPOS; - a->used = 0; - - tmp = a->dp; - for (n = 0; n < a->alloc; n++) { - *tmp++ = 0; - } -} -#endif - -/* End: bn_mp_zero.c */ - -/* Start: bn_prime_tab.c */ -#include <ltc_tommath.h> -#ifdef BN_PRIME_TAB_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ -const mp_digit ltm_prime_tab[] = { - 0x0002, 0x0003, 0x0005, 0x0007, 0x000B, 0x000D, 0x0011, 0x0013, - 0x0017, 0x001D, 0x001F, 0x0025, 0x0029, 0x002B, 0x002F, 0x0035, - 0x003B, 0x003D, 0x0043, 0x0047, 0x0049, 0x004F, 0x0053, 0x0059, - 0x0061, 0x0065, 0x0067, 0x006B, 0x006D, 0x0071, 0x007F, -#ifndef MP_8BIT - 0x0083, - 0x0089, 0x008B, 0x0095, 0x0097, 0x009D, 0x00A3, 0x00A7, 0x00AD, - 0x00B3, 0x00B5, 0x00BF, 0x00C1, 0x00C5, 0x00C7, 0x00D3, 0x00DF, - 0x00E3, 0x00E5, 0x00E9, 0x00EF, 0x00F1, 0x00FB, 0x0101, 0x0107, - 0x010D, 0x010F, 0x0115, 0x0119, 0x011B, 0x0125, 0x0133, 0x0137, - - 0x0139, 0x013D, 0x014B, 0x0151, 0x015B, 0x015D, 0x0161, 0x0167, - 0x016F, 0x0175, 0x017B, 0x017F, 0x0185, 0x018D, 0x0191, 0x0199, - 0x01A3, 0x01A5, 0x01AF, 0x01B1, 0x01B7, 0x01BB, 0x01C1, 0x01C9, - 0x01CD, 0x01CF, 0x01D3, 0x01DF, 0x01E7, 0x01EB, 0x01F3, 0x01F7, - 0x01FD, 0x0209, 0x020B, 0x021D, 0x0223, 0x022D, 0x0233, 0x0239, - 0x023B, 0x0241, 0x024B, 0x0251, 0x0257, 0x0259, 0x025F, 0x0265, - 0x0269, 0x026B, 0x0277, 0x0281, 0x0283, 0x0287, 0x028D, 0x0293, - 0x0295, 0x02A1, 0x02A5, 0x02AB, 0x02B3, 0x02BD, 0x02C5, 0x02CF, - - 0x02D7, 0x02DD, 0x02E3, 0x02E7, 0x02EF, 0x02F5, 0x02F9, 0x0301, - 0x0305, 0x0313, 0x031D, 0x0329, 0x032B, 0x0335, 0x0337, 0x033B, - 0x033D, 0x0347, 0x0355, 0x0359, 0x035B, 0x035F, 0x036D, 0x0371, - 0x0373, 0x0377, 0x038B, 0x038F, 0x0397, 0x03A1, 0x03A9, 0x03AD, - 0x03B3, 0x03B9, 0x03C7, 0x03CB, 0x03D1, 0x03D7, 0x03DF, 0x03E5, - 0x03F1, 0x03F5, 0x03FB, 0x03FD, 0x0407, 0x0409, 0x040F, 0x0419, - 0x041B, 0x0425, 0x0427, 0x042D, 0x043F, 0x0443, 0x0445, 0x0449, - 0x044F, 0x0455, 0x045D, 0x0463, 0x0469, 0x047F, 0x0481, 0x048B, - - 0x0493, 0x049D, 0x04A3, 0x04A9, 0x04B1, 0x04BD, 0x04C1, 0x04C7, - 0x04CD, 0x04CF, 0x04D5, 0x04E1, 0x04EB, 0x04FD, 0x04FF, 0x0503, - 0x0509, 0x050B, 0x0511, 0x0515, 0x0517, 0x051B, 0x0527, 0x0529, - 0x052F, 0x0551, 0x0557, 0x055D, 0x0565, 0x0577, 0x0581, 0x058F, - 0x0593, 0x0595, 0x0599, 0x059F, 0x05A7, 0x05AB, 0x05AD, 0x05B3, - 0x05BF, 0x05C9, 0x05CB, 0x05CF, 0x05D1, 0x05D5, 0x05DB, 0x05E7, - 0x05F3, 0x05FB, 0x0607, 0x060D, 0x0611, 0x0617, 0x061F, 0x0623, - 0x062B, 0x062F, 0x063D, 0x0641, 0x0647, 0x0649, 0x064D, 0x0653 -#endif -}; -#endif - -/* End: bn_prime_tab.c */ - -/* Start: bn_reverse.c */ -#include <ltc_tommath.h> -#ifdef BN_REVERSE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* reverse an array, used for radix code */ -void -bn_reverse (unsigned char *s, int len) -{ - int ix, iy; - unsigned char t; - - ix = 0; - iy = len - 1; - while (ix < iy) { - t = s[ix]; - s[ix] = s[iy]; - s[iy] = t; - ++ix; - --iy; - } -} -#endif - -/* End: bn_reverse.c */ - -/* Start: bn_s_mp_add.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_ADD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* low level addition, based on HAC pp.594, Algorithm 14.7 */ -int -s_mp_add (mp_int * a, mp_int * b, mp_int * c) -{ - mp_int *x; - int olduse, res, min, max; - - /* find sizes, we let |a| <= |b| which means we have to sort - * them. "x" will point to the input with the most digits - */ - if (a->used > b->used) { - min = b->used; - max = a->used; - x = a; - } else { - min = a->used; - max = b->used; - x = b; - } - - /* init result */ - if (c->alloc < max + 1) { - if ((res = mp_grow (c, max + 1)) != MP_OKAY) { - return res; - } - } - - /* get old used digit count and set new one */ - olduse = c->used; - c->used = max + 1; - - { - register mp_digit u, *tmpa, *tmpb, *tmpc; - register int i; - - /* alias for digit pointers */ - - /* first input */ - tmpa = a->dp; - - /* second input */ - tmpb = b->dp; - - /* destination */ - tmpc = c->dp; - - /* zero the carry */ - u = 0; - for (i = 0; i < min; i++) { - /* Compute the sum at one digit, T[i] = A[i] + B[i] + U */ - *tmpc = *tmpa++ + *tmpb++ + u; - - /* U = carry bit of T[i] */ - u = *tmpc >> ((mp_digit)DIGIT_BIT); - - /* take away carry bit from T[i] */ - *tmpc++ &= MP_MASK; - } - - /* now copy higher words if any, that is in A+B - * if A or B has more digits add those in - */ - if (min != max) { - for (; i < max; i++) { - /* T[i] = X[i] + U */ - *tmpc = x->dp[i] + u; - - /* U = carry bit of T[i] */ - u = *tmpc >> ((mp_digit)DIGIT_BIT); - - /* take away carry bit from T[i] */ - *tmpc++ &= MP_MASK; - } - } - - /* add carry */ - *tmpc++ = u; - - /* clear digits above oldused */ - for (i = c->used; i < olduse; i++) { - *tmpc++ = 0; - } - } - - mp_clamp (c); - return MP_OKAY; -} -#endif - -/* End: bn_s_mp_add.c */ - -/* Start: bn_s_mp_exptmod.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_EXPTMOD_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -#ifdef MP_LOW_MEM - #define TAB_SIZE 32 -#else - #define TAB_SIZE 256 -#endif - -int s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int redmode) -{ - mp_int M[TAB_SIZE], res, mu; - mp_digit buf; - int err, bitbuf, bitcpy, bitcnt, mode, digidx, x, y, winsize; - int (*redux)(mp_int*,mp_int*,mp_int*); - - /* find window size */ - x = mp_count_bits (X); - if (x <= 7) { - winsize = 2; - } else if (x <= 36) { - winsize = 3; - } else if (x <= 140) { - winsize = 4; - } else if (x <= 450) { - winsize = 5; - } else if (x <= 1303) { - winsize = 6; - } else if (x <= 3529) { - winsize = 7; - } else { - winsize = 8; - } - -#ifdef MP_LOW_MEM - if (winsize > 5) { - winsize = 5; - } -#endif - - /* init M array */ - /* init first cell */ - if ((err = mp_init(&M[1])) != MP_OKAY) { - return err; - } - - /* now init the second half of the array */ - for (x = 1<<(winsize-1); x < (1 << winsize); x++) { - if ((err = mp_init(&M[x])) != MP_OKAY) { - for (y = 1<<(winsize-1); y < x; y++) { - mp_clear (&M[y]); - } - mp_clear(&M[1]); - return err; - } - } - - /* create mu, used for Barrett reduction */ - if ((err = mp_init (&mu)) != MP_OKAY) { - goto LBL_M; - } - - if (redmode == 0) { - if ((err = mp_reduce_setup (&mu, P)) != MP_OKAY) { - goto LBL_MU; - } - redux = mp_reduce; - } else { - if ((err = mp_reduce_2k_setup_l (P, &mu)) != MP_OKAY) { - goto LBL_MU; - } - redux = mp_reduce_2k_l; - } - - /* create M table - * - * The M table contains powers of the base, - * e.g. M[x] = G**x mod P - * - * The first half of the table is not - * computed though accept for M[0] and M[1] - */ - if ((err = mp_mod (G, P, &M[1])) != MP_OKAY) { - goto LBL_MU; - } - - /* compute the value at M[1<<(winsize-1)] by squaring - * M[1] (winsize-1) times - */ - if ((err = mp_copy (&M[1], &M[1 << (winsize - 1)])) != MP_OKAY) { - goto LBL_MU; - } - - for (x = 0; x < (winsize - 1); x++) { - /* square it */ - if ((err = mp_sqr (&M[1 << (winsize - 1)], - &M[1 << (winsize - 1)])) != MP_OKAY) { - goto LBL_MU; - } - - /* reduce modulo P */ - if ((err = redux (&M[1 << (winsize - 1)], P, &mu)) != MP_OKAY) { - goto LBL_MU; - } - } - - /* create upper table, that is M[x] = M[x-1] * M[1] (mod P) - * for x = (2**(winsize - 1) + 1) to (2**winsize - 1) - */ - for (x = (1 << (winsize - 1)) + 1; x < (1 << winsize); x++) { - if ((err = mp_mul (&M[x - 1], &M[1], &M[x])) != MP_OKAY) { - goto LBL_MU; - } - if ((err = redux (&M[x], P, &mu)) != MP_OKAY) { - goto LBL_MU; - } - } - - /* setup result */ - if ((err = mp_init (&res)) != MP_OKAY) { - goto LBL_MU; - } - mp_set (&res, 1); - - /* set initial mode and bit cnt */ - mode = 0; - bitcnt = 1; - buf = 0; - digidx = X->used - 1; - bitcpy = 0; - bitbuf = 0; - - for (;;) { - /* grab next digit as required */ - if (--bitcnt == 0) { - /* if digidx == -1 we are out of digits */ - if (digidx == -1) { - break; - } - /* read next digit and reset the bitcnt */ - buf = X->dp[digidx--]; - bitcnt = (int) DIGIT_BIT; - } - - /* grab the next msb from the exponent */ - y = (buf >> (mp_digit)(DIGIT_BIT - 1)) & 1; - buf <<= (mp_digit)1; - - /* if the bit is zero and mode == 0 then we ignore it - * These represent the leading zero bits before the first 1 bit - * in the exponent. Technically this opt is not required but it - * does lower the # of trivial squaring/reductions used - */ - if (mode == 0 && y == 0) { - continue; - } - - /* if the bit is zero and mode == 1 then we square */ - if (mode == 1 && y == 0) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, &mu)) != MP_OKAY) { - goto LBL_RES; - } - continue; - } - - /* else we add it to the window */ - bitbuf |= (y << (winsize - ++bitcpy)); - mode = 2; - - if (bitcpy == winsize) { - /* ok window is filled so square as required and multiply */ - /* square first */ - for (x = 0; x < winsize; x++) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, &mu)) != MP_OKAY) { - goto LBL_RES; - } - } - - /* then multiply */ - if ((err = mp_mul (&res, &M[bitbuf], &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, &mu)) != MP_OKAY) { - goto LBL_RES; - } - - /* empty window and reset */ - bitcpy = 0; - bitbuf = 0; - mode = 1; - } - } - - /* if bits remain then square/multiply */ - if (mode == 2 && bitcpy > 0) { - /* square then multiply if the bit is set */ - for (x = 0; x < bitcpy; x++) { - if ((err = mp_sqr (&res, &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, &mu)) != MP_OKAY) { - goto LBL_RES; - } - - bitbuf <<= 1; - if ((bitbuf & (1 << winsize)) != 0) { - /* then multiply */ - if ((err = mp_mul (&res, &M[1], &res)) != MP_OKAY) { - goto LBL_RES; - } - if ((err = redux (&res, P, &mu)) != MP_OKAY) { - goto LBL_RES; - } - } - } - } - - mp_exch (&res, Y); - err = MP_OKAY; -LBL_RES:mp_clear (&res); -LBL_MU:mp_clear (&mu); -LBL_M: - mp_clear(&M[1]); - for (x = 1<<(winsize-1); x < (1 << winsize); x++) { - mp_clear (&M[x]); - } - return err; -} -#endif - -/* End: bn_s_mp_exptmod.c */ - -/* Start: bn_s_mp_mul_digs.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_MUL_DIGS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* multiplies |a| * |b| and only computes upto digs digits of result - * HAC pp. 595, Algorithm 14.12 Modified so you can control how - * many digits of output are created. - */ -int s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs) -{ - mp_int t; - int res, pa, pb, ix, iy; - mp_digit u; - mp_word r; - mp_digit tmpx, *tmpt, *tmpy; - - /* can we use the fast multiplier? */ - if (((digs) < MP_WARRAY) && - MIN (a->used, b->used) < - (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { - return fast_s_mp_mul_digs (a, b, c, digs); - } - - if ((res = mp_init_size (&t, digs)) != MP_OKAY) { - return res; - } - t.used = digs; - - /* compute the digits of the product directly */ - pa = a->used; - for (ix = 0; ix < pa; ix++) { - /* set the carry to zero */ - u = 0; - - /* limit ourselves to making digs digits of output */ - pb = MIN (b->used, digs - ix); - - /* setup some aliases */ - /* copy of the digit from a used within the nested loop */ - tmpx = a->dp[ix]; - - /* an alias for the destination shifted ix places */ - tmpt = t.dp + ix; - - /* an alias for the digits of b */ - tmpy = b->dp; - - /* compute the columns of the output and propagate the carry */ - for (iy = 0; iy < pb; iy++) { - /* compute the column as a mp_word */ - r = ((mp_word)*tmpt) + - ((mp_word)tmpx) * ((mp_word)*tmpy++) + - ((mp_word) u); - - /* the new column is the lower part of the result */ - *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); - - /* get the carry word from the result */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - /* set carry if it is placed below digs */ - if (ix + iy < digs) { - *tmpt = u; - } - } - - mp_clamp (&t); - mp_exch (&t, c); - - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_s_mp_mul_digs.c */ - -/* Start: bn_s_mp_mul_high_digs.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_MUL_HIGH_DIGS_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* multiplies |a| * |b| and does not compute the lower digs digits - * [meant to get the higher part of the product] - */ -int -s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs) -{ - mp_int t; - int res, pa, pb, ix, iy; - mp_digit u; - mp_word r; - mp_digit tmpx, *tmpt, *tmpy; - - /* can we use the fast multiplier? */ -#ifdef BN_FAST_S_MP_MUL_HIGH_DIGS_C - if (((a->used + b->used + 1) < MP_WARRAY) - && MIN (a->used, b->used) < (1 << ((CHAR_BIT * sizeof (mp_word)) - (2 * DIGIT_BIT)))) { - return fast_s_mp_mul_high_digs (a, b, c, digs); - } -#endif - - if ((res = mp_init_size (&t, a->used + b->used + 1)) != MP_OKAY) { - return res; - } - t.used = a->used + b->used + 1; - - pa = a->used; - pb = b->used; - for (ix = 0; ix < pa; ix++) { - /* clear the carry */ - u = 0; - - /* left hand side of A[ix] * B[iy] */ - tmpx = a->dp[ix]; - - /* alias to the address of where the digits will be stored */ - tmpt = &(t.dp[digs]); - - /* alias for where to read the right hand side from */ - tmpy = b->dp + (digs - ix); - - for (iy = digs - ix; iy < pb; iy++) { - /* calculate the double precision result */ - r = ((mp_word)*tmpt) + - ((mp_word)tmpx) * ((mp_word)*tmpy++) + - ((mp_word) u); - - /* get the lower part */ - *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); - - /* carry the carry */ - u = (mp_digit) (r >> ((mp_word) DIGIT_BIT)); - } - *tmpt = u; - } - mp_clamp (&t); - mp_exch (&t, c); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_s_mp_mul_high_digs.c */ - -/* Start: bn_s_mp_sqr.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_SQR_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */ -int s_mp_sqr (mp_int * a, mp_int * b) -{ - mp_int t; - int res, ix, iy, pa; - mp_word r; - mp_digit u, tmpx, *tmpt; - - pa = a->used; - if ((res = mp_init_size (&t, 2*pa + 1)) != MP_OKAY) { - return res; - } - - /* default used is maximum possible size */ - t.used = 2*pa + 1; - - for (ix = 0; ix < pa; ix++) { - /* first calculate the digit at 2*ix */ - /* calculate double precision result */ - r = ((mp_word) t.dp[2*ix]) + - ((mp_word)a->dp[ix])*((mp_word)a->dp[ix]); - - /* store lower part in result */ - t.dp[ix+ix] = (mp_digit) (r & ((mp_word) MP_MASK)); - - /* get the carry */ - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); - - /* left hand side of A[ix] * A[iy] */ - tmpx = a->dp[ix]; - - /* alias for where to store the results */ - tmpt = t.dp + (2*ix + 1); - - for (iy = ix + 1; iy < pa; iy++) { - /* first calculate the product */ - r = ((mp_word)tmpx) * ((mp_word)a->dp[iy]); - - /* now calculate the double precision result, note we use - * addition instead of *2 since it's easier to optimize - */ - r = ((mp_word) *tmpt) + r + r + ((mp_word) u); - - /* store lower part */ - *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); - - /* get carry */ - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); - } - /* propagate upwards */ - while (u != ((mp_digit) 0)) { - r = ((mp_word) *tmpt) + ((mp_word) u); - *tmpt++ = (mp_digit) (r & ((mp_word) MP_MASK)); - u = (mp_digit)(r >> ((mp_word) DIGIT_BIT)); - } - } - - mp_clamp (&t); - mp_exch (&t, b); - mp_clear (&t); - return MP_OKAY; -} -#endif - -/* End: bn_s_mp_sqr.c */ - -/* Start: bn_s_mp_sub.c */ -#include <ltc_tommath.h> -#ifdef BN_S_MP_SUB_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */ -int -s_mp_sub (mp_int * a, mp_int * b, mp_int * c) -{ - int olduse, res, min, max; - - /* find sizes */ - min = b->used; - max = a->used; - - /* init result */ - if (c->alloc < max) { - if ((res = mp_grow (c, max)) != MP_OKAY) { - return res; - } - } - olduse = c->used; - c->used = max; - - { - register mp_digit u, *tmpa, *tmpb, *tmpc; - register int i; - - /* alias for digit pointers */ - tmpa = a->dp; - tmpb = b->dp; - tmpc = c->dp; - - /* set carry to zero */ - u = 0; - for (i = 0; i < min; i++) { - /* T[i] = A[i] - B[i] - U */ - *tmpc = *tmpa++ - *tmpb++ - u; - - /* U = carry bit of T[i] - * Note this saves performing an AND operation since - * if a carry does occur it will propagate all the way to the - * MSB. As a result a single shift is enough to get the carry - */ - u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); - - /* Clear carry from T[i] */ - *tmpc++ &= MP_MASK; - } - - /* now copy higher words if any, e.g. if A has more digits than B */ - for (; i < max; i++) { - /* T[i] = A[i] - U */ - *tmpc = *tmpa++ - u; - - /* U = carry bit of T[i] */ - u = *tmpc >> ((mp_digit)(CHAR_BIT * sizeof (mp_digit) - 1)); - - /* Clear carry from T[i] */ - *tmpc++ &= MP_MASK; - } - - /* clear digits above used (since we may not have grown result above) */ - for (i = c->used; i < olduse; i++) { - *tmpc++ = 0; - } - } - - mp_clamp (c); - return MP_OKAY; -} - -#endif - -/* End: bn_s_mp_sub.c */ - -/* Start: bncore.c */ -#include <ltc_tommath.h> -#ifdef BNCORE_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * The library is free for all purposes without any express - * guarantee it works. - * - * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.org - */ - -/* Known optimal configurations - - CPU /Compiler /MUL CUTOFF/SQR CUTOFF -------------------------------------------------------------- - Intel P4 Northwood /GCC v3.4.1 / 88/ 128/LTM 0.32 ;-) - AMD Athlon64 /GCC v3.4.4 / 74/ 124/LTM 0.34 - -*/ - -int KARATSUBA_MUL_CUTOFF = 74, /* Min. number of digits before Karatsuba multiplication is used. */ - KARATSUBA_SQR_CUTOFF = 124, /* Min. number of digits before Karatsuba squaring is used. */ - - TOOM_MUL_CUTOFF = 350, /* no optimal values of these are known yet so set em high */ - TOOM_SQR_CUTOFF = 400; -#endif - -/* End: bncore.c */ - - -/* EOF */ - -/* $Source: /cvs/libtom/libtomcrypt/src/misc/mpi/mpi.c,v $ */ -/* $Revision: 1.5 $ */ -/* $Date: 2005/05/05 14:35:59 $ */ -- GitLab