linux/crypto/shash.c
<<
hidden" nam> navtarget" > "> text" nam> search" id search"> submit">Search hidden" nam> ajax_lookup" id ajax_lookup" > ">e 6div id file_contents"u
 L1">. .16/a>6spal class="comment">/*6/spalue
 L2">. .26/a>6spal class="comment"> * Synchronous Cryptographic Hash opera vals.6/spalue
 L3">. .36/a>6spal class="comment"> *6/spalue
 L4">. .46/a>6spal class="comment"> * Copyright (c) 2008 Herbert Xu <herbert@gondor.apala.org.au>6/spalue
 L5">. .56/a>6spal class="comment"> *6/spalue
 L6">. .66/a>6spal class="comment"> * This program is free software; you cal redistribute it and/or modify it6/spalue
 L7">. .76/a>6spal class="comment"> * under the terms of the GNU General Public License as published by the Free6/spalue
 L8">. .86/a>6spal class="comment"> * Software Founda val; either vers.12"2 of the License, or (at your on val)6/spalue
 L9">. .96/a>6spal class="comment"> * any later vers.12.6/spalue
 L10">. optia>6spal class="comment"> *6/spalue
 L11">. 116/a>6spal class="comment"> */6/spalue
 L12">. 126/a>e
 L13">. 136/a>#include <crypto/scatterwalk.h6/a>>e
 L14">. 146/a>#include <crypto/internal/hash.h6/a>>e
 L15">. 156/a>#include <linux/err.h6/a>>e
 L16">. 166/a>#include <linux/kernel.h6/a>>e
 L17">. 176/a>#include <linux/module.h6/a>>e
 L18">. 186/a>#include <linux/slab.h6/a>>e
 L19">. 196/a>#include <linux/seq_file.h6/a>>e
 L20">. 206/a>#include <linux/cryptouser.h6/a>>e
 L21">. 216/a>#include <net/netlink.h6/a>>e
 L22">. 226/a>e
 L23">. 236/a>#include "internal.h6/a>"e
 L24">. 246/a>e
 L25">. 256/a>static const struct.6a href="+code=crypto_typ>" class="sref">crypto_typ>6/a>.6a href="+code=crypto_shash_typ>" class="sref">crypto_shash_typ>6/a>;e
 L26">. 266/a>e
 L27">. 276/a>static int.6a href="+code=shash_no_setkey" class="sref">shash_no_setkey6/a>(struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=key" class="sref">key6/a>,e
 L28">. 286/a>...........................unsigned int.6a href="+code=keylen" class="sref">keylen6/a>)e
 L29">. 296/a>{e
 L30">. 306/a>........return -6a href="+code=ENOSYS" class="sref">ENOSYS6/a>;e
 L31">. 316/a>}e
 L32">. 326/a>e
 L33">. 336/a>static int.6a href="+code=shash_setkey_unaligned" class="sref">shash_setkey_unaligned6/a>(struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=key" class="sref">key6/a>,e
 L34">. 346/a>..................................unsigned int.6a href="+code=keylen" class="sref">keylen6/a>)e
 L35">. 356/a>{e
 L36">. 366/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L37">. 376/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L38">. 386/a>........unsigned long.6a href="+code=absiz>" class="sref">absiz>6/a>;e
 L39">. 396/a>........6a href="+code=u8" class="sref">u86/a>.*6a href="+code=buffer" class="sref">buffer6/a>, *6a href="+code=alignbuffer" class="sref">alignbuffer6/a>;e
 L40">. 406/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L41">. 416/a>e
 L42">. 426/a>........6a href="+code=absiz>" class="sref">absiz>6/a>.=.6a href="+code=keylen" class="sref">keylen6/a> + (6a href="+code=alignmask" class="sref">alignmask6/a>.& ~(6a href="+code=crypto_tfm_ctx_alignment" class="sref">crypto_tfm_ctx_alignment6/a>() - 1));e
 L43">. 436/a>........6a href="+code=buffer" class="sref">buffer6/a>.=.6a href="+code=kmalloc" class="sref">kmalloc6/a>(6a href="+code=absiz>" class="sref">absiz>6/a>,.6a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL6/a>);e
 L44">. 446/a>........if (!6a href="+code=buffer" class="sref">buffer6/a>)e
 L45">. 456/a>................return -6a href="+code=ENOMEM" class="sref">ENOMEM6/a>;e
 L46">. 466/a>e
 L47">. 476/a>........6a href="+code=alignbuffer" class="sref">alignbuffer6/a>.=.(6a href="+code=u8" class="sref">u86/a>.*)6a href="+code=ALIGN" class="sref">ALIGN6/a>((unsigned long)6a href="+code=buffer" class="sref">buffer6/a>, 6a href="+code=alignmask" class="sref">alignmask6/a>.+ 1);e
 L48">. 486/a>........6a href="+code=memcpy" class="sref">memcpy6/a>(6a href="+code=alignbuffer" class="sref">alignbuffer6/a>, 6a href="+code=key" class="sref">key6/a>,.6a href="+code=keylen" class="sref">keylen6/a>);e
 L49">. 496/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash" class="sref">shash6/a>->6a href="+code=setkey" class="sref">setkey6/a>(6a href="+code=tfm" class="sref">tfm6/a>, 6a href="+code=alignbuffer" class="sref">alignbuffer6/a>, 6a href="+code=keylen" class="sref">keylen6/a>);e
 L50">. 506/a>........6a href="+code=kzfree" class="sref">kzfree6/a>(6a href="+code=buffer" class="sref">buffer6/a>);e
 L51">. 516/a>........return 6a href="+code=err" class="sref">err6/a>;e
 L52">. 526/a>}e
 L53">. 536/a>e
 L54">. 546/a>int.6a href="+code=crypto_shash_setkey" class="sref">crypto_shash_setkey6/a>(struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=key" class="sref">key6/a>,e
 L55">. 556/a>........................unsigned int.6a href="+code=keylen" class="sref">keylen6/a>)e
 L56">. 566/a>{e
 L57">. 576/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L58">. 586/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L59">. 596/a>e
 L60">. 606/a>........if ((unsigned long)6a href="+code=key" class="sref">key6/a>.& 6a href="+code=alignmask" class="sref">alignmask6/a>)e
 L61">. 616/a>................return 6a href="+code=shash_setkey_unaligned" class="sref">shash_setkey_unaligned6/a>(6a href="+code=tfm" class="sref">tfm6/a>, 6a href="+code=key" class="sref">key6/a>,.6a href="+code=keylen" class="sref">keylen6/a>);e
 L62">. 626/a>e
 L63">. 636/a>........return 6a href="+code=shash" class="sref">shash6/a>->6a href="+code=setkey" class="sref">setkey6/a>(6a href="+code=tfm" class="sref">tfm6/a>, 6a href="+code=key" class="sref">key6/a>,.6a href="+code=keylen" class="sref">keylen6/a>);e
 L64">. 646/a>}e
 L65">. 656/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_shash_setkey" class="sref">crypto_shash_setkey6/a>);e
 L66">. 666/a>e
 L67">. 676/a>static 6a href="+code=inline" class="sref">inline6/a>.unsigned int.6a href="+code=shash_align_buffer_siz>" class="sref">shash_align_buffer_siz>6/a>(unsigned 6a href="+code=len" class="sref">len6/a>,e
 L68">. 686/a>...................................................unsigned long.6a href="+code=mask" class="sref">mask6/a>)e
 L69">. 696/a>{e
 L70">. 706/a>........return 6a href="+code=len" class="sref">len6/a> + (6a href="+code=mask" class="sref">mask6/a>.& ~(6a href="+code=__alignof__" class="sref">__alignof__6/a>(6a href="+code=u8" class="sref">u86/a>.6a href="+code=__attribute__" class="sref">__attribute__6/a>.((6a href="+code=aligned" class="sref">aligned6/a>))) - 1));e
 L71">. 716/a>}e
 L72">. 726/a>e
 L73">. 736/a>static int.6a href="+code=shash_update_unaligned" class="sref">shash_update_unaligned6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L74">. 746/a>..................................unsigned int.6a href="+code=len" class="sref">len6/a>)e
 L75">. 756/a>{e
 L76">. 766/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L77">. 776/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L78">. 786/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L79">. 796/a>........unsigned int.6a href="+code=unaligned_len" class="sref">unaligned_len6/a>.=.6a href="+code=alignmask" class="sref">alignmask6/a>.+ 1 -e
 L80">. 806/a>.....................................((unsigned long)6a href="+code=data" class="sref">data6/a>.& 6a href="+code=alignmask" class="sref">alignmask6/a>);e
 L81">. 816/a>........6a href="+code=u8" class="sref">u86/a>.6a href="+code=ubuf" class="sref">ubuf6/a>[6a href="+code=shash_align_buffer_siz>" class="sref">shash_align_buffer_siz>6/a>(6a href="+code=unaligned_len" class="sref">unaligned_len6/a>, 6a href="+code=alignmask" class="sref">alignmask6/a>)]e
 L82">. 826/a>................6a href="+code=__attribute__" class="sref">__attribute__6/a>.((6a href="+code=aligned" class="sref">aligned6/a>));e
 L83">. 836/a>........6a href="+code=u8" class="sref">u86/a>.*6a href="+code=buf" class="sref">buf6/a>.=.6a href="+code=PTR_ALIGN" class="sref">PTR_ALIGN6/a>(&6a href="+code=ubuf" class="sref">ubuf6/a>[0], 6a href="+code=alignmask" class="sref">alignmask6/a>.+ 1);e
 L84">. 846/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L85">. 856/a>e
 L86">. 866/a>........if (6a href="+code=unaligned_len" class="sref">unaligned_len6/a>.>.6a href="+code=len" class="sref">len6/a>)e
 L87">. 876/a>................6a href="+code=unaligned_len" class="sref">unaligned_len6/a>.=.6a href="+code=len" class="sref">len6/a>;e
 L88">. 886/a>e
 L89">. 896/a>........6a href="+code=memcpy" class="sref">memcpy6/a>(6a href="+code=buf" class="sref">buf6/a>, 6a href="+code=data" class="sref">data6/a>,.6a href="+code=unaligned_len" class="sref">unaligned_len6/a>);e
 L90">. 906/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash" class="sref">shash6/a>->6a href="+code=update" class="sref">update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=buf" class="sref">buf6/a>, 6a href="+code=unaligned_len" class="sref">unaligned_len6/a>);e
 L91">. 916/a>........6a href="+code=memset" class="sref">memset6/a>(6a href="+code=buf" class="sref">buf6/a>, 0, 6a href="+code=unaligned_len" class="sref">unaligned_len6/a>);e
 L92">. 926/a>e
 L93">. 936/a>........return 6a href="+code=err" class="sref">err6/a>.?:e
 L94">. 946/a>...............6a href="+code=shash" class="sref">shash6/a>->6a href="+code=update" class="sref">update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>.+ 6a href="+code=unaligned_len" class="sref">unaligned_len6/a>, 6a href="+code=len" class="sref">len6/a> - 6a href="+code=unaligned_len" class="sref">unaligned_len6/a>);e
 L95">. 956/a>}e
 L96">. 966/a>e
 L97">. 976/a>int.6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L98">. 986/a>........................unsigned int.6a href="+code=len" class="sref">len6/a>)e
 L99">. 996/a>{e
 L100">.1006/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L101">.1016/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L102">.1026/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L103">.1036/a>e
 L104">.1046/a>........if ((unsigned long)6a href="+code=data" class="sref">data6/a>.& 6a href="+code=alignmask" class="sref">alignmask6/a>)e
 L105">.1056/a>................return 6a href="+code=shash_update_unaligned" class="sref">shash_update_unaligned6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>);e
 L106">.1066/a>e
 L107">.1076/a>........return 6a href="+code=shash" class="sref">shash6/a>->6a href="+code=update" class="sref">update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>);e
 L108">.1086/a>}e
 L109">.1096/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>);e
 L110">.1optia>e
 L111">.1116/a>static int.6a href="+code=shash_final_unaligned" class="sref">shash_final_unaligned6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L112">.1126/a>{e
 L113">.1136/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L114">.1146/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L115">.1156/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L116">.1166/a>........unsigned int.6a href="+code=ds" class="sref">ds6/a>.=.6a href="+code=crypto_shash_digestsiz>" class="sref">crypto_shash_digestsiz>6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L117">.1176/a>........6a href="+code=u8" class="sref">u86/a>.6a href="+code=ubuf" class="sref">ubuf6/a>[6a href="+code=shash_align_buffer_siz>" class="sref">shash_align_buffer_siz>6/a>(6a href="+code=ds" class="sref">ds6/a>, 6a href="+code=alignmask" class="sref">alignmask6/a>)]e
 L118">.1186/a>................6a href="+code=__attribute__" class="sref">__attribute__6/a>.((6a href="+code=aligned" class="sref">aligned6/a>));e
 L119">.1196/a>........6a href="+code=u8" class="sref">u86/a>.*6a href="+code=buf" class="sref">buf6/a>.=.6a href="+code=PTR_ALIGN" class="sref">PTR_ALIGN6/a>(&6a href="+code=ubuf" class="sref">ubuf6/a>[0], 6a href="+code=alignmask" class="sref">alignmask6/a>.+ 1);e
 L120">.1206/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L121">.1216/a>e
 L122">.1226/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash" class="sref">shash6/a>->6a href="+code=final" class="sref">final6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=buf" class="sref">buf6/a>);e
 L123">.1236/a>........if (6a href="+code=err" class="sref">err6/a>)e
 L124">.1246/a>................goto 6a href="+code=out" class="sref">out6/a>;e
 L125">.1256/a>e
 L126">.1266/a>........6a href="+code=memcpy" class="sref">memcpy6/a>(6a href="+code=out" class="sref">out6/a>, 6a href="+code=buf" class="sref">buf6/a>, 6a href="+code=ds" class="sref">ds6/a>);e
 L127">.1276/a>e
 L128">.1286/a>6a href="+code=out" class="sref">out6/a>:e
 L129">.1296/a>........6a href="+code=memset" class="sref">memset6/a>(6a href="+code=buf" class="sref">buf6/a>, 0, 6a href="+code=ds" class="sref">ds6/a>);e
 L130">.1306/a>........return 6a href="+code=err" class="sref">err6/a>;e
 L131">.1316/a>}e
 L132">.1326/a>e
 L133">.1336/a>int.6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L134">.1346/a>{e
 L135">.1356/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L136">.1366/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L137">.1376/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L138">.1386/a>e
 L139">.1396/a>........if ((unsigned long)6a href="+code=out" class="sref">out6/a>.& 6a href="+code=alignmask" class="sref">alignmask6/a>)e
 L140">.1406/a>................return 6a href="+code=shash_final_unaligned" class="sref">shash_final_unaligned6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L141">.1416/a>e
 L142">.1426/a>........return 6a href="+code=shash" class="sref">shash6/a>->6a href="+code=final" class="sref">final6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L143">.1436/a>}e
 L144">.1446/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>);e
 L145">.1456/a>e
 L146">.1466/a>static int.6a href="+code=shash_finup_unaligned" class="sref">shash_finup_unaligned6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L147">.1476/a>.................................unsigned int.6a href="+code=len" class="sref">len6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L148">.1486/a>{e
 L149">.1496/a>........return 6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>).?:e
 L150">.1506/a>...............6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L151">.1516/a>}e
 L152">.1526/a>e
 L153">.1536/a>int.6a href="+code=crypto_shash_finup" class="sref">crypto_shash_finup6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L154">.1546/a>.......................unsigned int.6a href="+code=len" class="sref">len6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L155">.1556/a>{e
 L156">.1566/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L157">.1576/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L158">.1586/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L159">.1596/a>e
 L160">.1606/a>........if (((unsigned long)6a href="+code=data" class="sref">data6/a>.| (unsigned long)6a href="+code=out" class="sref">out6/a>).& 6a href="+code=alignmask" class="sref">alignmask6/a>)e
 L161">.1616/a>................return 6a href="+code=shash_finup_unaligned" class="sref">shash_finup_unaligned6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L162">.1626/a>e
 L163">.1636/a>........return 6a href="+code=shash" class="sref">shash6/a>->6a href="+code=finup" class="sref">finup6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L164">.1646/a>}e
 L165">.1656/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_shash_finup" class="sref">crypto_shash_finup6/a>);e
 L166">.1666/a>e
 L167">.1676/a>static int.6a href="+code=shash_digest_unaligned" class="sref">shash_digest_unaligned6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L168">.1686/a>..................................unsigned int.6a href="+code=len" class="sref">len6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L169">.1696/a>{e
 L170">.1706/a>........return 6a href="+code=crypto_shash_init" class="sref">crypto_shash_init6/a>(6a href="+code=desc" class="sref">desc6/a>).?:e
 L171">.1716/a>...............6a href="+code=crypto_shash_finup" class="sref">crypto_shash_finup6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L172">.1726/a>}e
 L173">.1736/a>e
 L174">.1746/a>int.6a href="+code=crypto_shash_digest" class="sref">crypto_shash_digest6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=data" class="sref">data6/a>,e
 L175">.1756/a>........................unsigned int.6a href="+code=len" class="sref">len6/a>, 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L176">.1766/a>{e
 L177">.1776/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>;e
 L178">.1786/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L179">.1796/a>........unsigned long.6a href="+code=alignmask" class="sref">alignmask6/a>.=.6a href="+code=crypto_shash_alignmask" class="sref">crypto_shash_alignmask6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L180">.18ptia>e
 L181">.1816/a>........if (((unsigned long)6a href="+code=data" class="sref">data6/a>.| (unsigned long)6a href="+code=out" class="sref">out6/a>).& 6a href="+code=alignmask" class="sref">alignmask6/a>)e
 L182">.1826/a>................return 6a href="+code=shash_digest_unaligned" class="sref">shash_digest_unaligned6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L183">.1836/a>e
 L184">.1846/a>........return 6a href="+code=shash" class="sref">shash6/a>->6a href="+code=digest" class="sref">digest6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a>, 6a href="+code=len" class="sref">len6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L185">.1856/a>}e
 L186">.1866/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_shash_digest" class="sref">crypto_shash_digest6/a>);e
 L187">.1876/a>e
 L188">.1886/a>static int.6a href="+code=shash_default_export" class="sref">shash_default_export6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, void.*6a href="+code=out" class="sref">out6/a>)e
 L189">.1896/a>{e
 L190">.1906/a>........6a href="+code=memcpy" class="sref">memcpy6/a>(6a href="+code=out" class="sref">out6/a>, 6a href="+code=shash_desc_ctx" class="sref">shash_desc_ctx6/a>(6a href="+code=desc" class="sref">desc6/a>), 6a href="+code=crypto_shash_descsiz>" class="sref">crypto_shash_descsiz>6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>));e
 L191">.1916/a>........return 0;e
 L192">.1926/a>}e
 L193">.1936/a>e
 L194">.1946/a>static int.6a href="+code=shash_default_import" class="sref">shash_default_import6/a>(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>, const void.*6a href="+code=in" class="sref">in6/a>)e
 L195">.1956/a>{e
 L196">.1966/a>........6a href="+code=memcpy" class="sref">memcpy6/a>(6a href="+code=shash_desc_ctx" class="sref">shash_desc_ctx6/a>(6a href="+code=desc" class="sref">desc6/a>), 6a href="+code=in" class="sref">in6/a>, 6a href="+code=crypto_shash_descsiz>" class="sref">crypto_shash_descsiz>6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>));e
 L197">.1976/a>........return 0;e
 L198">.1986/a>}e
 L199">.1996/a>e
 L200">.2006/a>static int.6a href="+code=shash_async_setkey" class="sref">shash_async_setkey6/a>(struct.6a href="+code=crypto_ahash" class="sref">crypto_ahash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=key" class="sref">key6/a>,e
 L201">.2016/a>..............................unsigned int.6a href="+code=keylen" class="sref">keylen6/a>)e
 L202">.2026/a>{e
 L203">.2036/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_ahash_ctx" class="sref">crypto_ahash_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L204">.2046/a>e
 L205">.2056/a>........return 6a href="+code=crypto_shash_setkey" class="sref">crypto_shash_setkey6/a>(*6a href="+code=ctx" class="sref">ctx6/a>, 6a href="+code=key" class="sref">key6/a>,.6a href="+code=keylen" class="sref">keylen6/a>);e
 L206">.2066/a>}e
 L207">.2076/a>e
 L208">.2086/a>static int.6a href="+code=shash_async_init" class="sref">shash_async_init6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>)e
 L209">.2096/a>{e
 L210">.2106/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_ahash_ctx" class="sref">crypto_ahash_ctx6/a>(6a href="+code=crypto_ahash_reqtfm" class="sref">crypto_ahash_reqtfm6/a>(6a href="+code=req" class="sref">req6/a>));e
 L211">.2116/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>);e
 L212">.2126/a>e
 L213">.2136/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>.=.*6a href="+code=ctx" class="sref">ctx6/a>;e
 L214">.2146/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=bas>" class="sref">bas>6/a>.6a href="+code=flags" class="sref">flags6/a>;e
 L215">.2156/a>e
 L216">.2166/a>........return 6a href="+code=crypto_shash_init" class="sref">crypto_shash_init6/a>(6a href="+code=desc" class="sref">desc6/a>);e
 L217">.2176/a>}e
 L218">.2186/a>e
 L219">.2196/a>int.6a href="+code=shash_ahash_update" class="sref">shash_ahash_update6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>,.struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>)e
 L220">.2206/a>{e
 L221">.2216/a>........struct.6a href="+code=crypto_hash_walk" class="sref">crypto_hash_walk6/a>.6a href="+code=walk" class="sref">walk6/a>;e
 L222">.2226/a>........int.6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L223">.2236/a>e
 L224">.2246/a>........for (6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_first" class="sref">crypto_hash_walk_first6/a>(6a href="+code=req" class="sref">req6/a>, &6a href="+code=walk" class="sref">walk6/a>); 6a href="+code=nbytes" class="sref">nbytes6/a>.>.0;e
 L225">.2256/a>.............6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_don>" class="sref">crypto_hash_walk_don>6/a>(&6a href="+code=walk" class="sref">walk6/a>,.6a href="+code=nbytes" class="sref">nbytes6/a>))e
 L226">.2266/a>................6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=walk" class="sref">walk6/a>.6a href="+code=data" class="sref">data6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>);e
 L227">.2276/a>e
 L228">.2286/a>........return 6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L229">.2296/a>}e
 L230">.2306/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_ahash_update" class="sref">shash_ahash_update6/a>);e
 L231">.2316/a>e
 L232">.2326/a>static int.6a href="+code=shash_async_update" class="sref">shash_async_update6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>)e
 L233">.2336/a>{e
 L234">.2346/a>........return 6a href="+code=shash_ahash_update" class="sref">shash_ahash_update6/a>(6a href="+code=req" class="sref">req6/a>, 6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>));e
 L235">.2356/a>}e
 L236">.2366/a>e
 L237">.2376/a>static int.6a href="+code=shash_async_final" class="sref">shash_async_final6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>)e
 L238">.2386/a>{e
 L239">.2396/a>........return 6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>(6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>), 6a href="+code=req" class="sref">req6/a>->6a href="+code=result" class="sref">result6/a>);e
 L240">.2406/a>}e
 L241">.2416/a>e
 L242">.2426/a>int.6a href="+code=shash_ahash_finup" class="sref">shash_ahash_finup6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>,.struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>)e
 L243">.2436/a>{e
 L244">.2446/a>........struct.6a href="+code=crypto_hash_walk" class="sref">crypto_hash_walk6/a>.6a href="+code=walk" class="sref">walk6/a>;e
 L245">.2456/a>........int.6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L246">.2466/a>e
 L247">.2476/a>........6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_first" class="sref">crypto_hash_walk_first6/a>(6a href="+code=req" class="sref">req6/a>, &6a href="+code=walk" class="sref">walk6/a>);e
 L248">.2486/a>........if (!6a href="+code=nbytes" class="sref">nbytes6/a>)e
 L249">.2496/a>................return 6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=req" class="sref">req6/a>->6a href="+code=result" class="sref">result6/a>);e
 L250">.25ptia>e
 L251">.2516/a>........do {e
 L252">.2526/a>................6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_last" class="sref">crypto_hash_walk_last6/a>(&6a href="+code=walk" class="sref">walk6/a>) ?e
 L253">.2536/a>.........................6a href="+code=crypto_shash_finup" class="sref">crypto_shash_finup6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=walk" class="sref">walk6/a>.6a href="+code=data" class="sref">data6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>,e
 L254">.2546/a>............................................6a href="+code=req" class="sref">req6/a>->6a href="+code=result" class="sref">result6/a>) :e
 L255">.2556/a>.........................6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=walk" class="sref">walk6/a>.6a href="+code=data" class="sref">data6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>);e
 L256">.2566/a>................6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_don>" class="sref">crypto_hash_walk_don>6/a>(&6a href="+code=walk" class="sref">walk6/a>,.6a href="+code=nbytes" class="sref">nbytes6/a>);e
 L257">.2576/a>........} while (6a href="+code=nbytes" class="sref">nbytes6/a>.>.0);e
 L258">.2586/a>e
 L259">.2596/a>........return 6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L260">.2606/a>}e
 L261">.2616/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_ahash_finup" class="sref">shash_ahash_finup6/a>);e
 L262">.2626/a>e
 L263">.2636/a>static int.6a href="+code=shash_async_finup" class="sref">shash_async_finup6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>)e
 L264">.2646/a>{e
 L265">.2656/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_ahash_ctx" class="sref">crypto_ahash_ctx6/a>(6a href="+code=crypto_ahash_reqtfm" class="sref">crypto_ahash_reqtfm6/a>(6a href="+code=req" class="sref">req6/a>));e
 L266">.2666/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>);e
 L267">.2676/a>e
 L268">.2686/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>.=.*6a href="+code=ctx" class="sref">ctx6/a>;e
 L269">.2696/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=bas>" class="sref">bas>6/a>.6a href="+code=flags" class="sref">flags6/a>;e
 L270">.27ptia>e
 L271">.2716/a>........return 6a href="+code=shash_ahash_finup" class="sref">shash_ahash_finup6/a>(6a href="+code=req" class="sref">req6/a>, 6a href="+code=desc" class="sref">desc6/a>);e
 L272">.2726/a>}e
 L273">.2736/a>e
 L274">.2746/a>int.6a href="+code=shash_ahash_digest" class="sref">shash_ahash_digest6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>,.struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>)e
 L275">.2756/a>{e
 L276">.2766/a>........struct.6a href="+code=scatterlist" class="sref">scatterlist6/a>.*6a href="+code=sg" class="sref">sg6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=src" class="sref">src6/a>;e
 L277">.2776/a>........unsigned int.6a href="+code=offset" class="sref">offset6/a>.=.6a href="+code=sg" class="sref">sg6/a>->6a href="+code=offset" class="sref">offset6/a>;e
 L278">.2786/a>........unsigned int.6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L279">.2796/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L280">.28ptia>e
 L281">.2816/a>........if (6a href="+code=nbytes" class="sref">nbytes6/a>.< 6a href="+code=min" class="sref">min6/a>(6a href="+code=sg" class="sref">sg6/a>->6a href="+code=length" class="sref">length6/a>,.((unsigned int)(6a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE6/a>)) -.6a href="+code=offset" class="sref">offset6/a>)) {e
 L282">.2826/a>................void.*6a href="+code=data" class="sref">data6/a>;e
 L283">.2836/a>e
 L284">.2846/a>................6a href="+code=data" class="sref">data6/a>.=.6a href="+code=kmap_atomic" class="sref">kmap_atomic6/a>(6a href="+code=sg_page" class="sref">sg_page6/a>(6a href="+code=sg" class="sref">sg6/a>));e
 L285">.2856/a>................6a href="+code=err" class="sref">err6/a>.=.6a href="+code=crypto_shash_digest" class="sref">crypto_shash_digest6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a> +.6a href="+code=offset" class="sref">offset6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>,e
 L286">.2866/a>..........................................6a href="+code=req" class="sref">req6/a>->6a href="+code=result" class="sref">result6/a>);e
 L287">.2876/a>................6a href="+code=kunmap_atomic" class="sref">kunmap_atomic6/a>(6a href="+code=data" class="sref">data6/a>);e
 L288">.2886/a>................6a href="+code=crypto_yield" class="sref">crypto_yield6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>);e
 L289">.2896/a>........} elsee
 L290">.2906/a>................6a href="+code=err" class="sref">err6/a>.=.6a href="+code=crypto_shash_init" class="sref">crypto_shash_init6/a>(6a href="+code=desc" class="sref">desc6/a>).?:e
 L291">.2916/a>......................6a href="+code=shash_ahash_finup" class="sref">shash_ahash_finup6/a>(6a href="+code=req" class="sref">req6/a>, 6a href="+code=desc" class="sref">desc6/a>);e
 L292">.2926/a>e
 L293">.2936/a>........return 6a href="+code=err" class="sref">err6/a>;e
 L294">.2946/a>}e
 L295">.2956/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_ahash_digest" class="sref">shash_ahash_digest6/a>);e
 L296">.2966/a>e
 L297">.2976/a>static int.6a href="+code=shash_async_digest" class="sref">shash_async_digest6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>)e
 L298">.2986/a>{e
 L299">.2996/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_ahash_ctx" class="sref">crypto_ahash_ctx6/a>(6a href="+code=crypto_ahash_reqtfm" class="sref">crypto_ahash_reqtfm6/a>(6a href="+code=req" class="sref">req6/a>));e
 L300">.3006/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>);e
 L301">.3016/a>e
 L302">.3026/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>.=.*6a href="+code=ctx" class="sref">ctx6/a>;e
 L303">.3036/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=bas>" class="sref">bas>6/a>.6a href="+code=flags" class="sref">flags6/a>;e
 L304">.3046/a>e
 L305">.3056/a>........return 6a href="+code=shash_ahash_digest" class="sref">shash_ahash_digest6/a>(6a href="+code=req" class="sref">req6/a>, 6a href="+code=desc" class="sref">desc6/a>);e
 L306">.3066/a>}e
 L307">.3076/a>e
 L308">.3086/a>static int.6a href="+code=shash_async_export" class="sref">shash_async_export6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>,.void.*6a href="+code=out" class="sref">out6/a>)e
 L309">.3096/a>{e
 L310">.3106/a>........return 6a href="+code=crypto_shash_export" class="sref">crypto_shash_export6/a>(6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>), 6a href="+code=out" class="sref">out6/a>);e
 L311">.3116/a>}e
 L312">.3126/a>e
 L313">.3136/a>static int.6a href="+code=shash_async_import" class="sref">shash_async_import6/a>(struct.6a href="+code=ahash_request" class="sref">ahash_request6/a>.*6a href="+code=req" class="sref">req6/a>,.const void.*6a href="+code=in" class="sref">in6/a>)e
 L314">.3146/a>{e
 L315">.3156/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_ahash_ctx" class="sref">crypto_ahash_ctx6/a>(6a href="+code=crypto_ahash_reqtfm" class="sref">crypto_ahash_reqtfm6/a>(6a href="+code=req" class="sref">req6/a>));e
 L316">.3166/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.6a href="+code=ahash_request_ctx" class="sref">ahash_request_ctx6/a>(6a href="+code=req" class="sref">req6/a>);e
 L317">.3176/a>e
 L318">.3186/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>.=.*6a href="+code=ctx" class="sref">ctx6/a>;e
 L319">.3196/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=req" class="sref">req6/a>->6a href="+code=bas>" class="sref">bas>6/a>.6a href="+code=flags" class="sref">flags6/a>;e
 L320">.32ptia>e
 L321">.3216/a>........return 6a href="+code=crypto_shash_import" class="sref">crypto_shash_import6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=in" class="sref">in6/a>);e
 L322">.3226/a>}e
 L323">.3236/a>e
 L324">.3246/a>static void.6a href="+code=crypto_exit_shash_ops_async" class="sref">crypto_exit_shash_ops_async6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>)e
 L325">.3256/a>{e
 L326">.3266/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L327">.3276/a>e
 L328">.3286/a>........6a href="+code=crypto_free_shash" class="sref">crypto_free_shash6/a>(*6a href="+code=ctx" class="sref">ctx6/a>);e
 L329">.3296/a>}e
 L330">.33ptia>e
 L331">.3316/a>int.6a href="+code=crypto_init_shash_ops_async" class="sref">crypto_init_shash_ops_async6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>)e
 L332">.3326/a>{e
 L333">.3336/a>........struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=calg" class="sref">calg6/a>.=.6a href="+code=tfm" class="sref">tfm6/a>->6a href="+code=__crt_alg" class="sref">__crt_alg6/a>;e
 L334">.3346/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>.=.6a href="+code=__crypto_shash_alg" class="sref">__crypto_shash_alg6/a>(6a href="+code=calg" class="sref">calg6/a>);e
 L335">.3356/a>........struct.6a href="+code=crypto_ahash" class="sref">crypto_ahash6/a>.*6a href="+code=crt" class="sref">crt6/a>.=.6a href="+code=__crypto_ahash_cast" class="sref">__crypto_ahash_cast6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L336">.3366/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.**6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L337">.3376/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=shash" class="sref">shash6/a>;e
 L338">.3386/a>e
 L339">.3396/a>........if (!6a href="+code=crypto_mod_get" class="sref">crypto_mod_get6/a>(6a href="+code=calg" class="sref">calg6/a>))e
 L340">.3406/a>................return -6a href="+code=EAGAIN" class="sref">EAGAIN6/a>;e
 L341">.3416/a>e
 L342">.3426/a>........6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_create_tfm" class="sref">crypto_create_tfm6/a>(6a href="+code=calg" class="sref">calg6/a>, &6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>);e
 L343">.3436/a>........if (6a href="+code=IS_ERR" class="sref">IS_ERR6/a>(6a href="+code=shash" class="sref">shash6/a>)) {e
 L344">.3446/a>................6a href="+code=crypto_mod_put" class="sref">crypto_mod_put6/a>(6a href="+code=calg" class="sref">calg6/a>);e
 L345">.3456/a>................return 6a href="+code=PTR_ERR" class="sref">PTR_ERR6/a>(6a href="+code=shash" class="sref">shash6/a>);e
 L346">.3466/a>........}e
 L347">.3476/a>e
 L348">.3486/a>........*6a href="+code=ctx" class="sref">ctx6/a>.=.6a href="+code=shash" class="sref">shash6/a>;e
 L349">.3496/a>........6a href="+code=tfm" class="sref">tfm6/a>->6a href="+code=exit" class="sref">exit6/a>.=.6a href="+code=crypto_exit_shash_ops_async" class="sref">crypto_exit_shash_ops_async6/a>;e
 L350">.35ptia>e
 L351">.3516/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=init" class="sref">init6/a>.=.6a href="+code=shash_async_init" class="sref">shash_async_init6/a>;e
 L352">.3526/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=update" class="sref">update6/a>.=.6a href="+code=shash_async_update" class="sref">shash_async_update6/a>;e
 L353">.3536/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=final" class="sref">final6/a>.=.6a href="+code=shash_async_final" class="sref">shash_async_final6/a>;e
 L354">.3546/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=finup" class="sref">finup6/a>.=.6a href="+code=shash_async_finup" class="sref">shash_async_finup6/a>;e
 L355">.3556/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=digest" class="sref">digest6/a>.=.6a href="+code=shash_async_digest" class="sref">shash_async_digest6/a>;e
 L356">.3566/a>e
 L357">.3576/a>........if (6a href="+code=alg" class="sref">alg6/a>->6a href="+code=setkey" class="sref">setkey6/a>)e
 L358">.3586/a>................6a href="+code=crt" class="sref">crt6/a>->6a href="+code=setkey" class="sref">setkey6/a>.=.6a href="+code=shash_async_setkey" class="sref">shash_async_setkey6/a>;e
 L359">.3596/a>........if (6a href="+code=alg" class="sref">alg6/a>->6a href="+code=export" class="sref">export6/a>)e
 L360">.3606/a>................6a href="+code=crt" class="sref">crt6/a>->6a href="+code=export" class="sref">export6/a>.=.6a href="+code=shash_async_export" class="sref">shash_async_export6/a>;e
 L361">.3616/a>........if (6a href="+code=alg" class="sref">alg6/a>->6a href="+code=import" class="sref">import6/a>)e
 L362">.3626/a>................6a href="+code=crt" class="sref">crt6/a>->6a href="+code=import" class="sref">import6/a>.=.6a href="+code=shash_async_import" class="sref">shash_async_import6/a>;e
 L363">.3636/a>e
 L364">.3646/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=reqsiz>" class="sref">reqsiz>6/a>.=.siz>of(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>) +.6a href="+code=crypto_shash_descsiz>" class="sref">crypto_shash_descsiz>6/a>(6a href="+code=shash" class="sref">shash6/a>);e
 L365">.3656/a>e
 L366">.3666/a>........return 0;e
 L367">.3676/a>}e
 L368">.3686/a>e
 L369">.3696/a>static int.6a href="+code=shash_compat_setkey" class="sref">shash_compat_setkey6/a>(struct.6a href="+code=crypto_hash" class="sref">crypto_hash6/a>.*6a href="+code=tfm" class="sref">tfm6/a>, const 6a href="+code=u8" class="sref">u86/a>.*6a href="+code=key" class="sref">key6/a>,e
 L370">.3706/a>...............................unsigned int.6a href="+code=keylen" class="sref">keylen6/a>)e
 L371">.3716/a>{e
 L372">.3726/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_hash_ctx" class="sref">crypto_hash_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L373">.3736/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.*6a href="+code=descp" class="sref">descp6/a>;e
 L374">.3746/a>e
 L375">.3756/a>........return 6a href="+code=crypto_shash_setkey" class="sref">crypto_shash_setkey6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>, 6a href="+code=key" class="sref">key6/a>,.6a href="+code=keylen" class="sref">keylen6/a>);e
 L376">.3766/a>}e
 L377">.3776/a>e
 L378">.3786/a>static int.6a href="+code=shash_compat_init" class="sref">shash_compat_init6/a>(struct.6a href="+code=hash_desc" class="sref">hash_desc6/a>.*6a href="+code=hdesc" class="sref">hdesc6/a>)e
 L379">.3796/a>{e
 L380">.3806/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_hash_ctx" class="sref">crypto_hash_ctx6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=tfm" class="sref">tfm6/a>);e
 L381">.3816/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.*6a href="+code=descp" class="sref">descp6/a>;e
 L382">.3826/a>e
 L383">.3836/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=flags" class="sref">flags6/a>;e
 L384">.3846/a>e
 L385">.3856/a>........return 6a href="+code=crypto_shash_init" class="sref">crypto_shash_init6/a>(6a href="+code=desc" class="sref">desc6/a>);e
 L386">.3866/a>}e
 L387">.3876/a>e
 L388">.3886/a>static int.6a href="+code=shash_compat_update" class="sref">shash_compat_update6/a>(struct.6a href="+code=hash_desc" class="sref">hash_desc6/a>.*6a href="+code=hdesc" class="sref">hdesc6/a>,.struct.6a href="+code=scatterlist" class="sref">scatterlist6/a>.*6a href="+code=sg" class="sref">sg6/a>,e
 L389">.3896/a>...............................unsigned int.6a href="+code=len" class="sref">len6/a>)e
 L390">.3906/a>{e
 L391">.3916/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_hash_ctx" class="sref">crypto_hash_ctx6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=tfm" class="sref">tfm6/a>);e
 L392">.3926/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.*6a href="+code=descp" class="sref">descp6/a>;e
 L393">.3936/a>........struct.6a href="+code=crypto_hash_walk" class="sref">crypto_hash_walk6/a>.6a href="+code=walk" class="sref">walk6/a>;e
 L394">.3946/a>........int.6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L395">.3956/a>e
 L396">.3966/a>........for (6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_first_compat" class="sref">crypto_hash_walk_first_compat6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>, &6a href="+code=walk" class="sref">walk6/a>,.6a href="+code=sg" class="sref">sg6/a>,.6a href="+code=len" class="sref">len6/a>);e
 L397">.3976/a>.............6a href="+code=nbytes" class="sref">nbytes6/a>.>.0;.6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_hash_walk_don>" class="sref">crypto_hash_walk_don>6/a>(&6a href="+code=walk" class="sref">walk6/a>,.6a href="+code=nbytes" class="sref">nbytes6/a>))e
 L398">.3986/a>................6a href="+code=nbytes" class="sref">nbytes6/a>.=.6a href="+code=crypto_shash_update" class="sref">crypto_shash_update6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=walk" class="sref">walk6/a>.6a href="+code=data" class="sref">data6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>);e
 L399">.3996/a>e
 L400">.4006/a>........return 6a href="+code=nbytes" class="sref">nbytes6/a>;e
 L401">.4016/a>}e
 L402">.4026/a>e
 L403">.4036/a>static int.6a href="+code=shash_compat_final" class="sref">shash_compat_final6/a>(struct.6a href="+code=hash_desc" class="sref">hash_desc6/a>.*6a href="+code=hdesc" class="sref">hdesc6/a>,.6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L404">.4046/a>{e
 L405">.4056/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_hash_ctx" class="sref">crypto_hash_ctx6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=tfm" class="sref">tfm6/a>);e
 L406">.4066/a>e
 L407">.4076/a>........return 6a href="+code=crypto_shash_final" class="sref">crypto_shash_final6/a>(*6a href="+code=descp" class="sref">descp6/a>, 6a href="+code=out" class="sref">out6/a>);e
 L408">.4086/a>}e
 L409">.4096/a>e
 L410">.4106/a>static int.6a href="+code=shash_compat_digest" class="sref">shash_compat_digest6/a>(struct.6a href="+code=hash_desc" class="sref">hash_desc6/a>.*6a href="+code=hdesc" class="sref">hdesc6/a>,.struct.6a href="+code=scatterlist" class="sref">scatterlist6/a>.*6a href="+code=sg" class="sref">sg6/a>,e
 L411">.4116/a>...............................unsigned int.6a href="+code=nbytes" class="sref">nbytes6/a>,.6a href="+code=u8" class="sref">u86/a>.*6a href="+code=out" class="sref">out6/a>)e
 L412">.4126/a>{e
 L413">.4136/a>........unsigned int.6a href="+code=offset" class="sref">offset6/a>.=.6a href="+code=sg" class="sref">sg6/a>->6a href="+code=offset" class="sref">offset6/a>;e
 L414">.4146/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L415">.4156/a>e
 L416">.4166/a>........if (6a href="+code=nbytes" class="sref">nbytes6/a>.< 6a href="+code=min" class="sref">min6/a>(6a href="+code=sg" class="sref">sg6/a>->6a href="+code=length" class="sref">length6/a>,.((unsigned int)(6a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE6/a>)) -.6a href="+code=offset" class="sref">offset6/a>)) {e
 L417">.4176/a>................struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_hash_ctx" class="sref">crypto_hash_ctx6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=tfm" class="sref">tfm6/a>);e
 L418">.4186/a>................struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.*6a href="+code=descp" class="sref">descp6/a>;e
 L419">.4196/a>................void.*6a href="+code=data" class="sref">data6/a>;e
 L420">.42ptia>e
 L421">.4216/a>................6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>.=.6a href="+code=hdesc" class="sref">hdesc6/a>->6a href="+code=flags" class="sref">flags6/a>;e
 L422">.4226/a>e
 L423">.4236/a>................6a href="+code=data" class="sref">data6/a>.=.6a href="+code=kmap_atomic" class="sref">kmap_atomic6/a>(6a href="+code=sg_page" class="sref">sg_page6/a>(6a href="+code=sg" class="sref">sg6/a>));e
 L424">.4246/a>................6a href="+code=err" class="sref">err6/a>.=.6a href="+code=crypto_shash_digest" class="sref">crypto_shash_digest6/a>(6a href="+code=desc" class="sref">desc6/a>, 6a href="+code=data" class="sref">data6/a> +.6a href="+code=offset" class="sref">offset6/a>, 6a href="+code=nbytes" class="sref">nbytes6/a>,.6a href="+code=out" class="sref">out6/a>);e
 L425">.4256/a>................6a href="+code=kunmap_atomic" class="sref">kunmap_atomic6/a>(6a href="+code=data" class="sref">data6/a>);e
 L426">.4266/a>................6a href="+code=crypto_yield" class="sref">crypto_yield6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=flags" class="sref">flags6/a>);e
 L427">.4276/a>................goto.6a href="+code=out" class="sref">out6/a>;e
 L428">.4286/a>........}e
 L429">.4296/a>e
 L430">.4306/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash_compat_init" class="sref">shash_compat_init6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>);e
 L431">.4316/a>........if (6a href="+code=err" class="sref">err6/a>)e
 L432">.4326/a>................goto.6a href="+code=out" class="sref">out6/a>;e
 L433">.4336/a>e
 L434">.4346/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash_compat_update" class="sref">shash_compat_update6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>,.6a href="+code=sg" class="sref">sg6/a>,.6a href="+code=nbytes" class="sref">nbytes6/a>);e
 L435">.4356/a>........if (6a href="+code=err" class="sref">err6/a>)e
 L436">.4366/a>................goto.6a href="+code=out" class="sref">out6/a>;e
 L437">.4376/a>e
 L438">.4386/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash_compat_final" class="sref">shash_compat_final6/a>(6a href="+code=hdesc" class="sref">hdesc6/a>,.6a href="+code=out" class="sref">out6/a>);e
 L439">.4396/a>e
 L440">.4406/a>6a href="+code=out" class="sref">out6/a>:e
 L441">.4416/a>........return 6a href="+code=err" class="sref">err6/a>;e
 L442">.4426/a>}e
 L443">.4436/a>e
 L444">.4446/a>static void.6a href="+code=crypto_exit_shash_ops_compat" class="sref">crypto_exit_shash_ops_compat6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>)e
 L445">.4456/a>{e
 L446">.4466/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L447">.4476/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>.=.*6a href="+code=descp" class="sref">descp6/a>;e
 L448">.4486/a>e
 L449">.4496/a>........6a href="+code=crypto_free_shash" class="sref">crypto_free_shash6/a>(6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>);e
 L450">.4506/a>........6a href="+code=kzfree" class="sref">kzfree6/a>(6a href="+code=desc" class="sref">desc6/a>);e
 L451">.4516/a>}e
 L452">.4526/a>e
 L453">.4536/a>static int.6a href="+code=crypto_init_shash_ops_compat" class="sref">crypto_init_shash_ops_compat6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>)e
 L454">.4546/a>{e
 L455">.4556/a>........struct.6a href="+code=hash_tfm" class="sref">hash_tfm6/a>.*6a href="+code=crt" class="sref">crt6/a>.=.&6a href="+code=tfm" class="sref">tfm6/a>->6a href="+code=crt_hash" class="sref">crt_hash6/a>;e
 L456">.4566/a>........struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=calg" class="sref">calg6/a>.=.6a href="+code=tfm" class="sref">tfm6/a>->6a href="+code=__crt_alg" class="sref">__crt_alg6/a>;e
 L457">.4576/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>.=.6a href="+code=__crypto_shash_alg" class="sref">__crypto_shash_alg6/a>(6a href="+code=calg" class="sref">calg6/a>);e
 L458">.4586/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.**6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=crypto_tfm_ctx" class="sref">crypto_tfm_ctx6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L459">.4596/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=shash" class="sref">shash6/a>;e
 L460">.4606/a>........struct.6a href="+code=shash_desc" class="sref">shash_desc6/a>.*6a href="+code=desc" class="sref">desc6/a>;e
 L461">.4616/a>e
 L462">.4626/a>........if (!6a href="+code=crypto_mod_get" class="sref">crypto_mod_get6/a>(6a href="+code=calg" class="sref">calg6/a>))e
 L463">.4636/a>................return -6a href="+code=EAGAIN" class="sref">EAGAIN6/a>;e
 L464">.4646/a>e
 L465">.4656/a>........6a href="+code=shash" class="sref">shash6/a>.=.6a href="+code=crypto_create_tfm" class="sref">crypto_create_tfm6/a>(6a href="+code=calg" class="sref">calg6/a>, &6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>);e
 L466">.4666/a>........if (6a href="+code=IS_ERR" class="sref">IS_ERR6/a>(6a href="+code=shash" class="sref">shash6/a>)) {e
 L467">.4676/a>................6a href="+code=crypto_mod_put" class="sref">crypto_mod_put6/a>(6a href="+code=calg" class="sref">calg6/a>);e
 L468">.4686/a>................return 6a href="+code=PTR_ERR" class="sref">PTR_ERR6/a>(6a href="+code=shash" class="sref">shash6/a>);e
 L469">.4696/a>........}e
 L470">.47ptia>e
 L471">.4716/a>........6a href="+code=desc" class="sref">desc6/a>.=.6a href="+code=kmalloc" class="sref">kmalloc6/a>(siz>of(*6a href="+code=desc" class="sref">desc6/a>) +.6a href="+code=crypto_shash_descsiz>" class="sref">crypto_shash_descsiz>6/a>(6a href="+code=shash" class="sref">shash6/a>),e
 L472">.4726/a>.......................6a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL6/a>);e
 L473">.4736/a>........if (!6a href="+code=desc" class="sref">desc6/a>) {e
 L474">.4746/a>................6a href="+code=crypto_free_shash" class="sref">crypto_free_shash6/a>(6a href="+code=shash" class="sref">shash6/a>);e
 L475">.4756/a>................return -6a href="+code=ENOMEM" class="sref">ENOMEM6/a>;e
 L476">.4766/a>........}e
 L477">.4776/a>e
 L478">.4786/a>........*6a href="+code=descp" class="sref">descp6/a>.=.6a href="+code=desc" class="sref">desc6/a>;e
 L479">.4796/a>........6a href="+code=desc" class="sref">desc6/a>->6a href="+code=tfm" class="sref">tfm6/a>.=.6a href="+code=shash" class="sref">shash6/a>;e
 L480">.4806/a>........6a href="+code=tfm" class="sref">tfm6/a>->6a href="+code=exit" class="sref">exit6/a>.=.6a href="+code=crypto_exit_shash_ops_compat" class="sref">crypto_exit_shash_ops_compat6/a>;e
 L481">.4816/a>e
 L482">.4826/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=init" class="sref">init6/a>.=.6a href="+code=shash_compat_init" class="sref">shash_compat_init6/a>;e
 L483">.4836/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=update" class="sref">update6/a>.=.6a href="+code=shash_compat_update" class="sref">shash_compat_update6/a>;e
 L484">.4846/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=final" class="sref">final6/a>..=.6a href="+code=shash_compat_final" class="sref">shash_compat_final6/a>;e
 L485">.4856/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=digest" class="sref">digest6/a>.=.6a href="+code=shash_compat_digest" class="sref">shash_compat_digest6/a>;e
 L486">.4866/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=setkey" class="sref">setkey6/a>.=.6a href="+code=shash_compat_setkey" class="sref">shash_compat_setkey6/a>;e
 L487">.4876/a>e
 L488">.4886/a>........6a href="+code=crt" class="sref">crt6/a>->6a href="+code=digestsiz>" class="sref">digestsiz>6/a>.=.6a href="+code=alg" class="sref">alg6/a>->6a href="+code=digestsiz>" class="sref">digestsiz>6/a>;e
 L489">.4896/a>e
 L490">.4906/a>........return 0;e
 L491">.4916/a>}e
 L492">.4926/a>e
 L493">.4936/a>static int.6a href="+code=crypto_init_shash_ops" class="sref">crypto_init_shash_ops6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=type" class="sref">type6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=mask" class="sref">mask6/a>)e
 L494">.4946/a>{e
 L495">.4956/a>........switch (6a href="+code=mask" class="sref">mask6/a> &.6a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK6/a>) {e
 L496">.4966/a>........case.6a href="+code=CRYPTO_ALG_TYPE_HASH_MASK" class="sref">CRYPTO_ALG_TYPE_HASH_MASK6/a>:e
 L497">.4976/a>............. ..return 6a href="+code=crypto_init_shash_ops_compat" class="sref">crypto_init_shash_ops_compat6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L498">.4986/a>........}e
 L499">.4996/a>e
 L500">.5006/a>........return -6a href="+code=EINVAL" class="sref">EINVAL6/a>;e
 L501">.5016/a>}e
 L502">.5026/a>e
 L503">.5036/a>static unsigned int.6a href="+code=crypto_shash_ctxsiz>" class="sref">crypto_shash_ctxsiz>6/a>(struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=type" class="sref">type6/a>,e
 L504">.5046/a>.........................................6a href="+code=u32" class="sref">u326/a>.6a href="+code=mask" class="sref">mask6/a>)e
 L505">.5056/a>{e
 L506">.5066/a>........switch (6a href="+code=mask" class="sref">mask6/a> &.6a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK6/a>) {e
 L507">.5076/a>........case.6a href="+code=CRYPTO_ALG_TYPE_HASH_MASK" class="sref">CRYPTO_ALG_TYPE_HASH_MASK6/a>:e
 L508">.5086/a>................return siz>of(struct.6a href="+code=shash_desc" class="sref">shash_desc6/a> *);e
 L509">.5096/a>........}e
 L510">.51ptia>e
 L511">.5116/a>........return 0;e
 L512">.5126/a>}e
 L513">.5136/a>e
 L514">.5146/a>static int.6a href="+code=crypto_shash_init_tfm" class="sref">crypto_shash_init_tfm6/a>(struct.6a href="+code=crypto_tfm" class="sref">crypto_tfm6/a>.*6a href="+code=tfm" class="sref">tfm6/a>)e
 L515">.5156/a>{e
 L516">.5166/a>........struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=hash" class="sref">hash6/a>.=.6a href="+code=__crypto_shash_cast" class="sref">__crypto_shash_cast6/a>(6a href="+code=tfm" class="sref">tfm6/a>);e
 L517">.5176/a>e
 L518">.5186/a>........6a href="+code=hash" class="sref">hash6/a>->6a href="+code=descsiz>" class="sref">descsiz>6/a>.=.6a href="+code=crypto_shash_alg" class="sref">crypto_shash_alg6/a>(6a href="+code=hash" class="sref">hash6/a>)->6a href="+code=descsiz>" class="sref">descsiz>6/a>;e
 L519">.5196/a>........return 0;e
 L520">.52ptia>}e
 L521">.5216/a>e
 L522">.5226/a>static unsigned int.6a href="+code=crypto_shash_extsiz>" class="sref">crypto_shash_extsiz>6/a>(struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L523">.5236/a>{e
 L524">.5246/a>........return 6a href="+code=alg" class="sref">alg6/a>->6a href="+code=cra_ctxsiz>" class="sref">cra_ctxsiz>6/a>;e
 L525">.5256/a>}e
 L526">.5266/a>e
 L527">.5276/a>#ifdef.6a href="+code=CONFIG_NET" class="sref">CONFIG_NET6/a>e
 L528">.5286/a>static int.6a href="+code=crypto_shash_report" class="sref">crypto_shash_report6/a>(struct.6a href="+code=sk_buff" class="sref">sk_buff6/a>.*6a href="+code=skb" class="sref">skb6/a>,.struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L529">.5296/a>{e
 L530">.5306/a>........struct.6a href="+code=crypto_report_hash" class="sref">crypto_report_hash6/a>.6a href="+code=rhash" class="sref">rhash6/a>;e
 L531">.5316/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=salg" class="sref">salg6/a>.=.6a href="+code=__crypto_shash_alg" class="sref">__crypto_shash_alg6/a>(6a href="+code=alg" class="sref">alg6/a>);e
 L532">.5326/a>e
 L533">.5336/a>........6a href="+code=snprintf" class="sref">snprintf6/a>(6a href="+code=rhash" class="sref">rhash6/a>.6a href="+code=type" class="sref">type6/a>,.6a href="+code=CRYPTO_MAX_ALG_NAME" class="sref">CRYPTO_MAX_ALG_NAME6/a>,.6span class="string">"%s",.6span class="string">"shash");e
 L534">.5346/a>........6a href="+code=rhash" class="sref">rhash6/a>.6a href="+code=blocksiz>" class="sref">blocksiz>6/a>.=.6a href="+code=alg" class="sref">alg6/a>->6a href="+code=cra_blocksiz>" class="sref">cra_blocksiz>6/a>;e
 L535">.5356/a>........6a href="+code=rhash" class="sref">rhash6/a>.6a href="+code=digestsiz>" class="sref">digestsiz>6/a>.=.6a href="+code=salg" class="sref">salg6/a>->6a href="+code=digestsiz>" class="sref">digestsiz>6/a>;e
 L536">.5366/a>e
 L537">.5376/a>........if (6a href="+code=nla_put" class="sref">nla_put6/a>(6a href="+code=skb" class="sref">skb6/a>,.6a href="+code=CRYPTOCFGA_REPORT_HASH" class="sref">CRYPTOCFGA_REPORT_HASH6/a>,e
 L538">.5386/a>....................siz>of(struct.6a href="+code=crypto_report_hash" class="sref">crypto_report_hash6/a>), &6a href="+code=rhash" class="sref">rhash6/a>))e
 L539">.5396/a>................goto.6a href="+code=nla_put_failur>" class="sref">nla_put_failur>6/a>;e
 L540">.5406/a>........return 0;e
 L541">.5416/a>e
 L542">.5426/a>6a href="+code=nla_put_failur>" class="sref">nla_put_failur>6/a>:e
 L543">.5436/a>........return -6a href="+code=EMSGSIZE" class="sref">EMSGSIZE6/a>;e
 L544">.5446/a>}e
 L545">.5456/a>#elsee
 L546">.5466/a>static int.6a href="+code=crypto_shash_report" class="sref">crypto_shash_report6/a>(struct.6a href="+code=sk_buff" class="sref">sk_buff6/a>.*6a href="+code=skb" class="sref">skb6/a>,.struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L547">.5476/a>{e
 L548">.5486/a>........return -6a href="+code=ENOSYS" class="sref">ENOSYS6/a>;e
 L549">.5496/a>}e
 L550">.5506/a>#endife
 L551">.5516/a>e
 L552">.5526/a>static void.6a href="+code=crypto_shash_show" class="sref">crypto_shash_show6/a>(struct.6a href="+code=seq_file" class="sref">seq_file6/a>.*6a href="+code=m" class="sref">m6/a>,.struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L553">.5536/a>........6a href="+code=__attribute__" class="sref">__attribute__6/a>.((6a href="+code=unused" class="sref">unused6/a>));e
 L554">.5546/a>static void.6a href="+code=crypto_shash_show" class="sref">crypto_shash_show6/a>(struct.6a href="+code=seq_file" class="sref">seq_file6/a>.*6a href="+code=m" class="sref">m6/a>,.struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L555">.5556/a>{e
 L556">.5566/a>........struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=salg" class="sref">salg6/a>.=.6a href="+code=__crypto_shash_alg" class="sref">__crypto_shash_alg6/a>(6a href="+code=alg" class="sref">alg6/a>);e
 L557">.5576/a>e
 L558">.5586/a>........6a href="+code=seq_printf" class="sref">seq_printf6/a>(6a href="+code=m" class="sref">m6/a>,.6span class="string">"type.........: shash\n");e
 L559">.5596/a>........6a href="+code=seq_printf" class="sref">seq_printf6/a>(6a href="+code=m" class="sref">m6/a>,.6span class="string">"blocksiz>....: %u\n",.6a href="+code=alg" class="sref">alg6/a>->6a href="+code=cra_blocksiz>" class="sref">cra_blocksiz>6/a>);e
 L560">.5606/a>........6a href="+code=seq_printf" class="sref">seq_printf6/a>(6a href="+code=m" class="sref">m6/a>,.6span class="string">"digestsiz>...: %u\n",.6a href="+code=salg" class="sref">salg6/a>->6a href="+code=digestsiz>" class="sref">digestsiz>6/a>);e
 L561">.5616/a>}e
 L562">.5626/a>e
 L563">.5636/a>static const.struct.6a href="+code=crypto_type" class="sref">crypto_type6/a>.6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>.=.{e
 L564">.5646/a>.........6a href="+code=ctxsiz>" class="sref">ctxsiz>6/a>.=.6a href="+code=crypto_shash_ctxsiz>" class="sref">crypto_shash_ctxsiz>6/a>,e
 L565">.5656/a>.........6a href="+code=extsiz>" class="sref">extsiz>6/a>.=.6a href="+code=crypto_shash_extsiz>" class="sref">crypto_shash_extsiz>6/a>,e
 L566">.5666/a>.........6a href="+code=init" class="sref">init6/a>.=.6a href="+code=crypto_init_shash_ops" class="sref">crypto_init_shash_ops6/a>,e
 L567">.5676/a>.........6a href="+code=init_tfm" class="sref">init_tfm6/a>.=.6a href="+code=crypto_shash_init_tfm" class="sref">crypto_shash_init_tfm6/a>,e
 L568">.5686/a>#ifdef.6a href="+code=CONFIG_PROC_FS" class="sref">CONFIG_PROC_FS6/a>e
 L569">.5696/a>.........6a href="+code=show" class="sref">show6/a>.=.6a href="+code=crypto_shash_show" class="sref">crypto_shash_show6/a>,e
 L570">.5706/a>#endife
 L571">.5716/a>.........6a href="+code=report" class="sref">report6/a>.=.6a href="+code=crypto_shash_report" class="sref">crypto_shash_report6/a>,e
 L572">.5726/a>.........6a href="+code=maskclear" class="sref">maskclear6/a>.=.~6a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK6/a>,e
 L573">.5736/a>.........6a href="+code=maskset" class="sref">maskset6/a>.=.6a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK6/a>,e
 L574">.5746/a>.........6a href="+code=type" class="sref">type6/a>.=.6a href="+code=CRYPTO_ALG_TYPE_SHASH" class="sref">CRYPTO_ALG_TYPE_SHASH6/a>,e
 L575">.5756/a>.........6a href="+code=tfmsiz>" class="sref">tfmsiz>6/a>.=.6a href="+code=offsetof" class="sref">offsetof6/a>(struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>,.6a href="+code=bas>" class="sref">bas>6/a>),e
 L576">.5766/a>};e
 L577">.5776/a>e
 L578">.5786/a>struct.6a href="+code=crypto_shash" class="sref">crypto_shash6/a>.*6a href="+code=crypto_alloc_shash" class="sref">crypto_alloc_shash6/a>(const.char.*6a href="+code=alg_nam>" class="sref">alg_nam>6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=type" class="sref">type6/a>,e
 L579">.5796/a>........................................6a href="+code=u32" class="sref">u326/a>.6a href="+code=mask" class="sref">mask6/a>)e
 L580">.5806/a>{e
 L581">.5816/a>........return 6a href="+code=crypto_alloc_tfm" class="sref">crypto_alloc_tfm6/a>(6a href="+code=alg_nam>" class="sref">alg_nam>6/a>,.&6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>,.6a href="+code=type" class="sref">type6/a>,.6a href="+code=mask" class="sref">mask6/a>);e
 L582">.5826/a>}e
 L583">.5836/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_alloc_shash" class="sref">crypto_alloc_shash6/a>);e
 L584">.5846/a>e
 L585">.5856/a>static int.6a href="+code=shash_prepare_alg" class="sref">shash_prepare_alg6/a>(struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L586">.5866/a>{e
 L587">.5876/a>........struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=bas>" class="sref">bas>6/a>.=.&6a href="+code=alg" class="sref">alg6/a>->6a href="+code=bas>" class="sref">bas>6/a>;e
 L588">.5886/a>e
 L589">.5896/a>........if (6a href="+code=alg" class="sref">alg6/a>->6a href="+code=digestsiz>" class="sref">digestsiz>6/a> > 6a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE6/a> / 8 ||e
 L590">.5906/a>............6a href="+code=alg" class="sref">alg6/a>->6a href="+code=descsiz>" class="sref">descsiz>6/a>.> 6a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE6/a> / 8 ||e
 L591">.5916/a>............6a href="+code=alg" class="sref">alg6/a>->6a href="+code=statesiz>" class="sref">statesiz>6/a>.> 6a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE6/a> / 8)e
 L592">.5926/a>................return -6a href="+code=EINVAL" class="sref">EINVAL6/a>;e
 L593">.5936/a>e
 L594">.5946/a>........6a href="+code=bas>" class="sref">bas>6/a>->6a href="+code=cra_type" class="sref">cra_type6/a>.=.&6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>;e
 L595">.5956/a>........6a href="+code=bas>" class="sref">bas>6/a>->6a href="+code=cra_flags" class="sref">cra_flags6/a>.&=.~6a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK6/a>;e
 L596">.5966/a>........6a href="+code=bas>" class="sref">bas>6/a>->6a href="+code=cra_flags" class="sref">cra_flags6/a>.|=.6a href="+code=CRYPTO_ALG_TYPE_SHASH" class="sref">CRYPTO_ALG_TYPE_SHASH6/a>;e
 L597">.5976/a>e
 L598">.5986/a>........if (!6a href="+code=alg" class="sref">alg6/a>->6a href="+code=finup" class="sref">finup6/a>)e
 L599">.5996/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=finup" class="sref">finup6/a>.=.6a href="+code=shash_finup_unaligned" class="sref">shash_finup_unaligned6/a>;e
 L600">.6006/a>........if (!6a href="+code=alg" class="sref">alg6/a>->6a href="+code=digest" class="sref">digest6/a>)e
 L601">.6016/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=digest" class="sref">digest6/a>.=.6a href="+code=shash_digest_unaligned" class="sref">shash_digest_unaligned6/a>;e
 L602">.6026/a>........if (!6a href="+code=alg" class="sref">alg6/a>->6a href="+code=export" class="sref">export6/a>).{e
 L603">.6036/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=export" class="sref">export6/a>.=.6a href="+code=shash_default_export" class="sref">shash_default_export6/a>;e
 L604">.6046/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=import" class="sref">import6/a>.=.6a href="+code=shash_default_import" class="sref">shash_default_import6/a>;e
 L605">.6056/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=statesiz>" class="sref">statesiz>6/a>.=.6a href="+code=alg" class="sref">alg6/a>->6a href="+code=descsiz>" class="sref">descsiz>6/a>;e
 L606">.6066/a>........}e
 L607">.6076/a>........if (!6a href="+code=alg" class="sref">alg6/a>->6a href="+code=setkey" class="sref">setkey6/a>)e
 L608">.6086/a>................6a href="+code=alg" class="sref">alg6/a>->6a href="+code=setkey" class="sref">setkey6/a>.=.6a href="+code=shash_no_setkey" class="sref">shash_no_setkey6/a>;e
 L609">.6096/a>e
 L610">.6106/a>........return 0;e
 L611">.6116/a>}e
 L612">.6126/a>e
 L613">.6136/a>int.6a href="+code=crypto_register_shash" class="sref">crypto_register_shash6/a>(struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L614">.6146/a>{e
 L615">.6156/a>........struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=bas>" class="sref">bas>6/a>.=.&6a href="+code=alg" class="sref">alg6/a>->6a href="+code=bas>" class="sref">bas>6/a>;e
 L616">.6166/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L617">.6176/a>e
 L618">.6186/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash_prepare_alg" class="sref">shash_prepare_alg6/a>(6a href="+code=alg" class="sref">alg6/a>);e
 L619">.6196/a>........if (6a href="+code=err" class="sref">err6/a>)e
 L620">.6206/a>................return 6a href="+code=err" class="sref">err6/a>;e
 L621">.6216/a>e
 L622">.6226/a>........return 6a href="+code=crypto_register_alg" class="sref">crypto_register_alg6/a>(6a href="+code=bas>" class="sref">bas>6/a>);e
 L623">.6236/a>}e
 L624">.6246/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_register_shash" class="sref">crypto_register_shash6/a>);e
 L625">.6256/a>e
 L626">.6266/a>int.6a href="+code=crypto_unregister_shash" class="sref">crypto_unregister_shash6/a>(struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>)e
 L627">.6276/a>{e
 L628">.6286/a>........return 6a href="+code=crypto_unregister_alg" class="sref">crypto_unregister_alg6/a>(&6a href="+code=alg" class="sref">alg6/a>->6a href="+code=bas>" class="sref">bas>6/a>);e
 L629">.6296/a>}e
 L630">.6306/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_unregister_shash" class="sref">crypto_unregister_shash6/a>);e
 L631">.6316/a>e
 L632">.6326/a>int.6a href="+code=shash_register_instanc>" class="sref">shash_register_instanc>6/a>(struct.6a href="+code=crypto_template" class="sref">crypto_template6/a>.*6a href="+code=tmpl" class="sref">tmpl6/a>,e
 L633">.6336/a>............................struct.6a href="+code=shash_instanc>" class="sref">shash_instanc>6/a>.*6a href="+code=inst" class="sref">inst6/a>)e
 L634">.6346/a>{e
 L635">.6356/a>........int.6a href="+code=err" class="sref">err6/a>;e
 L636">.6366/a>e
 L637">.6376/a>........6a href="+code=err" class="sref">err6/a>.=.6a href="+code=shash_prepare_alg" class="sref">shash_prepare_alg6/a>(&6a href="+code=inst" class="sref">inst6/a>->6a href="+code=alg" class="sref">alg6/a>);e
 L638">.6386/a>........if (6a href="+code=err" class="sref">err6/a>)e
 L639">.6396/a>................return 6a href="+code=err" class="sref">err6/a>;e
 L640">.64ptia>e
 L641">.6416/a>........return 6a href="+code=crypto_register_instanc>" class="sref">crypto_register_instanc>6/a>(6a href="+code=tmpl" class="sref">tmpl6/a>,.6a href="+code=shash_crypto_instanc>" class="sref">shash_crypto_instanc>6/a>(6a href="+code=inst" class="sref">inst6/a>));e
 L642">.6426/a>}e
 L643">.6436/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_register_instanc>" class="sref">shash_register_instanc>6/a>);e
 L644">.6446/a>e
 L645">.6456/a>void.6a href="+code=shash_free_instanc>" class="sref">shash_free_instanc>6/a>(struct.6a href="+code=crypto_instanc>" class="sref">crypto_instanc>6/a>.*6a href="+code=inst" class="sref">inst6/a>)e
 L646">.6466/a>{e
 L647">.6476/a>........6a href="+code=crypto_drop_spawn" class="sref">crypto_drop_spawn6/a>(6a href="+code=crypto_instanc>_ctx" class="sref">crypto_instanc>_ctx6/a>(6a href="+code=inst" class="sref">inst6/a>));e
 L648">.6486/a>........6a href="+code=kfree" class="sref">kfree6/a>(6a href="+code=shash_instanc>" class="sref">shash_instanc>6/a>(6a href="+code=inst" class="sref">inst6/a>));e
 L649">.6496/a>}e
 L650">.6506/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_free_instanc>" class="sref">shash_free_instanc>6/a>);e
 L651">.6516/a>e
 L652">.6526/a>int.6a href="+code=crypto_init_shash_spawn" class="sref">crypto_init_shash_spawn6/a>(struct.6a href="+code=crypto_shash_spawn" class="sref">crypto_shash_spawn6/a>.*6a href="+code=spawn" class="sref">spawn6/a>,e
 L653">.6536/a>............................struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>,e
 L654">.6546/a>............................struct.6a href="+code=crypto_instanc>" class="sref">crypto_instanc>6/a>.*6a href="+code=inst" class="sref">inst6/a>)e
 L655">.6556/a>{e
 L656">.6566/a>........return 6a href="+code=crypto_init_spawn2" class="sref">crypto_init_spawn26/a>(&6a href="+code=spawn" class="sref">spawn6/a>->6a href="+code=bas>" class="sref">bas>6/a>,.&6a href="+code=alg" class="sref">alg6/a>->6a href="+code=bas>" class="sref">bas>6/a>,.6a href="+code=inst" class="sref">inst6/a>,e
 L657">.6576/a>............. ....................&6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>);e
 L658">.6586/a>}e
 L659">.6596/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=crypto_init_shash_spawn" class="sref">crypto_init_shash_spawn6/a>);e
 L660">.66ptia>e
 L661">.6616/a>struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>.*6a href="+code=shash_attr_alg" class="sref">shash_attr_alg6/a>(struct.6a href="+code=rtattr" class="sref">rtattr6/a>.*6a href="+code=rta" class="sref">rta6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=type" class="sref">type6/a>,.6a href="+code=u32" class="sref">u326/a>.6a href="+code=mask" class="sref">mask6/a>)e
 L662">.6626/a>{e
 L663">.6636/a>........struct.6a href="+code=crypto_alg" class="sref">crypto_alg6/a>.*6a href="+code=alg" class="sref">alg6/a>;e
 L664">.6646/a>e
 L665">.6656/a>........6a href="+code=alg" class="sref">alg6/a>.=.6a href="+code=crypto_attr_alg2" class="sref">crypto_attr_alg26/a>(6a href="+code=rta" class="sref">rta6/a>,.&6a href="+code=crypto_shash_type" class="sref">crypto_shash_type6/a>,.6a href="+code=type" class="sref">type6/a>,.6a href="+code=mask" class="sref">mask6/a>);e
 L666">.6666/a>........return 6a href="+code=IS_ERR" class="sref">IS_ERR6/a>(6a href="+code=alg" class="sref">alg6/a>) ? 6a href="+code=ERR_CAST" class="sref">ERR_CAST6/a>(6a href="+code=alg" class="sref">alg6/a>) :e
 L667">.6676/a>............. .6a href="+code=container_of" class="sref">container_of6/a>(6a href="+code=alg" class="sref">alg6/a>,.struct.6a href="+code=shash_alg" class="sref">shash_alg6/a>,.6a href="+code=bas>" class="sref">bas>6/a>);e
 L668">.6686/a>}e
 L669">.6696/a>6a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL6/a>(6a href="+code=shash_attr_alg" class="sref">shash_attr_alg6/a>);e
 L670">.67ptia>e
 L671">.6716/a>6a href="+code=MODULE_LICENSE" class="sref">MODULE_LICENSE6/a>(6span class="string">"GPL");e
 L672">.6726/a>6a href="+code=MODULE_DESCRIPTION" class="sref">MODULE_DESCRIPTION6/a>(6span class="string">"Synchronous cryptographic hash type");e
 L673">.6736/a>
lxr.linux.no kindly hosted by 6a href="http://www.redpill-linpro.no">Redpill Linpro AS6/a>,.provider of Linux consulting and operations services sinc> 1995.