linux/crypto/api.c
<<
n> 2" /spa3.1 2" /form.1 2" a n> 2" href="../linux+vn> 2" img src="../.static/gfx/right.png" alt=">>">n> /spa3.1n> spa3 class="lxr_search">n> n> 2" in8ti114.7<2pti1titon> Ni11".1<2ptiv6 26on> <2pti16 2ov3.12.13<2pti1n " nam3<2navtargeti1" /spa3 <2pti16 2ov3.12.13<2text" nam3<2> 2" inid<2> 2" i<2pti16 butt 22.13<2ton> ">S 2" n> 2" imgch" method="post" onsubmit=ptics"img src=atic/g+ptics?11".1<=t=">>">"../.stonclickNi11".1<2ajax=ptics( <2pti16Pticsc">n> search" meth./.stn> divth./.stn>arch(this);">ajax+*in8ti114.7<2pti1titon> Ni11".1<2false <2p 2ov3.12.13<2pti1n " nam3<2ajax=lookupinid<2ajax=lookupin" /spa3 <2./.stn> 2" im2./.stn>divt" onsubheadingbott m3="+divth./.s"+divth./.s .stn>divtid<2> 2" _results"t" onsub> 2" _results"c">th./.stn> divth >divtid<2conten ">h >divtid<2file_conten s"istn1> se="post" onsubcommen ">/*ch" methstn2> se="post" onsubcommen "> * Scatterlist C=">graphic API.ch" methstn3> se="post" onsubcommen "> *ch" methstn4> se="post" onsubcommen "> * Copy_sear (c) 2002 Jam3s Morris <jmorris@intercode.com.auc="vch" methstn5> se="post" onsubcommen "> * Copy_sear (c) 2002 David S. Miller (davem@redhat.com)ch" methstn6> se="post" onsubcommen "> * Copy_sear (c) 2005 Herbert Xu <herbert@gondor.aposa.org.auc="vch" methstn7> se="post" onsubcommen "> *ch" methstn8> se="post" onsubcommen "> * Poris);s derived from C=">>, by Alexander Kjeldaas <astor@fast.noc="vch" methstn9> se="post" onsubcommen "> * and Nettle, by Niels Möller.ch" methston vse="post" onsubcommen "> *ch" methst11> se="post" onsubcommen "> * T prtgram free software; you costredistribute it and/or modify itch" methst12> se="post" onsubcommen "> * under the terms of the GNU General Public License as published by the Freech" methst13> se="post" onsubcommen "> * Software Foundais);; either vers> 22 of the License, or (at your href=)ch" methst14> se="post" onsubcommen "> * any later vers> .ch" methst15> se="post" onsubcommen "> *ch" methst16> se="post" onsubcommen "> */ch" methst17> sehst18> se#include <right/err.h> sec="vhst19> se#include <right/errno.h> sec="vhst20> se#include <right/kernel.h> sec="vhst21> se#include <right/kmod.h> sec="vhst22> se#include <right/module.h> sec="vhst23> se#include <right/param.h> sec="vhst24> se#include <right/sched.h> sec="vhst25> se#include <right/slab.h> sec="vhst26> se#include <right/string.h> sec="vhst27> se#include "internal.h> secquot;hst28> sehst29> se=c=atic/g+code=LIST_HEAD"t" onsub>ref">LIST_HEAD> se(=c=atic/g+code=t=">_alg_list"t" onsub>ref">t=">_alg_list> se);hst30> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_alg_list"t" onsub>ref">t=">_alg_list> se);hst31> se=c=atic/g+code=DECLARE_RWSEM"t" onsub>ref">DECLARE_RWSEM> se(=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hst32> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hst33> sehst34> se=c=atic/g+code=BLOCKING_NOTIFIER_HEAD"t" onsub>ref">BLOCKING_NOTIFIER_HEAD> se(=c=atic/g+code=t=">_chain"t" onsub>ref">t=">_chain> se);hst35> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_chain"t" onsub>ref">t=">_chain> se);hst36> sehst37> se class =c=atic/g+code=inminein" onsub>ref">inmine> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_alg_geti1" onsub>ref">t=">_alg_get> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hst38> se{hst39> se =c=atic/g+code=atomic_inc"t" onsub>ref">atomic_inc> se(&=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_ticcnti1" onsub>ref">t=a_ticcnt> se);hst40> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hst41> se}hst42> sehst43> se cruct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_mod_geti1" onsub>ref">t=">_mod_get> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hst44> se{hst45> se 11".1<2=c=atic/g+code=try_module_geti1" onsub>ref">try_module_get> se(=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_modulei1" onsub>ref">t=a_module> se) ? =c=atic/g+code=t=">_alg_geti1" onsub>ref">t=">_alg_get> se(=c=atic/g+code=alg"t" onsub>ref">alg> se) : =c=atic/g+code=NULL"t" onsub>ref">NULL> se;hst46> se}hst47> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_mod_geti1" onsub>ref">t=">_mod_get> se);hst48> sehst49> sevoid =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hst50> se{hst51> se struct =c=atic/g+code=modulei1" onsub>ref">module> se *=c=atic/g+code=modulei1" onsub>ref">module> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_modulei1" onsub>ref">t=a_module> se;hst52> sehst53> se =c=atic/g+code=t=">_alg_puti1" onsub>ref">t=">_alg_put> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hst54> se =c=atic/g+code=module_puti1" onsub>ref">module_put> se(=c=atic/g+code=modulei1" onsub>ref">module> se);hst55> se}hst56> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se);hst57> sehst58> se class =c=atic/g+code=inminein" onsub>ref">inmine> se int =c=atic/g+code=t=">_is_test_larvali1" onsub>ref">t=">_is_test_larval> se(struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se)hst59> se{hst60> se 11".1<2=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_driver_nam3i1" onsub>ref">t=a_driver_nam3> se[0];hst61> se}hst62> sehst63> se class struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=__t=">_alg_lookupin" onsub>ref">__t=">_alg_lookup> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se,hst64> se =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hst65> se{hst66> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=q"t" onsub>ref">q> se, *=c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=NULL"t" onsub>ref">NULL> se;hst67> se int =c=atic/g+code=best"t" onsub>ref">best> se =2-2;hst68> sehst69> se =c=atic/g+code=list_for_each_entryi1" onsub>ref">list_for_each_entry> se(=c=atic/g+code=q"t" onsub>ref">q> se, &=c=atic/g+code=t=">_alg_list"t" onsub>ref">t=">_alg_list> se, =c=atic/g+code=t=a_list"t" onsub>ref">t=a_list> se) {hst70> se int =c=atic/g+code=exact"t" onsub>ref">exact> se, =c=atic/g+code=fuzzyi1" onsub>ref">fuzzy> se;hst71> sehst72> se if (=c=atic/g+code=t=">_is_moribundi1" onsub>ref">t=">_is_moribund> se(=c=atic/g+code=q"t" onsub>ref">q> se))hst73> se continue;hst74> sehst75> se if ((=c=atic/g+code=q"t" onsub>ref">q> se-c="vcc=atic/g+code=t=a_flags"t" onsub>ref">t=a_flags> se ^2=c=atic/g+code=typ3i1" onsub>ref">typ3> se) &2=c=atic/g+code=maski1" onsub>ref">mask> se)hst76> se continue;hst77> sehst78> se if (=c=atic/g+code=t=">_is_larvali1" onsub>ref">t=">_is_larval> se(=c=atic/g+code=q"t" onsub>ref">q> se) &&hst79> se !=c=atic/g+code=t=">_is_test_larvali1" onsub>ref">t=">_is_test_larval> se((struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *)=c=atic/g+code=q"t" onsub>ref">q> se) &&hst80> se ((struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *)=c=atic/g+code=q"t" onsub>ref">q> se)-c="vcc=atic/g+code=maski1" onsub>ref">mask> se !=2=c=atic/g+code=maski1" onsub>ref">mask> se)hst81> se continue;hst82> sehst83> se =c=atic/g+code=exact"t" onsub>ref">exact> se =2!=c=atic/g+code=strcmpin" onsub>ref">strcmp> se(=c=atic/g+code=q"t" onsub>ref">q> se-c="vcc=atic/g+code=t=a_driver_nam3i1" onsub>ref">t=a_driver_nam3> se, =c=atic/g+code=nam3i1" onsub>ref">nam3> se);hst84> se =c=atic/g+code=fuzzyi1" onsub>ref">fuzzy> se =2!=c=atic/g+code=strcmpin" onsub>ref">strcmp> se(=c=atic/g+code=q"t" onsub>ref">q> se-c="vcc=atic/g+code=t=a_nam3i1" onsub>ref">t=a_nam3> se, =c=atic/g+code=nam3i1" onsub>ref">nam3> se);hst85> se if (!=c=atic/g+code=exact"t" onsub>ref">exact> se && !(=c=atic/g+code=fuzzyi1" onsub>ref">fuzzy> se && =c=atic/g+code=q"t" onsub>ref">q> se-c="vcc=atic/g+code=t=a_priorityi1" onsub>ref">t=a_priority> se &="v =c=atic/g+code=best"t" onsub>ref">best> se))hst86> se continue;hst87> sehst88> se if (=c=atic/g+code=unlikelyi1" onsub>ref">unlikely> se(!=c=atic/g+code=t=">_mod_geti1" onsub>ref">t=">_mod_get> se(=c=atic/g+code=q"t" onsub>ref">q> se)))hst89> se continue;hst90> sehst91> se =c=atic/g+code=best"t" onsub>ref">best> se =2=c=atic/g+code=q"t" onsub>ref">q> se-c="vcc=atic/g+code=t=a_priorityi1" onsub>ref">t=a_priority> se;hst92> se if (=c=atic/g+code=alg"t" onsub>ref">alg> se)hst93> se =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hst94> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=q"t" onsub>ref">q> se;hst95> sehst96> se if (=c=atic/g+code=exact"t" onsub>ref">exact> se)hst97> se break;hst98> se }hst99> sehs100> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs101> se}hs102> sehs103> se class void =c=atic/g+code=t=">_larval_destroyi1" onsub>ref">t=">_larval_destroy> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hs104> se{hs105> se struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se =2(void *)=c=atic/g+code=alg"t" onsub>ref">alg> se;hs106> sehs107> se =c=atic/g+code=BUG_ON"t" onsub>ref">BUG_ON> se(!=c=atic/g+code=t=">_is_larvali1" onsub>ref">t=">_is_larval> se(=c=atic/g+code=alg"t" onsub>ref">alg> se));hs108> se if (=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=adult"t" onsub>ref">adult> se)hs109> se =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=adult"t" onsub>ref">adult> se);hs110> se =c=atic/g+code=kfree"t" onsub>ref">kfree> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs111> se}hs112> sehs113> se cruct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=t=">_larval_alloc"t" onsub>ref">t=">_larval_alloc> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs114> se{hs115> se struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se;hs116> sehs117> se =c=atic/g+code=larvali1" onsub>ref">larval> se =2=c=atic/g+code=kzalloc"t" onsub>ref">kzalloc> se(sizeof(*=c=atic/g+code=larvali1" onsub>ref">larval> se), =c=atic/g+code=GFP_KERNEL"t" onsub>ref">GFP_KERNEL> se);hs118> se if (!=c=atic/g+code=larvali1" onsub>ref">larval> se)hs119> se 11".1<2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=ENOMEM"t" onsub>ref">ENOMEM> se);hs120> sehs121> se =c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=maski1" onsub>ref">mask> se =2=c=atic/g+code=maski1" onsub>ref">mask> se;hs122> se =c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_flags"t" onsub>ref">t=a_flags> se =2=c=atic/g+code=CRYPTO_ALG_LARVAL"t" onsub>ref">CRYPTO_ALG_LARVAL> se |2=c=atic/g+code=typ3i1" onsub>ref">typ3> se;hs123> se =c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_priorityi1" onsub>ref">t=a_priority> se = -1;hs124> se =c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_destroyi1" onsub>ref">t=a_destroy> se =2=c=atic/g+code=t=">_larval_destroyi1" onsub>ref">t=">_larval_destroy> se;hs125> sehs126> se =c=atic/g+code=strlcpyi1" onsub>ref">strlcpy> se(=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_nam3i1" onsub>ref">t=a_nam3> se, =c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=CRYPTO_MAX_ALG_NAME"t" onsub>ref">CRYPTO_MAX_ALG_NAME> se);hs127> se =c=atic/g+code=init_compleref="t" onsub>ref">init_compleref=> se(&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=compleref="t" onsub>ref">compleref=> se);hs128> sehs129> se 11".1<2=c=atic/g+code=larvali1" onsub>ref">larval> se;hs130> se}hs131> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_larval_alloc"t" onsub>ref">t=">_larval_alloc> se);hs132> sehs133> se class struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_larval_addi1" onsub>ref">t=">_larval_add> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se,hs134> se =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs135> se{hs136> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;hs137> se struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se;hs138> sehs139> se =c=atic/g+code=larvali1" onsub>ref">larval> se =2=c=atic/g+code=t=">_larval_alloc"t" onsub>ref">t=">_larval_alloc> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs140> se if (=c=atic/g+code=IS_ERRi1" onsub>ref">IS_ERR> se(=c=atic/g+code=larvali1" onsub>ref">larval> se))hs141> se 11".1<2=c=atic/g+code=ERR_CASTi1" onsub>ref">ERR_CAST> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs142> sehs143> se =c=atic/g+code=atomic_seti1" onsub>ref">atomic_set> se(&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se.cc=atic/g+code=t=a_riccnti1" onsub>ref">t=a_ticcnt> se, 2);hs144> sehs145> se cc=atic/g+code=down_writ3i1" onsub>ref">down_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs146> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=__t=">_alg_lookupin" onsub>ref">__t=">_alg_lookup> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs147> se if (!=c=atic/g+code=alg"t" onsub>ref">alg> se) {hs148> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se;hs149> se =c=atic/g+code=list_addi1" onsub>ref">list_add> se(&=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_list"t" onsub>ref">t=a_list> se, &=c=atic/g+code=t=">_alg_list"t" onsub>ref">t=">_alg_list> se);hs150> se }hs151> se =c=atic/g+code=up_writ3i1" onsub>ref">up_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs152> sehs153> se if (=c=atic/g+code=alg"t" onsub>ref">alg> se !=2&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se)hs154> se =c=atic/g+code=kfree"t" onsub>ref">kfree> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs155> sehs156> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs157> se}hs158> sehs159> sevoid =c=atic/g+code=t=">_larval_killi1" onsub>ref">t=">_larval_kill> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hs160> se{hs161> se struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se =2(void *)=c=atic/g+code=alg"t" onsub>ref">alg> se;hs162> sehs163> se =c=atic/g+code=down_writ3i1" onsub>ref">down_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs164> se =c=atic/g+code=list_deli1" onsub>ref">list_del> se(&=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_list"t" onsub>ref">t=a_list> se);hs165> se cc=atic/g+code=up_writ3i1" onsub>ref">up_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs166> se =c=atic/g+code=complere_all"t" onsub>ref">complere_all> se(&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=compleref="t" onsub>ref">compleref=> se);hs167> se =c=atic/g+code=t=">_alg_puti1" onsub>ref">t=">_alg_put> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs168> se}hs169> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_larval_killi1" onsub>ref">t=">_larval_kill> se);hs170> sehs171> se class struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_larval_waiti1" onsub>ref">t=">_larval_wait> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hs172> se{hs173> se struct =c=atic/g+code=t=">_larvali1" onsub>ref">t=">_larval> se *=c=atic/g+code=larvali1" onsub>ref">larval> se =2(void *)=c=atic/g+code=alg"t" onsub>ref">alg> se;hs174> se long =c=atic/g+code=timeouti1" onsub>ref">timeout> se;hs175> sehs176> se =c=atic/g+code=timeouti1" onsub>ref">timeout> se =2=c=atic/g+code=wait_for_compleref=_interruptible_timeouti1" onsub>ref">wait_for_compleref=_interruptible_timeout> se(hs177> se &=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=compleref="t" onsub>ref">compleref=> se, 60 *2=c=atic/g+code=HZ"t" onsub>ref">HZ> se);hs178> sehs179> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=adult"t" onsub>ref">adult> se;hs180> se if (=c=atic/g+code=timeouti1" onsub>ref">timeout> se < 0)hs181> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=EINTRi1" onsub>ref">EINTR> se);hs182> se else if (!=c=atic/g+code=timeouti1" onsub>ref">timeout> se)hs183> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=ETIMEDOUTi1" onsub>ref">ETIMEDOUT> se);hs184> se else if (!=c=atic/g+code=alg"t" onsub>ref">alg> se)hs185> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=ENOENTi1" onsub>ref">ENOENT> se);hs186> se else if (=c=atic/g+code=t=">_is_test_larvali1" onsub>ref">t=">_is_test_larval> se(=c=atic/g+code=larvali1" onsub>ref">larval> se) &&hs187> se !(=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_flags"t" onsub>ref">t=a_flags> se & =c=atic/g+code=CRYPTO_ALG_TESTED"t" onsub>ref">CRYPTO_ALG_TESTED> se))hs188> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=EAGAIN"t" onsub>ref">EAGAIN> se);hs189> se else if (!=c=atic/g+code=t=">_mod_geti1" onsub>ref">t=">_mod_get> se(=c=atic/g+code=alg"t" onsub>ref">alg> se))hs190> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=EAGAIN"t" onsub>ref">EAGAIN> se);hs191> se =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(&=c=atic/g+code=larvali1" onsub>ref">larval> se-c="vcc=atic/g+code=alg"t" onsub>ref">alg> se);hs192> sehs193> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs194> se}hs195> sehs196> sestruct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_alg_lookupin" onsub>ref">t=">_alg_lookup> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs197> se{hs198> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;hs199> sehs200> se =c=atic/g+code=down_readi1" onsub>ref">down_read> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs201> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=__t=">_alg_lookupin" onsub>ref">__t=">_alg_lookup> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs202> se =c=atic/g+code=up_readi1" onsub>ref">up_read> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs203> sehs204> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs205> se}hs206> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_alg_lookupin" onsub>ref">t=">_alg_lookup> se);hs207> sehs208> sestruct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_larval_lookupin" onsub>ref">t=">_larval_lookup> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs209> se{hs210> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;hs211> sehs212> se if (!=c=atic/g+code=nam3i1" onsub>ref">nam3> se)hs213> se 11".1<2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=ENOENTi1" onsub>ref">ENOENT> se);hs214> sehs215> se cc=atic/g+code=maski1" onsub>ref">mask> se &= ~(=c=atic/g+code=CRYPTO_ALG_LARVAL"t" onsub>ref">CRYPTO_ALG_LARVAL> se |2=c=atic/g+code=CRYPTO_ALG_DEAD"t" onsub>ref">CRYPTO_ALG_DEAD> se);hs216> se =c=atic/g+code=typ3i1" onsub>ref">typ3> se &= cc=atic/g+code=maski1" onsub>ref">mask> se;hs217> sehs218> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=t=">_alg_lookupin" onsub>ref">t=">_alg_lookup> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs219> se if (!=c=atic/g+code=alg"t" onsub>ref">alg> se) {hs220> se =c=atic/g+code=request_modulei1" onsub>ref">request_module> se(=span1" onsub>tring">"%s"ref">nam3> se);hs221> sehs222> se if (!((=c=atic/g+code=typ3i1" onsub>ref">typ3> se ^2=c=atic/g+code=CRYPTO_ALG_NEED_FALLBACK"t" onsub>ref">CRYPTO_ALG_NEED_FALLBACK> se) & cc=atic/g+code=maski1" onsub>ref">mask> se &hs223> se =c=atic/g+code=CRYPTO_ALG_NEED_FALLBACK"t" onsub>ref">CRYPTO_ALG_NEED_FALLBACK> se))hs224> se =c=atic/g+code=request_modulei1" onsub>ref">request_module> se(=span1" onsub>tring">"%s-all"ref">nam3> se);hs225> sehs226> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=t=">_alg_lookupin" onsub>ref">t=">_alg_lookup> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs227> se }hs228> sehs229> se if (=c=atic/g+code=alg"t" onsub>ref">alg> se)hs230> se 11".1<2=c=atic/g+code=t=">_is_larvali1" onsub>ref">t=">_is_larval> se(=c=atic/g+code=alg"t" onsub>ref">alg> se) ? =c=atic/g+code=t=">_larval_waiti1" onsub>ref">t=">_larval_wait> se(=c=atic/g+code=alg"t" onsub>ref">alg> se) : =c=atic/g+code=alg"t" onsub>ref">alg> se;hs231> sehs232> se 11".1<2=c=atic/g+code=t=">_larval_addi1" onsub>ref">t=">_larval_add> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs233> se}hs234> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_larval_lookupin" onsub>ref">t=">_larval_lookup> se);hs235> sehs236> seint =c=atic/g+code=t=">_probing_notifyi1" onsub>ref">t=">_probing_notify> se(unsigned long =c=atic/g+code=vali1" onsub>ref">val> se, void *=c=atic/g+code=vi1" onsub>ref">v> se)hs237> se{hs238> se int =c=atic/g+code=oki1" onsub>ref">ok> se;hs239> sehs240> se =c=atic/g+code=oki1" onsub>ref">ok> se =2=c=atic/g+code=blocking_notifier_call_chai="t" onsub>ref">blocking_notifier_call_chai=> se(&=c=atic/g+code=t=">_chai="t" onsub>ref">t=">_chai=> se, =c=atic/g+code=vali1" onsub>ref">val> se, =c=atic/g+code=vi1" onsub>ref">v> se);hs241> se if (=c=atic/g+code=oki1" onsub>ref">ok> se ==2=c=atic/g+code=NOTIFY_DONEi1" onsub>ref">NOTIFY_DONE> se) {hs242> se =c=atic/g+code=request_modulei1" onsub>ref">request_module> se(=span1" onsub>tring">"t=">mgr"s243> se =c=atic/g+code=oki1" onsub>ref">ok> se =2=c=atic/g+code=blocking_notifier_call_chai="t" onsub>ref">blocking_notifier_call_chai=> se(&=c=atic/g+code=t=">_chai="t" onsub>ref">t=">_chai=> se, =c=atic/g+code=vali1" onsub>ref">val> se, =c=atic/g+code=vi1" onsub>ref">v> se);hs244> se }hs245> sehs246> se 11".1<2=c=atic/g+code=oki1" onsub>ref">ok> se;hs247> se}hs248> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_probing_notifyi1" onsub>ref">t=">_probing_notify> se);hs249> sehs250> sestruct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=t=">_alg_mod_lookupin" onsub>ref">t=">_alg_mod_lookup> se(const char *=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs251> se{hs252> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;hs253> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=larvali1" onsub>ref">larval> se;hs254> se int =c=atic/g+code=oki1" onsub>ref">ok> se;hs255> sehs256> se if (!((=c=atic/g+code=typ3i1" onsub>ref">typ3> se |2=c=atic/g+code=maski1" onsub>ref">mask> se) & =c=atic/g+code=CRYPTO_ALG_TESTED"t" onsub>ref">CRYPTO_ALG_TESTED> se)) {hs257> se =c=atic/g+code=typ3i1" onsub>ref">typ3> se |=2=c=atic/g+code=CRYPTO_ALG_TESTED"t" onsub>ref">CRYPTO_ALG_TESTED> se;hs258> se =c=atic/g+code=maski1" onsub>ref">mask> se |=2=c=atic/g+code=CRYPTO_ALG_TESTED"t" onsub>ref">CRYPTO_ALG_TESTED> se;hs259> se }hs260> sehs261> se =c=atic/g+code=larvali1" onsub>ref">larval> se =2=c=atic/g+code=t=">_larval_lookupin" onsub>ref">t=">_larval_lookup> se(=c=atic/g+code=nam3i1" onsub>ref">nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs262> se if (=c=atic/g+code=IS_ERRi1" onsub>ref">IS_ERR> se(=c=atic/g+code=larvali1" onsub>ref">larval> se) || !=c=atic/g+code=t=">_is_larvali1" onsub>ref">t=">_is_larval> se(=c=atic/g+code=larvali1" onsub>ref">larval> se))hs263> se 11".1<2=c=atic/g+code=larvali1" onsub>ref">larval> se;hs264> sehs265> se cc=atic/g+code=oki1" onsub>ref">ok> se =2=c=atic/g+code=t=">_probing_notifyi1" onsub>ref">t=">_probing_notify> se(=c=atic/g+code=CRYPTO_MSG_ALG_REQUESTi1" onsub>ref">CRYPTO_MSG_ALG_REQUEST> se, =c=atic/g+code=larvali1" onsub>ref">larval> se);hs266> sehs267> se if (=c=atic/g+code=oki1" onsub>ref">ok> se ==2=c=atic/g+code=NOTIFY_STOPi1" onsub>ref">NOTIFY_STOP> se)hs268> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=t=">_larval_waiti1" onsub>ref">t=">_larval_wait> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs269> se else {hs270> se =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs271> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(-=c=atic/g+code=ENOENTi1" onsub>ref">ENOENT> se);hs272> se }hs273> se =c=atic/g+code=t=">_larval_killi1" onsub>ref">t=">_larval_kill> se(=c=atic/g+code=larvali1" onsub>ref">larval> se);hs274> se 11".1<2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs275> se}hs276> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_alg_mod_lookupin" onsub>ref">t=">_alg_mod_lookup> se);hs277> sehs278> sestlass int =c=atic/g+code=t=">_init_ops"t" onsub>ref">t=">_init_ops> se(struct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs279> se{hs280> se const struct =c=atic/g+code=t=">_typ3i1" onsub>ref">t=">_typ3> se *=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se =2=c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=__t=t_alg"t" onsub>ref">__t=t_alg> se-c="vcc=atic/g+code=t=a_typ3i1" onsub>ref">t=a_typ3> se;hs281> sehs282> se if (=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se)hs283> se 11".1<2=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se-c="vcc=atic/g+code=initi1" onsub>ref">init> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs284> sehs285> se switch (=c=atic/g+code=t=">_tfm_alg_typ3i1" onsub>ref">t=">_tfm_alg_typ3> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se)) {hs286> se case =c=atic/g+code=CRYPTO_ALG_TYPE_CIPHERi1" onsub>ref">CRYPTO_ALG_TYPE_CIPHER> se:hs287> se 11".1<2=c=atic/g+code=t=">_init_cipher_ops"t" onsub>ref">t=">_init_cipher_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs288> sehs289> se case =c=atic/g+code=CRYPTO_ALG_TYPE_COMPRESSi1" onsub>ref">CRYPTO_ALG_TYPE_COMPRESS> se:hs290> se 11".1<2=c=atic/g+code=t=">_init_compress_ops"t" onsub>ref">t=">_init_compress_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs291> sehs292> se default:hs293> se break;hs294> se }hs295> sehs296> se =c=atic/g+code=BUG"t" onsub>ref">BUG> se();hs297> se 11".1<2-=c=atic/g+code=EINVAL"t" onsub>ref">EINVAL> se;hs298> se}hs299> sehs300> sestlass void =c=atic/g+code=t=">_exit_ops"t" onsub>ref">t=">_exit_ops> se(struct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se)hs301> se{hs302> se const struct =c=atic/g+code=t=">_typ3i1" onsub>ref">t=">_typ3> se *=c=atic/g+code=typ3i1" onsub>ref">typ3> se =2=c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=__t=t_alg"t" onsub>ref">__t=t_alg> se-c="vcc=atic/g+code=t=a_typ3i1" onsub>ref">t=a_typ3> se;hs303> sehs304> se if (=c=atic/g+code=typ3i1" onsub>ref">typ3> se) {hs305> se if (=c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=exit"t" onsub>ref">exit> se)hs306> se =c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=exit"t" onsub>ref">exit> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs307> se 11".1<;hs308> se }hs309> sehs310> se switch (=c=atic/g+code=t=">_tfm_alg_typ3i1" onsub>ref">t=">_tfm_alg_typ3> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se)) {hs311> se case =c=atic/g+code=CRYPTO_ALG_TYPE_CIPHERi1" onsub>ref">CRYPTO_ALG_TYPE_CIPHER> se:hs312> se =c=atic/g+code=t=">_exit_cipher_ops"t" onsub>ref">t=">_exit_cipher_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs313> se break;hs314> sehs315> se case =c=atic/g+code=CRYPTO_ALG_TYPE_COMPRESSi1" onsub>ref">CRYPTO_ALG_TYPE_COMPRESS> se:hs316> se =c=atic/g+code=t=">_exit_compress_ops"t" onsub>ref">t=">_exit_compress_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs317> se break;hs318> sehs319> se default:hs320> se =c=atic/g+code=BUG"t" onsub>ref">BUG> se();hs321> se }hs322> se}hs323> sehs324> sestlass unsigned int =c=atic/g+code=t=">_ctxsiz3i1" onsub>ref">t=">_ctxsiz3> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs325> se{hs326> se const struct =c=atic/g+code=t=">_typ3i1" onsub>ref">t=">_typ3> se *=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_typ3i1" onsub>ref">t=a_typ3> se;hs327> se unsigned int =c=atic/g+code=le="t" onsub>ref">le=> se;hs328> sehs329> se =c=atic/g+code=le="t" onsub>ref">le=> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_alignmaski1" onsub>ref">t=a_alignmask> se & ~(=c=atic/g+code=t=">_tfm_ctx_alignmenti1" onsub>ref">t=">_tfm_ctx_alignment> se() - 1);hs330> se if (=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se)hs331> se 11".1<2=c=atic/g+code=le="t" onsub>ref">le=> se +2=c=atic/g+code=typ3_obji1" onsub>ref">typ3_obj> se-c="vcc=atic/g+code=ctxsiz3i1" onsub>ref">ttxsiz3> se(=c=atic/g+code=alg"t" onsub>ref">alg> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs332> sehs333> se switch (=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_flags"t" onsub>ref">t=a_flags> se & =c=atic/g+code=CRYPTO_ALG_TYPE_MASK"t" onsub>ref">CRYPTO_ALG_TYPE_MASK> se) {hs334> se default:hs335> se =c=atic/g+code=BUG"t" onsub>ref">BUG> se();hs336> sehs337> se case =c=atic/g+code=CRYPTO_ALG_TYPE_CIPHERi1" onsub>ref">CRYPTO_ALG_TYPE_CIPHER> se:hs338> se =c=atic/g+code=le="t" onsub>ref">le=> se +=2=c=atic/g+code=t=">_cipher_ctxsiz3i1" onsub>ref">t=">_cipher_ctxsiz3> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs339> se break;hs340> sehs341> se case =c=atic/g+code=CRYPTO_ALG_TYPE_COMPRESSi1" onsub>ref">CRYPTO_ALG_TYPE_COMPRESS> se:hs342> se =c=atic/g+code=le="t" onsub>ref">le=> se +=2=c=atic/g+code=t=">_compress_ctxsiz3i1" onsub>ref">t=">_compress_ctxsiz3> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs343> se break;hs344> se }hs345> sehs346> se 11".1<2=c=atic/g+code=le="t" onsub>ref">le=> se;hs347> se}hs348> sehs349> sevoid =c=atic/g+code=t=">_shoot_alg"t" onsub>ref">t=">_shoot_alg> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se)hs350> se{hs351> se =c=atic/g+code=down_writ3i1" onsub>ref">down_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs352> se =c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_flags"t" onsub>ref">t=a_flags> se |=2=c=atic/g+code=CRYPTO_ALG_DYING"t" onsub>ref">CRYPTO_ALG_DYING> se;hs353> se =c=atic/g+code=up_writ3i1" onsub>ref">up_writ3> se(&=c=atic/g+code=t=">_alg_sem"t" onsub>ref">t=">_alg_sem> se);hs354> se}hs355> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_shoot_alg"t" onsub>ref">t=">_shoot_alg> se);hs356> sehs357> sestruct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=__t=">_alloc_tfm"t" onsub>ref">__t=">_alloc_tfm> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se,hs358> se =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs359> se{hs360> se struct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=NULL"t" onsub>ref">NULL> se;hs361> se unsigned int =c=atic/g+code=tfm_siz3i1" onsub>ref">tfm_siz3> se;hs362> se int =c=atic/g+code=err"t" onsub>ref">err> se =2-=c=atic/g+code=ENOMEM"t" onsub>ref">ENOMEM> se;hs363> sehs364> se =c=atic/g+code=tfm_siz3i1" onsub>ref">tfm_siz3> se =2siz3of(*=c=atic/g+code=tfm"t" onsub>ref">tfm> se) +2=c=atic/g+code=t=">_ctxsiz3i1" onsub>ref">t=">_ctxsiz3> se(=c=atic/g+code=alg"t" onsub>ref">alg> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs365> se cc=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=kzalloc"t" onsub>ref">kzalloc> se(=c=atic/g+code=tfm_siz3i1" onsub>ref">tfm_siz3> se, =c=atic/g+code=GFP_KERNEL"t" onsub>ref">GFP_KERNEL> se);hs366> se if (cc=atic/g+code=tfm"t" onsub>ref">tfm> se ==2=c=atic/g+code=NULL"t" onsub>ref">NULL> se)hs367> se goto cc=atic/g+code=out_err"t" onsub>ref">out_err> se;hs368> sehs369> se =c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=__t=t_alg"t" onsub>ref">__t=t_alg> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se;hs370> sehs371> se =c=atic/g+code=err"t" onsub>ref">err> se =2=c=atic/g+code=t=">_init_ops"t" onsub>ref">t=">_init_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs372> se if (=c=atic/g+code=err"t" onsub>ref">err> se)hs373> se goto cc=atic/g+code=out_free_tfm"t" onsub>ref">out_free_tfm> se;hs374> sehs375> se if (!=c=atic/g+code=tfm"t" onsub>ref">tfm> se-c="vcc=atic/g+code=exit"t" onsub>ref">exit> se && =c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_initi1" onsub>ref">t=a_init> se && (=c=atic/g+code=err"t" onsub>ref">err> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_initi1" onsub>ref">t=a_init> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se)))hs376> se goto cc=atic/g+code=t=a_init_failedi1" onsub>ref">t=a_init_failed> se;hs377> sehs378> se goto cc=atic/g+code=out"t" onsub>ref">out> se;hs379> sehs380> secc=atic/g+code=t=a_init_failedi1" onsub>ref">t=a_init_failed> se:hs381> se =c=atic/g+code=t=">_exit_ops"t" onsub>ref">t=">_exit_ops> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs382> secc=atic/g+code=out_free_tfm"t" onsub>ref">out_free_tfm> se:hs383> se if (=c=atic/g+code=err"t" onsub>ref">err> se ==2-=c=atic/g+code=EAGAIN"t" onsub>ref">EAGAIN> se)hs384> se =c=atic/g+code=t=">_shoot_alg"t" onsub>ref">t=">_shoot_alg> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs385> se cc=atic/g+code=kfree"t" onsub>ref">kfree> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs386> se=c=atic/g+code=out_err"t" onsub>ref">out_err> se:hs387> se cc=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(=c=atic/g+code=err"t" onsub>ref">err> se);hs388> se=c=atic/g+code=out"t" onsub>ref">out> se:hs389> se 11".1<2=c=atic/g+code=tfm"t" onsub>ref">tfm> se;hs390> se}hs391> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=__t=">_alloc_tfm"t" onsub>ref">__t=">_alloc_tfm> se);hs392> sehs393> se=span1" onsubcommenti>/*s394> se=span1" onsubcommenti> * t=">_alloc_base - Locate algorithm and allocate transforms395> se=span1" onsubcommenti> * @alg_nam3: Nam3 of algorithms396> se=span1" onsubcommenti> * @typ3: Typ3 of algorithms397> se=span1" onsubcommenti> * @mask: Mask for typ3 comparisons398> se=span1" onsubcommenti> *s399> se=span1" onsubcommenti> * This function should not be used by new algorithm typ3s.s400> se=span1" onsubcommenti> * Plesae use t=">_alloc_tfm instead.s401> se=span1" onsubcommenti> *s402> se=span1" onsubcommenti> * t=">_alloc_base() will first attempt to locate an1already loaded> spanehs403> se=span1" onsubcommenti> * algorithm. If that fails and the kernel supports dynamically loadable> spanehs404> se=span1" onsubcommenti> * modules, it will then attempt to load a module of the sam3 nam3 or> spanehs405> se=span1" onsubcommenti> * alias. If that fails it will send a query to any loaded t="> manager> spanehs406> se=span1" onsubcommenti> * gt construct an1algorithm on the fly. A 11fcount is grabbed on the> spanehs407> se=span1" onsubcommenti> * algorithm which is then associated with the new transform.s408> se=span1" onsubcommenti> *s409> se=span1" onsubcommenti> * The 11".1 spanehs410> se=span1" onsubcommenti> * should use one of the more specific allocation functions such as> spanehs411> se=span1" onsubcommenti> * t=">_alloc_blkcipher.s412> se=span1" onsubcommenti> *s413> se=span1" onsubcommenti> * In case of error the 11".1< value is an1error pointer.s414> se=span1" onsubcommenti> */s415> sestruct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_base> se(const char *=c=atic/g+code=alg_nam3"t" onsub>ref">alg_nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs416> se{hs417> se struct =c=atic/g+code=t=">_tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se;hs418> se int =c=atic/g+code=err"t" onsub>ref">err> se;hs419> sehs420> se for (;;) {hs421> se struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;hs422> sehs423> se =c=atic/g+code=alg"t" onsub>ref">alg> se =2=c=atic/g+code=t=">_alg_mod_lookupin" onsub>ref">t=">_alg_mod_lookup> se(=c=atic/g+code=alg_nam3"t" onsub>ref">alg_nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs424> se if (=c=atic/g+code=IS_ERRi1" onsub>ref">IS_ERR> se(=c=atic/g+code=alg"t" onsub>ref">alg> se)) {hs425> se =c=atic/g+code=err"t" onsub>ref">err> se =2=c=atic/g+code=PTR_ERRi1" onsub>ref">PTR_ERR> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs426> se goto cc=atic/g+code=err"t" onsub>ref">err> se;hs427> se }hs428> sehs429> se cc=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=__t=">_alloc_tfm"t" onsub>ref">__t=">_alloc_tfm> se(=c=atic/g+code=alg"t" onsub>ref">alg> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);hs430> se if (!=c=atic/g+code=IS_ERRi1" onsub>ref">IS_ERR> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se))hs431> se 11".1<2=c=atic/g+code=tfm"t" onsub>ref">tfm> se;hs432> sehs433> se =c=atic/g+code=t=">_mod_puti1" onsub>ref">t=">_mod_put> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);hs434> se =c=atic/g+code=err"t" onsub>ref">err> se =2=c=atic/g+code=PTR_ERRi1" onsub>ref">PTR_ERR> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);hs435> sehs436> se=c=atic/g+code=err"t" onsub>ref">err> se:hs437> se if (=c=atic/g+code=err"t" onsub>ref">err> se !=2-=c=atic/g+code=EAGAIN"t" onsub>ref">EAGAIN> se)hs438> se break;hs439> se if (=c=atic/g+code=signal_pending"t" onsub>ref">signal_pending> se(=c=atic/g+code=currenti1" onsub>ref">turrent> se)) {hs440> se =c=atic/g+code=err"t" onsub>ref">err> se =2-=c=atic/g+code=EINTRi1" onsub>ref">EINTR> se;hs441> se break;hs442> se }hs443> se }hs444> sehs445> se 11".1<2=c=atic/g+code=ERR_PTRi1" onsub>ref">ERR_PTR> se(=c=atic/g+code=err"t" onsub>ref">err> se);hs446> se}hs447> se=c=atic/g+code=EXPORT_SYMBOL_GPL"t" onsub>ref">EXPORT_SYMBOL_GPL> se(=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_base> se);hs448> sehs449> sevoid *=c=atic/g+code=t=">_create_tfm"t" onsub>ref">t=">_create_tfm> se(struct =c=atic/g+code=t=">_alg"t" onsub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se,hs450> se const struct =c=atic/g+code=t=">_typ3i1" onsub>ref">t=">_typ3> se *=c=atic/g+code=frontendi1" onsub>ref">frontend> se)hs451> se{hs452> se char *=c=atic/g+code=mem"t" onsub>ref">mem> se;hs4253in" onsubmineinnam3<2L253i>s253> se tfm"t" onsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=NULL"t" onsub>ref">NULL> se;hs35ubmineinnic/gt=">>menti> * should usV onsub>ref">frontend> s2L334i>s334>>"#L451inid<2L451in" onsubmine_SYMB=atic/g+code=alg"t" onsub>ref">alg>23inid<2L423in" onsubmtL_GPL455usV onsub>ref">frontend> s2L334i>s334>>ott=">>"#L274tott=ne_SYMB=atic/g+code=alg"t" onsu446> se}hc=atic/gt=">>"#L354inid<43i1" onsub>ref"> se =2-=c=atic/g+code=ENOMEM"t" onsub>ref">ENOMEM> se;h ses4ruct =c=atic/g+code=t="&4t_tfm45378in" onsubmineinnam3<2L378i4s358> se 4 4 4 =c=atic/gs2L334i>s334>>"#L451inid<2L451in" onsubmine_SLL> se;ht=a_init> se(=c=t;"#L451inid<2L451in" onsubmine_SYMB=atic/g+code=alg"t" onsu449> sevoref">tfm> se-c="vcc=atic/g+ott=">>"#L274tott=ne_S> se-c="vcc=atic/g+co#L451inid<2L451in" onsubmine_SL+f">tfm> se) +2=c=atic/g+code=t=">_ctxsiz3i1" onsub>ref">t=">_ctx=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=ext#L451inid<2L451in" ext#L45lg> se);hs360> se 4 struct =c=atic/g+c4de=t=4L261in" onsubmineinnam3<2L261i4s361> se 4 unsigned int =c=at4c/g+c4onsub>ref">larval> se =2=c=at>>"#L453inid<2L453i>kzalloc> se(=c=atic/g+code=tfm_siz3i1" onsub>ref">tfm_siz3> se, =c=ott=">>"#L274tott=ne_Sf">GFP_KERNEL> se);h se 4 int =c=atic/g+code4err"t4i1" onsub>ref">IS_ERR> se(=c=atic>>"#L453inid<2L453i>kL> se)h seh4c=atic/gt=">>"#L364inid<4code=larvali1" onsub>rf">out_err> se;h se 4 =c=atic/g+code=tfm4siz3i4L265in" onsubmineinnam3<2L265i4s365> se 4 cc=atic/g+code=tfm4t" on4ub>ref">tfm> se =2=c=atic/g+code=kzalloc"t" onsub>ref">kzsub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> s)_ERR> se(=c=atic>>"#L453inid<2L453i>>typ3_obj> se-c="vco#L451inid<2L451in" onsubmine_Sin" onsubmineinnam3<2L366i4s446> se}h if (cc=atic/g+code4tfm"t46b>ref">BUG> se();href">__t=t_alg> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se;h se 4 goto cc=at4c/g+c46378in" onsubmineinnam3<2L378i4s368> seh4c=atic/gt=">>"#L364inid<46 =c=atic/gs2L334i>s334>&gode=PTR_ERRi1" onsub>ref">PTR_ERR> se(=c=at=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=L381i+code=__t=t_alg"t"L381i+cofm> se);hs369> se 4 =c=atic/g+code=tfm4t" on4ub>ref">tfm> sr> se)h seh4c=atic/gt=">>"#L374inid<4">_mod_puti1" onsub>ub>ref">out_free_tfm> se;h se 4 =c=atic/g+code=err4t" on47292in" onsubmineinnam3<2L292i4s372> se 4 if (=c=atic/g+code4err"t4 onsub>ref">err> sse-c="vcc=atic/g+code=exit"t" onsub>ref">exit> se && =c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_initi1" onsub>ref">t=a_init> se && (=c=atic/g+code=err"t" onsub>ref">err> se =2=c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_initi1" onsub>ref">t=a_init> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se)))h se 4 goto cc=at4c/g+c4de=out_free_tfm"t" onsub>ref">out_free_tfmfailed> se;h seh4c=atic/gt=">>"#L374inid<4L375in" onsubmineinnam3<2L375i4s375> se 4 if (!=c=atic/g+cod4=tfm"4" onsub>ref">tut> se;h se 4 goto cc=at4c/g+c47357in" onsubmineinnam3<2L357i4s377> seh4c=atic/gt=">>"#L374inid<47" onsub>ref">EXPORT_failed> se:h se 4 goto cc=atic/g+cod4=out"47 =c=atic/gs2L334i>s334>&gnsub>re se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);h seh4c=atic/gt=">>"#L384inid<4L380inf">out_free_tfm> se;h sec4=atic/g+code=t=a_init_fa4ledi148ji1" onsub>ref">typ3_obj> se)href">EAGAIN> se)h se 4 =c=atic/g+code=t="4gt_ex48atic/gt=">>"#L4s2L334i>s334>&gnsub>reg> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);h sec4=atic/g+code=out_free_tf4"t" o4bji1" onsub>realloc> se(=c=aticode=tfm"t" onsub>ref">tfm> se);h se 4 if (=c=atic/g+code4err"t4 onsubt_err> se;h seh4 =c=atic/g+4ode=t48 onsub>ref">tfm_siz3> se =2s>>"#L453inid<2L453i>kzalloc> se(=c=atic/g+code=err"t" onsub>ref">err> se);hs385> se 4 cc=atic/g+code=kfr4e"t" 48" onsub>ref">EXPORT_>>"#L389inid<2L389in" onsubmineinnam3<2L389i4s386> se=4=atic/g+code=out_err"t" 4nsub>48t" onsub>ref">le=> se;hs387> se 4 cc=atic/g+code=tfm4t" on48L348in" onsubmineinnam3<2L348i4s388> se=4=atic/g+code=out"t" onsu4>ref"4out> se:href">t=">_alloc_btfm> se(struct =c=atic/g+code=t=">_alg"t" onin" onsubmineinnam3<2L446i>s379> seh4 11".1<2=c=atic/g+c4de=tf48420in" onsubmineinnam3<2L420i>s390> se}4ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se,hrefindtic/" onsonsub>ref">alg_nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> " onsubmineinnam3<2L420i>s381> se 4=atic/g+code=EXPORT_SYMB4L_GPL49atic/gt=">>"#L442inid<222222222222i1" onsub>ref">t=">_typ3> se *=c=atic/g+code=frontendi1" onsub>ref">frontend> se)hs382> sec4c=atic/gt=">>"#L394inid<49>"#L443inid<2L443iiiiiiiiiiiiiiiiiiiirontend> se)href">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)hs393> se=4pan1" onsubcommenti>/*s394> se=4pan1" onsubcommenti> * 4 t=4295inid<2L295iop>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> s se) +2=c=atic/g+kup> se(=c=atic/g+codnsub>ref">)sonsub>ref">alg_nam3> se, =cc/g+code=u32in" onsef">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)h * 4 @a49"t" onsub>ref">BUG> se();h se(=c=atic/g+code=alg_nam3"t" onsub>ref">n" onsubmineinnam3<2L446i>s396> se=4pan1" onsubcommenti> * 4 @t49357in" onsubmineinnam3<2L357i4s397> se=4pan1" onsubcommenti> * 4 @m4NVAL"t" onsub>f">typ3_obj> se)hs398> se=4pan1" onsubcommenti> *ref">le=> se +=2=c=atic/g++code=tfm"t" onsub>ref">tfm>>err>PTR_ERR> se(=c=at=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=d<2Lcleagt;>"#L446inid<2Lcleagef">n" onsubmineinnam3<2L446i>s379> seh4pan1" onsubcommenti> * 4 Th49"t" onsub>ref">tfm> se =2=c=atic/g+c=">>"#L416inid<2L416i>>err>PTR_ERR> se(=c=at=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=d<2Lcleagt;>"#L446inid<2Lcleagef">n" onsubmineinnam3<2L446i5s400> se=5pan1" onsubcommenti> * 5 Pl50"t" onsub>ref">BUG> se();href">tfm>nsub>ref">CRYPTO_A=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=tcode=tfm"t" onsub>ref">tfmn" onsubmineinnam3<2L446i5s100> se=5patic/g+code=EXPORT_SYMB5paneh50atic/gt=">>"#L4s2L334i>s334>&g=">>"#L416inid<2L416i>nsub>ref">CRYPTO_A=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=d<2Lset;>"#L389inidd<2Lset>tfmn" onsubmineinnam3<2L446i5s200> se=5p=atic/gt=">>"#L395 t=50433in" onsubmineinnam3<2L433i5s403> se=5pan1" onsubcommenti> * 5 al50e=out_free_tfm"t" onsf">typ3_obj> se)ht=a_init> se(=c=kup> se(=c=atic/g+codnsub>ref">)" onsubmineinnam3<2L433i5s403> se=5pan1" onsubcommenti> * 5 mo50"t" onsub>ref">err> s>"#L4s2L334i>s334>&gkup> se(=c=atic/g+codnsub>ref">>PTR_ERR> se(=c=at=atic/gt=">>"#L451inid<2L451ief">t=a_init> se(=c=kup> se(=c=atic/g+codnsub>ref">n" onsubmineinnam3<2L446i5s503> se=5pan1" onsubcommenti> * 5 al5e=tfm"t" onsubn" onsubmineinnam3<2L348i5s406> se=5pan1" onsubcommenti> * 5 gt50357in" onsubmineinnam3<2L357i5s407> se=5pan1" onsubcommenti> * 5 al5t=">>"#L>le=> se;halg_nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=maski1" onsub>ref">mask> se);h se=5pan1" onsubcommenti> * se=5pan1" onsubcommenti> * 5 Th50380inf">out_free_tfmSYMBOL_GPL> se(=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_bfindtic/g+code=alg"t" onsub>refindtic/" onin" onsubmineinnam3<2L424i5s410> se=5pan1" onsubcommenti> * 5 sh51261in" onsubmineinnam3<2L261i5s411> se=5pan1" onsubcommenti> * 5 t=5>_alloc_blkcipher. se=5pan1" onsubcommenti> *ref">aorm se=5pan1" onsubcommenti> * 5 In5case of error the 11".1< value is anatic/gt=">>"#L396inid<2L396in" onsubmineinnam3<2L396i5s414> se=5pan1" onsubcommenti> */<5spane5 se=5ruct =c=atic/g+code=t="&5t_tfm51_nam3: Nam3 of algorithm se{5 se 5 struct =c=atic/g+c5de=t=51rithm which is then associate2L398in" onsubmineinnam3<2L398i5s408> se=5 int =c=atic/g+code5err"t51=atic/gt=">>"#L409inidref">aady loaded> spaneh seh5c=atic/gt=">>"#L425inid<5111".1 spaneh se 5 for (;;) {h spaneh se 5 struct =c=5tic/g52gt_alloc_blkcipher. seh5c=atic/gt=">>"#L425inid<52=atic/gt=">>"#L413inid spaneh se 5 =c=atic/g+5ode=a52rithm. If that fails and the kernel supporttransform. se 5 if (=c=ati5/g+co52c=atic/gt=">>"#L415inid2L408in" onsubmineinnam3<2L408i5s503> se=5 =c5atic/52_nam3: Nam3 of algorithm spaneh se 5 go5o cc=523: Typ3 of algorithm spaneh se 5 }h seh5c=atic/gt=">>"#L425inid<52=atic/gt=">>"#L409inid<2L409in" onsubmineinnam3<2L409i5s429> se 5 cc=atic/g+5ode=t5211".1 se 5 if (!=c=at5c/g+c53ld use one of the more specif<2L415in" onsubmineinnam3<2L415i5s431> se 5 115.1<2=5=atic/t" onsub>ref">t=">_create_tfm> se(=c=atic/g+code=acreate_tfm> se(=" onsonsub>ref">alg_nam3> se, =c=atic/g+code=u32in" onsub>ref">u32> " onsubmineinnam3<2L420i5s432> seh5c=atic/gt=">>"#L435inid<53>"#L443inid<2L443iiiiiiiii1" onsub>ref">t=">_typ3> se *=c=atic/g+code=frontendi1" onsub>ref">frontend> se)href">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)h se 5 =c=atic/g+5ode=t53=aticn" onsubmineinnam3<2L452i5s434> se 5 =c=atic/g+5ode=e5r"t" onsub>reft" onsub>ref">t=">_>>"#L432inid<2L432in" onsubmineinnam3<2L432i5s435> seh5c=atic/gt=">>"#L435inid<5G"t" onsub>refr> se;h se=5=atic/g+code=err"t" onsu5>ref"5L337in" onsubmineinnam3<2L337i5s437> se 5 if (=c=ati5/g+co5e=err"t" onsubid<2L421in" onsubmineinnam3<2L421i5s438> se 5 br5ak;h<5=atic/gt=">>"#L4ub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;h se 5 if (=c=ati5/g+co53420in" onsubmineinnam3<2L420i5s440> se 5 =c5atic/5+code=err"t" onsub>refe;href">t=">_algfindtic/g+code=alg"t" onsub>refindtic/" onslg_nam3> se, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+=atic/gt=">>"#L451inid<2L451i se2=c=atic/g+codcode=maski1" onsub>ref">mask> se);h se 5 br5ak;h<5=atic/gt=">>"#L4>IS_ERR> se(=c=atic/g+code=alg"t" onsub>ref">alg> se)) {h se 5 }hrefe;href">PTR_ERR> se(=c=atic/g+code=alg"t" onsub>ref">alg> se);h se 5 }h se;h seh5c=atic/gt=">>"#L445inid<54"t" onsub>ref">err> sn" onsubmineinnam3<2L348i5s445> se 5 11".1<2=c=atic/g+c5de=ER5L346in" onsubmineinnam3<2L346i5s446> se}5ref">t=">_>>"#L432inid<2L432iin" onsub>ref">t=">_algtfm> se(struct =c=atic/g+code=t=">_alg"t" onse, =c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+=atic/gt=">>"#L451inid<2L451inn" onsubmineinnam3<2L427i5s437> se 5=atic/g+code=EXPORT_SYMB5L_GPL54=err"t" onsub>ref">err> s_ERR> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se))h seh5c=atic/gt=">>"#L445inid<54atic/gt=">>"#L439inid<2>tfm> se;h sev5id *=c=atic/g+code=t="&g5_crea54420in" onsubmineinnam3<2L420i5s450> se 5 co5st st5uct =c=atic/g+code=t=" onsub>ref">t=">_alge(=c=atic/g+code=alg"t" onsub>ref">alg> se);h se{5s334>&gode=PTR_ERRi1" onsub>ref">PTR_ERR> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);h se 5 char *=c=atic/g+co5e=mem55433in" onsubmineinnam3<2L433i5s4253in" 5nsubmineinnam3<2L253i>s253> se55onsubt_err> se;href">err> sr> se !=2-=c=atic/g+code=EAGAIN"t" onsub>ref">EAGAIN> se)href">a5g>23inid<2L423in" onsubm5L_GPL55"t" onsub>ref">BUG> sssssssssL442in" onsubmineinnam3<2L442i5u446> se}5c=atic/gt=">>"#L355inid<55ic/g+code=err"t" onsusub>ref">signal_pending> se(=c=atic/g+code=currenti1" onsub>ref">turrent> se)) {h ses5ruct =c=atic/g+code=t="&5t_tfm55=err"t" onsub>ref">er>"#L4s2L334i>s334>&gode=PTR_ERRi1" onsub>ref">PTTR> se;h se 5 5 5 =c=atic/g+code=u32in" onsL442in" onsubmineinnam3<2L442i5u449> sev5ref">tfm> sn" onsubmineinnam3<2L348i5s360> se 5 struct =c=atic/g+c5de=t=5>_tfm"t" onsn" onsubmineinnam3<2L348i5s451> se{5 unsigned int =c=at5c/g+c56292in" onsubmineinnam3<2L292i5s362> se 5 int =c=atic/g+code5err"t5i1" onsub>ref"ref">ERR_PTR> se(=c=atic/g+code=err"t" onsub>ref">err> se);h seh5c=atic/gt=">>"#L365inid<5code=ln" onsubmineinnam3<2L348i5sineinnic5 =c=atic/g+code=tfm5siz3i5L265inf">out_free_tfmSYMBOL_GPL> se(=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_btfm> se(=c=atic/g+code=acreate_tfm> se(=" onin" onsubmineinnam3<2L446i5sb>ref">a5 cc=atic/g+code=tfm5t" on56346in" onsubmineinnam3<2L346i5s446> se}5 if (cc=atic/g+code5tfm"t563: Typ3 of algorithm se 5 goto cc=at5c/g+c56rithm which is then associated with;>"#destroyf">aormFretic/gt="#L395inid<2L395in" onsubmineinnam3<2L395i5s368> seh5c=atic/gt=">>"#L365inid<56=atic/gt=">>"#L409inidaoslab2L395in" onsubmineinnam3<2L395i5s449> sev5 =c=atic/g+code=tfm5t" on5611".1a: T Most peo="#f">tfm395in" onsubmineinnam3<2L395i5s370> seh5c=atic/gt=">>"#L375inid<57ld use one of the more speciffm395in" onsubmineinnam3<2L395i5s451> se{5 =c=atic/g+code=err5t" on57gt_alloc_blkcipher.ts up/span Most peot="&gnyaneh se 5 if (=c=atic/g+code5err"t57=atic/gt=">>"#L413inid seh5 goto cc=at5c/g+c57rithm. If that fails and the<2L415in" onsubmineinnam3<2L415i5s374> seh5c=atic/gt=">>"#L375inid<5L375int" onub>ref">t=">_alloc_bdestroyf">ac=atic/g+code=acreate_destroyf">a" onst" onsub>ref">t=">_>>"#L453inid<2L453i,sub>ref">t=">_tfm> se *=c=atic/g+code=tfm"t" onsub>ref">tfm> se =2=c=atic/g+code=NULL"t" onsub>ref">NUn" onsubmineinnam3<2L438i5s375> se 5 if (!=c=atic/g+cod5=tfm"5" onsun" onsubmineinnam3<2L440i5s376> se 5 goto cc=at5c/g+c5de=t=a_init_faub>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;h seh5c=atic/gt=">>"#L375inid<5L378in" onsubmineinnam3<2L378i5s378> se 5 goto cc=atic/g+cod5=out"57 =c=atic/gsub>ref">signal_penunlikelyaski1" onsub>refnlikely" ons_ERR> se(=c=atic>>"#L453inid<2L453iin" onsubmineinnam3<2L438i5s449> sev5c=atic/gt=">>"#L385inid<57"t" onsub>ref">tfm> sref">En" onsubmineinnam3<2L422i5s380> sec5=atic/g+code=t=a_init_fa5ledi158261in" onsubmineinnam3<2L261i5s381> se 5 =c=atic/g+code=t="5gt_ex5t_ops"t" onsub>ref">t=">_ex>>"#L422inid<2L422iin" onsub>ref">t="+code=__t=t_alg"t" onsub>ref">__t=t_alg> se =2=c=atic/g+code=alg"t" onsub>ref">algn" onsubmineinnam3<2L422i5s362> se 5=atic/g+code=out_free_tf5"t" o58433in" onsubmineinnam3<2L433i5s373> se 5 if (=c=atic/g+code5err"t5 onsub>ref">err> sse-c="vcc=atic/g+code=exit"t" onsub>ref">exit> se && =c=atic/g+code=alg"t" onsub>ref">alg> se-c="vcc=atic/g+code=t=a_initi1" onsub>ref">t=a_init> se &&a=c=atic/g+code=alg"p;&a=c=a">NUn" onsubmineinnam3<2L438i5s374> seh5 =c=atic/g+5ode=t5">_shoot_alg"t" onsub>ref">t=">_s+code=t=a_initi1" onsub>ref">t=a_init> se &&a=c=atic/g+code=alg"p;&a=c=a">NUse);h se 5 cc=atic/g+code=kfr5e"t" 5nsub>ref">kfree> se(=c=atic/gnsub>re se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se);h se=5=atic/g+code=out_err"t" 5nsub>58b>ref">BUG> se();href">alg> se);h se 5 cc=atic/g+code=tfm5t" on5ub>ref">tfm> se =2=c=atic/g+ckzcode=tfm"t" onsub>rezf">tfm> se);h se=5=atic/g+code=out"t" onsu5>ref"58=aticn" onsubmineinnam3<2L348i5s379> seh5 11".1<2=c=atic/g+c5de=tf58380inf">out_free_tfmSYMBOL_GPL> se(=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_bdestroyf">ac=atic/g+code=acreate_destroyf">a" onin" onsubmineinnam3<2L385i5s390> se}5 se 5=atic/g+code=EXPORT_SYMB5L_GPL59atic/r> se;hrehastic/" onsonsub>ref">alg_nam3> se, =cc/g+code=u32in" onsef">u32> se2=c=atic/g+code=typ3i1" onsub>ref">typ3> se, =c=atic/g+code=u32in" onsub>ref">u32> se2=c=atic/g+code=maski1" onsub>ref">mask> se)h se 5c=atic/gt=">>"#L395inid<59>"n" onsubmineinnam3<2L440i5s393> se=5pan1" onsubcommenti>/*ref">err> se;htfmin"0n" onsubmineinnam3<2L385i5s374> seh5pan1" onsubcommenti> * 5 t=5295inid<2L295iop>ref">t=">_alg> se *=c=atic/g+code=alg"t" onsub>ref">alg> se;href">t=">_alg_mod_lookup> se(=c=atic/g+code=alg_nam3"t" onsub>ref">alg_nam3> se, =cc/g+code=u32in" onsef">u32> se2=c=atic/g+codcode=maski1" onsub>ref">mask> se);h se 5pan1" onsubcommenti> * 5 @a59346in" onsubmineinnam3<2L346i5s396> se=5pan1" onsubcommenti> * 5 @t59i1" onsub>ref"> s_ERR> se(=c=atic/g+code=tfm"t" onsub>ref">tfm> se))h se=5pan1" onsubcommenti> * 5 @m59=err"t" onsub>ref">ere();href">alg> se);h se=5pan1" onsubcommenti> *ref">le=> se +=2=c=atic/g+ret;>"#L389inidret>tfmin"1n" onsubmineinnam3<2L434i5s379> seh5pan1" onsubcommenti> * 5 Th59"t" onsub>refn" onsubmineinnam3<2L348i6s400> se=6pan1" onsubcommenti> * 6 Pl60261in" onsubmineinnam3<2L261i6s100> se=6patic/g+code=EXPORT_SYMB6paneh60atic/gt=">ref">ERR_PTR> se(=c=atret;>"#L389inidret>tfmn" onsubmineinnam3<2L434i6s200> se=6p=atic/gt=">>"#L396 t=60433inn" onsubmineinnam3<2L348i6s300> se=6pan1" onsubcommenti>/* se;h se(=c=atic/g+code=t=">_alloc_base"t" onsub>ref">t=">_alloc_bhastic/g+code=alg"t" onsub>rehastic/" onin" onsubmineinnam3<2L434i6s403> se=6pan1" onsubcommenti> * 6 mo60375in" onsubmineinnam3<2L375i6s503> se=6pan1" onsubcommenti> * 6 al60" onsub>ref">EXPORT_MODULE_DESCRIPTIO">>"#L438iMODULE_DESCRIPTIO"" onsu If that faop>=ati>"Cinnamgraphic cas> API"2L415inin" onsubmineinnam3<2L434i6s603> se=6pan1" onsubcommenti> * 6 gt60rr> se:h=ati>"e"t"2L415inin" onsubmineinnam3<2L434i6s703> se=6pan1" onsubcommenti> * 6 al6orithm /prem /div> /div> rminoriginal LXR softwas> by> spa onsubminhttp://sourceforge.net/projects/lxr">LXR ils unity>mask>talgoexperi andal vers typby> onsubminmailto:lxr@comux.no">lxr@comux.no>mas. /div> lxr.comux.no kindly hostic/by> onsubminhttp://www.redpill-compro.no">Redpill Lompro AS>mask>providerons Lomuxii1" ult=atot="&operat;"#L41erviceL41ince 1995. /div>