linux/crypto/aead.c
<<
opti6.3/spae=" 6.3/form=" 6.3a opti6. href="../linux+v3.7.9/crypto/aead.c">opti6.3img src="../.static/gfx/right.png" alt=">>">op3/spae="op3spae class="lxr_search">optiopti6.3input typ vhidden" nam vnavtarget" > v">opti6.3input typ vtext" nam vsearch" id vsearch">opti6.3butt" typ vsubmit">Searchopti6.Prefs" 6.3/a>op3/spae="ti6. .3/div="ti6. .3form acalue="ajax+*" method="post" onsubmit="return false;">op3input typ vhidden" nam vajax_lookup" id vajax_lookup" > v">oti6. .3/form="oti6. .3div class="headingbott"m">" 3div id vfile_contents"=
. .13/a>3spae class="comment">/*3/spae=". .23/a>3spae class="comment"> * AEAD: Authenticated Encrypt6"
	with Associated Data3/spae=". .33/a>3spae class="comment"> *3/spae=". .43/a>3spae class="comment"> * This file provides API support for AEAD algorithms.3/spae=". .53/a>3spae class="comment"> *3/spae=". .63/a>3spae class="comment"> * Copyright (c) 2007 Herbert Xu <herbert@gondor.apaea.org.au>3/spae=". .73/a>3spae class="comment"> *3/spae=". .83/a>3spae class="comment"> * This program is free software; you cae redistribute it and/or modify it3/spae=". .93/a>3spae class="comment"> * under the terms of the GNU General Public License as published by the Free3/spae=". 9.1"a>3spae class="comment"> * Software Foundat6"
; either vers6"
	2 of the License, or (at your  value)3/spae=". 113/a>3spae class="comment"> * any later vers6"
.3/spae=". 123/a>3spae class="comment"> *3/spae=". 133/a>3spae class="comment"> */3/spae=". 143/a>". 153/a>#include <crypto/internal/aead.h3/a>>". 163/a>#include <linux/err.h3/a>>". 173/a>#include <linux/init.h3/a>>". 183/a>#include <linux/kernel.h3/a>>". 193/a>#include <linux/module.h3/a>>". 203/a>#include <linux/rtnetlink.h3/a>>". 213/a>#include <linux/sched.h3/a>>". 223/a>#include <linux/slab.h3/a>>". 233/a>#include <linux/seq_file.h3/a>>". 243/a>#include <linux/cryptouser.h3/a>>". 253/a>#include <net/netlink.h3/a>>". 263/a>". 273/a>#include "internal.h3/a>"". 283/a>". 293/a>static int.3a href="+code=setkey_unaligned" class="sref">setkey_unaligned3/a>(struct.3a href="+code=crypto_aead" class="sref">crypto_aead3/a> *3a href="+code=tfm" class="sref">tfm3/a>, const.3a href="+code=u8" class="sref">u83/a> *3a href="+code=key" class="sref">key3/a>,". 303/a>                            unsigned int.3a href="+code=keylen" class="sref">keylen3/a>)". 313/a>{". 323/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.3a href="+code=crypto_aead_alg" class="sref">crypto_aead_alg3/a>(3a href="+code=tfm" class="sref">tfm3/a>);". 333/a>        unsigned long.3a href="+code=alignmask" class="sref">alignmask3/a> =.3a href="+code=crypto_aead_alignmask" class="sref">crypto_aead_alignmask3/a>(3a href="+code=tfm" class="sref">tfm3/a>);". 343/a>        int.3a href="+code=ret" class="sref">ret3/a>;". 353/a>        3a href="+code=u8" class="sref">u83/a> *3a href="+code=buffer" class="sref">buffer3/a>, *3a href="+code=alignbuffer" class="sref">alignbuffer3/a>;". 363/a>        unsigned long.3a href="+code=absize" class="sref">absize3/a>;". 373/a>". 383/a>        3a href="+code=absize" class="sref">absize3/a> =.3a href="+code=keylen" class="sref">keylen3/a> +.3a href="+code=alignmask" class="sref">alignmask3/a>;". 393/a>        3a href="+code=buffer" class="sref">buffer3/a> =.3a href="+code=kmalloc" class="sref">kmalloc3/a>(3a href="+code=absize" class="sref">absize3/a>,.3a href="+code=GFP_ATOMIC" class="sref">GFP_ATOMIC3/a>);". 403/a>        if (!3a href="+code=buffer" class="sref">buffer3/a>)". 413/a>                return -3a href="+code=ENOMEM" class="sref">ENOMEM3/a>;". 423/a>". 433/a>        3a href="+code=alignbuffer" class="sref">alignbuffer3/a> =.(3a href="+code=u8" class="sref">u83/a> *)3a href="+code=ALIGN" class="sref">ALIGN3/a>((unsigned long)3a href="+code=buffer" class="sref">buffer3/a>, 3a href="+code=alignmask" class="sref">alignmask3/a> + 1);". 443/a>        3a href="+code=memcpy" class="sref">memcpy3/a>(3a href="+code=alignbuffer" class="sref">alignbuffer3/a>, 3a href="+code=key" class="sref">key3/a>,.3a href="+code=keylen" class="sref">keylen3/a>);". 453/a>        3a href="+code=ret" class="sref">ret3/a> =.3a href="+code=aead" class="sref">aead3/a>->3a href="+code=setkey" class="sref">setkey3/a>(3a href="+code=tfm" class="sref">tfm3/a>, 3a href="+code=alignbuffer" class="sref">alignbuffer3/a>, 3a href="+code=keylen" class="sref">keylen3/a>);". 463/a>        3a href="+code=memset" class="sref">memset3/a>(3a href="+code=alignbuffer" class="sref">alignbuffer3/a>, 0, 3a href="+code=keylen" class="sref">keylen3/a>);". 473/a>        3a href="+code=kfree" class="sref">kfree3/a>(3a href="+code=buffer" class="sref">buffer3/a>);". 483/a>        return 3a href="+code=ret" class="sref">ret3/a>;". 493/a>}". 503/a>". 513/a>static int.3a href="+code=setkey" class="sref">setkey3/a>(struct.3a href="+code=crypto_aead" class="sref">crypto_aead3/a> *3a href="+code=tfm" class="sref">tfm3/a>, const.3a href="+code=u8" class="sref">u83/a> *3a href="+code=key" class="sref">key3/a>, unsigned int.3a href="+code=keylen" class="sref">keylen3/a>)". 523/a>{". 533/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.3a href="+code=crypto_aead_alg" class="sref">crypto_aead_alg3/a>(3a href="+code=tfm" class="sref">tfm3/a>);". 543/a>        unsigned long.3a href="+code=alignmask" class="sref">alignmask3/a> =.3a href="+code=crypto_aead_alignmask" class="sref">crypto_aead_alignmask3/a>(3a href="+code=tfm" class="sref">tfm3/a>);". 553/a>". 563/a>        if ((unsigned long)3a href="+code=key" class="sref">key3/a> &.3a href="+code=alignmask" class="sref">alignmask3/a>)". 573/a>                return 3a href="+code=setkey_unaligned" class="sref">setkey_unaligned3/a>(3a href="+code=tfm" class="sref">tfm3/a>, 3a href="+code=key" class="sref">key3/a>,.3a href="+code=keylen" class="sref">keylen3/a>);". 583/a>". 593/a>        return 3a href="+code=aead" class="sref">aead3/a>->3a href="+code=setkey" class="sref">setkey3/a>(3a href="+code=tfm" class="sref">tfm3/a>, 3a href="+code=key" class="sref">key3/a>,.3a href="+code=keylen" class="sref">keylen3/a>);". 603/a>}". 613/a>". 623/a>int.3a href="+code=crypto_aead_setauthsize" class="sref">crypto_aead_setauthsize3/a>(struct.3a href="+code=crypto_aead" class="sref">crypto_aead3/a> *3a href="+code=tfm" class="sref">tfm3/a>, unsigned int.3a href="+code=authsize" class="sref">authsize3/a>)". 633/a>{". 643/a>        struct.3a href="+code=aead_tfm" class="sref">aead_tfm3/a> *3a href="+code=crt" class="sref">crt3/a> =.3a href="+code=crypto_aead_crt" class="sref">crypto_aead_crt3/a>(3a href="+code=tfm" class="sref">tfm3/a>);". 653/a>        int.3a href="+code=err" class="sref">err3/a>;". 663/a>". 673/a>        if (3a href="+code=authsize" class="sref">authsize3/a> >.3a href="+code=crypto_aead_alg" class="sref">crypto_aead_alg3/a>(3a href="+code=tfm" class="sref">tfm3/a>)->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>)". 683/a>                return -3a href="+code=EINVAL" class="sref">EINVAL3/a>;". 693/a>". 703/a>        if (3a href="+code=crypto_aead_alg" class="sref">crypto_aead_alg3/a>(3a href="+code=tfm" class="sref">tfm3/a>)->3a href="+code=setauthsize" class="sref">setauthsize3/a>) {". 713/a>                3a href="+code=err" class="sref">err3/a> =.3a href="+code=crypto_aead_alg" class="sref">crypto_aead_alg3/a>(3a href="+code=tfm" class="sref">tfm3/a>)->3a href="+code=setauthsize" class="sref">setauthsize3/a>(3a href="+code=crt" class="sref">crt3/a>->3a href="+code=base" class="sref">base3/a>, 3a href="+code=authsize" class="sref">authsize3/a>);". 723/a>                if (3a href="+code=err" class="sref">err3/a>)". 733/a>                        return 3a href="+code=err" class="sref">err3/a>;". 743/a>        }". 753/a>". 763/a>        3a href="+code=crypto_aead_crt" class="sref">crypto_aead_crt3/a>(3a href="+code=crt" class="sref">crt3/a>->3a href="+code=base" class="sref">base3/a>)->3a href="+code=authsize" class="sref">authsize3/a> =.3a href="+code=authsize" class="sref">authsize3/a>;". 773/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=authsize" class="sref">authsize3/a> =.3a href="+code=authsize" class="sref">authsize3/a>;". 783/a>        return 0;". 793/a>}". 8.1"a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_aead_setauthsize" class="sref">crypto_aead_setauthsize3/a>);". 813/a>". 823/a>static unsigned int.3a href="+code=crypto_aead_ctxsize" class="sref">crypto_aead_ctxsize3/a>(struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=type" class="sref">type3/a>,". 833/a>                                        3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)". 843/a>{". 853/a>        return 3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_ctxsize" class="sref">cra_ctxsize3/a>;". 863/a>}". 873/a>". 883/a>static int.3a href="+code=no_givcrypt" class="sref">no_givcrypt3/a>(struct.3a href="+code=aead_givcrypt_request" class="sref">aead_givcrypt_request3/a> *3a href="+code=req" class="sref">req3/a>)". 893/a>{". 903/a>        return -3a href="+code=ENOSYS" class="sref">ENOSYS3/a>;". 913/a>}". 923/a>". 933/a>static int.3a href="+code=crypto_init_aead_ops" class="sref">crypto_init_aead_ops3/a>(struct.3a href="+code=crypto_tfm" class="sref">crypto_tfm3/a> *3a href="+code=tfm" class="sref">tfm3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)". 943/a>{". 953/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=alg" class="sref">alg3/a> =.&3a href="+code=tfm" class="sref">tfm3/a>->3a href="+code=__crt_alg" class="sref">__crt_alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;". 963/a>        struct.3a href="+code=aead_tfm" class="sref">aead_tfm3/a> *3a href="+code=crt" class="sref">crt3/a> =.&3a href="+code=tfm" class="sref">tfm3/a>->3a href="+code=crt_aead" class="sref">crt_aead3/a>;". 973/a>". 983/a>        if (3a href="+code=max" class="sref">max3/a>(3a href="+code=alg" class="sref">alg3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>, 3a href="+code=alg" class="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>) >.3a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE3/a> / 8)". 993/a>                return -3a href="+code=EINVAL" class="sref">EINVAL3/a>;".1003/a>".1013/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=setkey" class="sref">setkey3/a> =.3a href="+code=tfm" class="sref">tfm3/a>->3a href="+code=__crt_alg" class="sref">__crt_alg3/a>->3a href="+code=cra_flags" class="sref">cra_flags3/a> &.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a> ?".1023/a>                      3a href="+code=alg" class="sref">alg3/a>->3a href="+code=setkey" class="sref">setkey3/a> :.3a href="+code=setkey" class="sref">setkey3/a>;".1033/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=encrypt" class="sref">encrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=encrypt" class="sref">encrypt3/a>;".1043/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=decrypt" class="sref">decrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=decrypt" class="sref">decrypt3/a>;".1053/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=givencrypt" class="sref">givencrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=givencrypt" class="sref">givencrypt3/a> ?:.3a href="+code=no_givcrypt" class="sref">no_givcrypt3/a>;".1063/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=givdecrypt" class="sref">givdecrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=givdecrypt" class="sref">givdecrypt3/a> ?:.3a href="+code=no_givcrypt" class="sref">no_givcrypt3/a>;".1073/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=base" class="sref">base3/a> =.3a href="+code=__crypto_aead_cast" class="sref">__crypto_aead_cast3/a>(3a href="+code=tfm" class="sref">tfm3/a>);".1083/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=ivsize" class="sref">ivsize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>;".1093/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=authsize" class="sref">authsize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>;".1103/a>".1113/a>        return 0;".1123/a>}".1133/a>".1143/a>#ifdef.3a href="+code=CONFIG_NET" class="sref">CONFIG_NET3/a>".1153/a>static int.3a href="+code=crypto_aead_report" class="sref">crypto_aead_report3/a>(struct.3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".1163/a>{".1173/a>        struct.3a href="+code=crypto_report_aead" class="sref">crypto_report_aead3/a> 3a href="+code=raead" class="sref">raead3/a>;".1183/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.&3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;".1193/a>".1203/a>        3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=raead" class="sref">raead3/a>.3a href="+code=type" class="sref">type3/a>, 3a href="+code=CRYPTO_MAX_ALG_NAME" class="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">"%s""aead".1213/a>        3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=raead" class="sref">raead3/a>.3a href="+code=geniv" class="sref">geniv3/a>, 3a href="+code=CRYPTO_MAX_ALG_NAME" class="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">"%s".1223/a>                 3a href="+code=aead" class="sref">aead3/a>->3a href="+code=geniv" class="sref">geniv3/a> ?:.3spae class="string">"<built-in>".1233/a>".1243/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=blocksize" class="sref">blocksize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_blocksize" class="sref">cra_blocksize3/a>;".1253/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=maxauthsize" class="sref">maxauthsize3/a> =.3a href="+code=aead" class="sref">aead3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>;".1263/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=ivsize" class="sref">ivsize3/a> =.3a href="+code=aead" class="sref">aead3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>;".1273/a>".1283/a>        if (3a href="+code=nla_put" class="sref">nla_put3/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=CRYPTOCFGA_REPORT_AEAD" class="sref">CRYPTOCFGA_REPORT_AEAD3/a>,".1293/a>                    sizeof(struct.3a href="+code=crypto_report_aead" class="sref">crypto_report_aead3/a>),.&3a href="+code=raead" class="sref">raead3/a>))".1303/a>                goto.3a href="+code=nla_put_failure" class="sref">nla_put_failure3/a>;".1313/a>        return 0;".1323/a>".1333/a>3a href="+code=nla_put_failure" class="sref">nla_put_failure3/a>:".1343/a>        return -3a href="+code=EMSGSIZE" class="sref">EMSGSIZE3/a>;".1353/a>}".1363/a>#else".1373/a>static int.3a href="+code=crypto_aead_report" class="sref">crypto_aead_report3/a>(struct.3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".1383/a>{".1393/a>        return -3a href="+code=ENOSYS" class="sref">ENOSYS3/a>;".1403/a>}".1413/a>#endif".1423/a>".1433/a>static void.3a href="+code=crypto_aead_show" class="sref">crypto_aead_show3/a>(struct.3a href="+code=seq_file" class="sref">seq_file3/a> *3a href="+code=m" class="sref">m3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".1443/a>        3a href="+code=__attribute__" class="sref">__attribute__3/a> ((3a href="+code=unused" class="sref">unused3/a>));".1453/a>static void.3a href="+code=crypto_aead_show" class="sref">crypto_aead_show3/a>(struct.3a href="+code=seq_file" class="sref">seq_file3/a> *3a href="+code=m" class="sref">m3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".1463/a>{".1473/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.&3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;".1483/a>".1493/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"type         : aead\n".1503/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"async        : %s\n"alg3/a>->3a href="+code=cra_flags" class="sref">cra_flags3/a> &.3a href="+code=CRYPTO_ALG_ASYNC" class="sref">CRYPTO_ALG_ASYNC3/a> ?".1513/a>                                             3spae class="string">"yes""no".1523/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"blocksize    : %u\n"alg3/a>->3a href="+code=cra_blocksize" class="sref">cra_blocksize3/a>);".1533/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"ivsize       : %u\n"aead3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>);".1543/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"maxauthsize  : %u\n"aead3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>);".1553/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"geniv        : %s\n"aead3/a>->3a href="+code=geniv" class="sref">geniv3/a> ?:.3spae class="string">"<built-in>".1563/a>}".1573/a>".1583/a>const.struct.3a href="+code=crypto_type" class="sref">crypto_type3/a> 3a href="+code=crypto_aead_type" class="sref">crypto_aead_type3/a> =.{".1593/a>        .3a href="+code=ctxsize" class="sref">ctxsize3/a> =.3a href="+code=crypto_aead_ctxsize" class="sref">crypto_aead_ctxsize3/a>,".1603/a>        .3a href="+code=init" class="sref">init3/a> =.3a href="+code=crypto_init_aead_ops" class="sref">crypto_init_aead_ops3/a>,".1613/a>#ifdef.3a href="+code=CONFIG_PROC_FS" class="sref">CONFIG_PROC_FS3/a>".1623/a>        .3a href="+code=show" class="sref">show3/a> =.3a href="+code=crypto_aead_show" class="sref">crypto_aead_show3/a>,".1633/a>#endif".1643/a>        .3a href="+code=report" class="sref">report3/a> =.3a href="+code=crypto_aead_report" class="sref">crypto_aead_report3/a>,".1653/a>};".1663/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_aead_type" class="sref">crypto_aead_type3/a>);".1673/a>".1683/a>static int.3a href="+code=aead_null_givencrypt" class="sref">aead_null_givencrypt3/a>(struct.3a href="+code=aead_givcrypt_request" class="sref">aead_givcrypt_request3/a> *3a href="+code=req" class="sref">req3/a>)".1693/a>{".1703/a>        return 3a href="+code=crypto_aead_encrypt" class="sref">crypto_aead_encrypt3/a>(&3a href="+code=req" class="sref">req3/a>->3a href="+code=areq" class="sref">areq3/a>);".1713/a>}".1723/a>".1733/a>static int.3a href="+code=aead_null_givdecrypt" class="sref">aead_null_givdecrypt3/a>(struct.3a href="+code=aead_givcrypt_request" class="sref">aead_givcrypt_request3/a> *3a href="+code=req" class="sref">req3/a>)".1743/a>{".1753/a>        return 3a href="+code=crypto_aead_decrypt" class="sref">crypto_aead_decrypt3/a>(&3a href="+code=req" class="sref">req3/a>->3a href="+code=areq" class="sref">areq3/a>);".1763/a>}".1773/a>".1783/a>static int.3a href="+code=crypto_init_nivaead_ops" class="sref">crypto_init_nivaead_ops3/a>(struct.3a href="+code=crypto_tfm" class="sref">crypto_tfm3/a> *3a href="+code=tfm" class="sref">tfm3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".1793/a>{".1803/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=alg" class="sref">alg3/a> =.&3a href="+code=tfm" class="sref">tfm3/a>->3a href="+code=__crt_alg" class="sref">__crt_alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;".1813/a>        struct.3a href="+code=aead_tfm" class="sref">aead_tfm3/a> *3a href="+code=crt" class="sref">crt3/a> =.&3a href="+code=tfm" class="sref">tfm3/a>->3a href="+code=crt_aead" class="sref">crt_aead3/a>;".1823/a>".1833/a>        if (3a href="+code=max" class="sref">max3/a>(3a href="+code=alg" class="sref">alg3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>, 3a href="+code=alg" class="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>) >.3a href="+code=PAGE_SIZE" class="sref">PAGE_SIZE3/a> / 8)".1843/a>                return -3a href="+code=EINVAL" class="sref">EINVAL3/a>;".1853/a>".1863/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=setkey" class="sref">setkey3/a> =.3a href="+code=setkey" class="sref">setkey3/a>;".1873/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=encrypt" class="sref">encrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=encrypt" class="sref">encrypt3/a>;".1883/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=decrypt" class="sref">decrypt3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=decrypt" class="sref">decrypt3/a>;".1893/a>        if (!3a href="+code=alg" class="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>) {".1903/a>                3a href="+code=crt" class="sref">crt3/a>->3a href="+code=givencrypt" class="sref">givencrypt3/a> =.3a href="+code=aead_null_givencrypt" class="sref">aead_null_givencrypt3/a>;".1913/a>                3a href="+code=crt" class="sref">crt3/a>->3a href="+code=givdecrypt" class="sref">givdecrypt3/a> =.3a href="+code=aead_null_givdecrypt" class="sref">aead_null_givdecrypt3/a>;".1923/a>        }".1933/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=base" class="sref">base3/a> =.3a href="+code=__crypto_aead_cast" class="sref">__crypto_aead_cast3/a>(3a href="+code=tfm" class="sref">tfm3/a>);".1943/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=ivsize" class="sref">ivsize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>;".1953/a>        3a href="+code=crt" class="sref">crt3/a>->3a href="+code=authsize" class="sref">authsize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>;".1963/a>".1973/a>        return 0;".1983/a>}".1993/a>".2003/a>#ifdef.3a href="+code=CONFIG_NET" class="sref">CONFIG_NET3/a>".2013/a>static int.3a href="+code=crypto_nivaead_report" class="sref">crypto_nivaead_report3/a>(struct.3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".2023/a>{".2033/a>        struct.3a href="+code=crypto_report_aead" class="sref">crypto_report_aead3/a> 3a href="+code=raead" class="sref">raead3/a>;".2043/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.&3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;".2053/a>".2063/a>        3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=raead" class="sref">raead3/a>.3a href="+code=type" class="sref">type3/a>, 3a href="+code=CRYPTO_MAX_ALG_NAME" class="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">"%s""nivaead".2073/a>        3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=raead" class="sref">raead3/a>.3a href="+code=geniv" class="sref">geniv3/a>, 3a href="+code=CRYPTO_MAX_ALG_NAME" class="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">"%s"aead3/a>->3a href="+code=geniv" class="sref">geniv3/a>);".2083/a>".2093/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=blocksize" class="sref">blocksize3/a> =.3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_blocksize" class="sref">cra_blocksize3/a>;".2103/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=maxauthsize" class="sref">maxauthsize3/a> =.3a href="+code=aead" class="sref">aead3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>;".2113/a>        3a href="+code=raead" class="sref">raead3/a>.3a href="+code=ivsize" class="sref">ivsize3/a> =.3a href="+code=aead" class="sref">aead3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>;".2123/a>".2133/a>        if (3a href="+code=nla_put" class="sref">nla_put3/a>(3a href="+code=skb" class="sref">skb3/a>, 3a href="+code=CRYPTOCFGA_REPORT_AEAD" class="sref">CRYPTOCFGA_REPORT_AEAD3/a>,".2143/a>                    sizeof(struct.3a href="+code=crypto_report_aead" class="sref">crypto_report_aead3/a>),.&3a href="+code=raead" class="sref">raead3/a>))".2153/a>                goto.3a href="+code=nla_put_failure" class="sref">nla_put_failure3/a>;".2163/a>        return 0;".2173/a>".2183/a>3a href="+code=nla_put_failure" class="sref">nla_put_failure3/a>:".2193/a>        return -3a href="+code=EMSGSIZE" class="sref">EMSGSIZE3/a>;".2203/a>}".2213/a>#else".2223/a>static int.3a href="+code=crypto_nivaead_report" class="sref">crypto_nivaead_report3/a>(struct.3a href="+code=sk_buff" class="sref">sk_buff3/a> *3a href="+code=skb" class="sref">skb3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".2233/a>{".2243/a>        return -3a href="+code=ENOSYS" class="sref">ENOSYS3/a>;".2253/a>}".2263/a>#endif".2273/a>".2283/a>".2293/a>static void.3a href="+code=crypto_nivaead_show" class="sref">crypto_nivaead_show3/a>(struct.3a href="+code=seq_file" class="sref">seq_file3/a> *3a href="+code=m" class="sref">m3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".2303/a>        3a href="+code=__attribute__" class="sref">__attribute__3/a> ((3a href="+code=unused" class="sref">unused3/a>));".2313/a>static void.3a href="+code=crypto_nivaead_show" class="sref">crypto_nivaead_show3/a>(struct.3a href="+code=seq_file" class="sref">seq_file3/a> *3a href="+code=m" class="sref">m3/a>, struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>)".2323/a>{".2333/a>        struct.3a href="+code=aead_alg" class="sref">aead_alg3/a> *3a href="+code=aead" class="sref">aead3/a> =.&3a href="+code=alg" class="sref">alg3/a>->3a href="+code=cra_aead" class="sref">cra_aead3/a>;".2343/a>".2353/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"type         : nivaead\n".2363/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"async        : %s\n"alg3/a>->3a href="+code=cra_flags" class="sref">cra_flags3/a> &.3a href="+code=CRYPTO_ALG_ASYNC" class="sref">CRYPTO_ALG_ASYNC3/a> ?".2373/a>                                             3spae class="string">"yes""no".2383/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"blocksize    : %u\n"alg3/a>->3a href="+code=cra_blocksize" class="sref">cra_blocksize3/a>);".2393/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"ivsize       : %u\n"aead3/a>->3a href="+code=ivsize" class="sref">ivsize3/a>);".2403/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"maxauthsize  : %u\n"aead3/a>->3a href="+code=maxauthsize" class="sref">maxauthsize3/a>);".2413/a>        3a href="+code=seq_printf" class="sref">seq_printf3/a>(3a href="+code=m" class="sref">m3/a>, 3spae class="string">"geniv        : %s\n"aead3/a>->3a href="+code=geniv" class="sref">geniv3/a>);".2423/a>}".2433/a>".2443/a>const.struct.3a href="+code=crypto_type" class="sref">crypto_type3/a> 3a href="+code=crypto_nivaead_type" class="sref">crypto_nivaead_type3/a> =.{".2453/a>        .3a href="+code=ctxsize" class="sref">ctxsize3/a> =.3a href="+code=crypto_aead_ctxsize" class="sref">crypto_aead_ctxsize3/a>,".2463/a>        .3a href="+code=init" class="sref">init3/a> =.3a href="+code=crypto_init_nivaead_ops" class="sref">crypto_init_nivaead_ops3/a>,".2473/a>#ifdef.3a href="+code=CONFIG_PROC_FS" class="sref">CONFIG_PROC_FS3/a>".2483/a>        .3a href="+code=show" class="sref">show3/a> =.3a href="+code=crypto_nivaead_show" class="sref">crypto_nivaead_show3/a>,".2493/a>#endif".2503/a>        .3a href="+code=report" class="sref">report3/a> =.3a href="+code=crypto_nivaead_report" class="sref">crypto_nivaead_report3/a>,".2513/a>};".2523/a>3a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" class="sref">crypto_nivaead_type3/a>);".2533/a>".2543/a>static int.3a href="+code=crypto_grab_nivaead" class="sref">crypto_grab_nivaead3/a>(struct.3a href="+code=crypto_aead_spawn" class="sref">crypto_aead_spawn3/a> *3a href="+code=spawn" class="sref">spawn3/a>,".2553/a>                               const.char *3a href="+code=nam " class="sref">nam 3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".2563/a>{".2573/a>        struct.3a href="+code=crypto_alg" class="sref">crypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>;".2583/a>        int.3a href="+code=err" class="sref">err3/a>;".2593/a>".2603/a>        3a href="+code=type" class="sref">type3/a> &= ~(3a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2613/a>        3a href="+code=type" class="sref">type3/a> |=.3a href="+code=CRYPTO_ALG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_AEAD3/a>;".2623/a>        3a href="+code=mask" class="sref">mask3/a> |=.3a href="+code=CRYPTO_ALG_TYPE_MASK" class="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>;".2633/a>".2643/a>        3a href="+code=alg" class="sref">alg3/a> =.3a href="+code=crypto_alg_mod_lookup" class="sref">crypto_alg_mod_lookup3/a>(3a href="+code=nam " class="sref">nam 3/a>, 3a href="+code=type" class="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".2653/a>        if (3a href="+code=IS_ERR" class="sref">IS_ERR3/a>(3a href="+code=alg" class="sref">alg3/a>))".2663/a>                return 3a href="+code=PTR_ERR" class="sref">PTR_ERR3/a>(3a href="+code=alg" class="sref">alg3/a>);".2673/a>".2683/a>        3a href="+code=err" class="sref">err3/a> =.3a href="+code=crypto_init_spawn" class="sref">crypto_init_spawn3/a>(&3a href="+code=spawn" class="sref">spawn3/a>->3a href="+code=base" class="sref">base3/a>, 3a href="+code=alg" class="sref">alg3/a>, 3a href="+code=spawn" class="sref">spawn3/a>->3a href="+code=base" class="sref">base3/a>.3a href="+code=inst" class="sref">inst3/a>, 3a href="+code=mask" class="sref">mask3/a>);".2693/a>        3a href="+code=crypto_mod_put" class="sref">crypto_mod_put3/a>(3a href="+code=alg" class="sref">alg3/a>);".2703/a>        return 3a href="+code=err" class="sref">err3/a>;".2713/a>}".2723/a>".2733/a>struct.3a href="+code=crypto_instance" class="sref">crypto_instance3/a> *3a href="+code=aead_geniv_alloc" class="sref">aead_geniv_alloc3/a>(struct.3a href="+code=crypto_template" class="sref">crypto_template3/a> *3a href="+code=tmpl" class="sref">tmpl3/a>,");"tmpl3/a>,"tmpl3/a>truct.3a href="+tTOCFGA_REPORT_AEAD" cl3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class74" id vL274" class="line" nam  vL265">.1753/a>        retur2 3a h27          const.char *3a href="+codeeeeeeeeeee"sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".1763/a>}".1773/a>"nam 3/a>, 3a href="+code=u32" clas271" id vL271" class="line" nam  vL268">.1783/a>static int.3a2href=27f="+code=aead_alg" class="sref">aeasref">crypto_aead_spawn3/a> *3a href="+code=spawn" class="sref">spawn3/a>,".1793/a>{"aeasref">cr+co_aead_type3/a>);"alg3/a>;";"<.1803/a>        struc2.3a h2ef="+code=aead_alg" class="sref">aeaef">crypto_instance3/a> *3a href="+code=aead_geniv_alloc" class="s>, 3a href="+code=mask" cla271" id vL271" class="line" nam  vL271">.1813/a>        struc2.3a h2ef="+code=aead_tfm" class="sref">aearypto_alg3/a> *3a href="+code=alg" class="sref">alg3/a>;".1823/a>"err3/a>;".1833/a>        if (32 href28.c#L264" id vL264" class="line" nam  vL124">.1843/a>             2  ret28e=alg" class="sref">alg3/a> =.3givdecrypt3/a>;"<cgetcr+co_aead_type3/a>);"alg3/a>)>truct.3a href="+tTOCFGL270" id vL270" class="line" nam  vL125">.1853/a>"s=.3a href="+code=crypto_init_spawn" class="ERR3/a>(3a href="+code=alg" class="sref">alg3/a>);";"<.1863/a>        3a hr2f="+c2de=crt" class= class="sref">IS_ERR3/a>(3a href="+code=alg" class="sref">alg3/a>))";"<.1873/a>        3a hr2f="+c28                      class="sref">err3/a>;" c_=alOL_GPL3/a>(3a hr c_=allass="sref">alg3/a>)=.3a href="+code=crypto_iL270" id vL270" class="line" nam  vL268">.1883/a>        3a hr2f="+c28.c#L229" id vL229" class="line" nam  vL129">.1893/a>        if (!2a hre2="+code=alg" class="sref">alg3/a>))";"<base3/a> |=.3a href="+code=CRYPTO_A^lass="sref">IS_ERs="sref">CRYPTO_ALG_TYPE_AEAD3/a>;"CRYPTO_ALG_GENIV3/a>);".1903/a>             2  3a 2ref="+code=crt" cl"sref">alg3/a>))";"<base3/a>)".1913/a>             2  3a 2ref="+code=crt" class= class="sref">err3/a>;" c_=alOL_GPL3/a>(3a hr c_=allass=ass="sref">EINVAL3/a>;".1923/a>        }".1933/a>        3a hr2f="+c2de=crt" class="sref">crt3/a>->, 3a href="+code=u32" claslg_mod_lookup" class="sref+co_="+c>, 3a href="+code=uss="sref+co_="+c>, 3lass="sref">alg3/a>)>truct.3a href="+tTOCFG[1]L270" id vL270" class="line" nam  vL124">.1943/a>        3a hr2f="+c2de=crt" class="sref">crt3/a>-=.3a href="+code=crypto_init_spawn" class="ERR3/a>(3a href="+code=alg" class="sref">alg3/a>)>, 3a href="+code=u32" clasL270" id vL270" class="line" nam  vL125">.1953/a>        3a hr2f="+c29+code=IS_ERR" class="sref">IS_ERR3/a>(3a href="+code=alg" class="sref">alg3/a>)>, 3a href="+code=u32" clasL256" id vL256" class="line" nam  vL126">.1963/a>"PTR_" c_=alOL_GPL3/a>(3a hr c_=allass="sref">alg3/a>)=.3a href="+code=crypto_iL270" id vL270" class="line" nam  vL127">.1973/a>        retur2 0;"<29.c#L268" id vL268" class="line" nam  vL128">.1983/a>}"err3/a> >, 3a href="+code=mask" clanit_spawn" class="kzeniv_alloc3/a>(struckzeniv_=crypte=cryp_alloc" class="s>, 3a href="+code=mask" cla) + te=cryp_alloc" class="s/a>,".1993/a>"alg3/a>->, 3a href="+code=mask" cla)70" id vL270" class="line3 nam  vL230">.2003/a>#ifdef.3a hre3="+co30ef="+code=crt" class= class="sref">err3/a>;" c_=alOL_GPL3/a>(3a hr c_=allass=ass="sref">EINVALNOMEMOL_GPL3/a>(3a hrNOMEMto_iL270" id vL270" class="line3 nam  vL231">.2013/a>static int.3a3href=3+code=70" id vL270" class="line3 2am  vL231">.1923/a>        }"sea>,"cry=aead_pto/ance3/a> *3a href="+code=aead_pto/lass="sref">alg3/a>)>, 3a href="+code=mask" cla)270" id vL270" class="line3 3am  vL231">.1933/a>        3a hr3.3a h30.c#L264" id vL264" class="line3 nam  vL234">.2043/a>        struc3.3a h3ef="+code=aead;geniv       comment">/* Ignore ot;.1953/a>        3a hr3to/ae30e=seq_printf" class="sref">s> |=.3a href="+code=CRYPTO_ALG_TYPE_MASK" clasef="+coe=reires_t; *3a href="+coe=reires_t;alg3/a>))";"<base3/a> |=.3a href="+code=CRYPTO_s="sref">alg3/a>, 3agivdecrypt3/a>;"<base3/a>)".1963/a>".2073/a>        3a hr3f="+c3de=snprintf" class="sref">snpef="+cosetcrypto_aead_spawn3/a> *3a href="+setcrypto_aeadlass="sref">alg3/a>)/a>,"err3/a> >, 3a href="+code=mask" cla2270" id vL270" class="line3 8am  vL237">.1983/a>}"err3/a> =.3a href="+code=crypto_init_spawn" class="sref">c>crypto_grab_nivaead3/a>(struct.3a href="+code=cryp"sref">alg3/a>)/a>,"err3/a> >, 3a href="+code=type" class="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".2093/a>        3a hr3f="+c30"+code=alg" class"sref">alg3/a>)=.3a href="+code=crypto_iL65" id vL265" class="line3 nam  vL230">.2103/a>        3a hr3f="+c31ef="+code=crt" class=t_failure" class="srryp_free_>, 3a href="+code=mryp_free_>, 3.c#L259" id vL259" class="line3 nam  vL231">.2113/a>        3a hr3f="+c31code=70" id vL270" class="line3 nam  vL232">.2123/a>"s=.3a href="+code=crypto_alg_mod_lookup" class="srefypto_aeadalg3/a> *3a href="+code=algypto_aeadalg3=cryp"sref">alg3/a>)/a>,".2133/a>        if (33 href31.c#L264" id vL264" class="line3 nam  vL234">.2143/a>             3     31e=crt" class="sref">crt3/a>-=.3a href="+code=crypto_initass="sref">EINVAL3/a>;".2153/a>             3  got31+code=IS_ERR" cla="sref">alg3/a>->3a href="+code=ivsize" class="sref">ivsiz_aead3/a>;"ivsize3/a> =.3a href="+code=aead" clL65" id vL265" class="line3 6am  vL236">.2163/a>        retur3 0;"<31n 3a href="+code=PTR_t_failure" class="srryp_dropalg3/a> *3a href="+ryp_dropalg3.c#L185" id vL185" class="line3 nam  vL237">.2173/a>".2183/a>3a href="+cod3=nla_31e=err" class="geniv       comment">/*ad" cla64" id vL264" class="line3 nam  vL239">.2193/a>        retur3 -3a 3ref="+"geniv       comment">code=PTR_* Thiscls only true" clwe're =nam fm" ing niv="+orithm with itsad" cla64" id vL264" class="line3 nam  vL230">.2203/a>}"code=PTR_* default IV generator.  For the default generatorlwe elide thead" cla64" id vL264" class="line3 nam  vL231">.2213/a>#else"code=PTR_* de=tmpl"".2223/a>static int.3a3href=3+code="geniv       comment">code=PTR_*/ad" cla64" id vL264" class="line3 nam  vL233">.2233/a>{"nla_ 3agivdecrypt3/a>;"<base3/a>)"CRYPTO_ALG_GENIV3/a>);".2243/a>        retur3 -3a 32pto/aead.c#L267"0" id" class="sref">nla_m fcm_mod_lookup3/a>(m fcm_lass="sref">alg3/a>)>,"base3/a>, 3a href="+code=type" class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aead3/a>;"ivsiz/a>);".2253/a>}".2263/a>#endif".2273/a>"base3/a>emcp;"alg3/a>)>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/>, 3a href="+code=ussa_ype" class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aea>, 3a href="+code=ussa_ype" class="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quL265" id vL265" class="line3 nam  vL238">.2283/a>"base3/a>emcp;"alg3/a>)>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/drivera>, 3a href="+code=ussa_drivera>, 3 class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aeadrivera>, 3a href="+code=ussa_drivera>, 3 clas65" id vL265" class="line3 nam  vL239">.2293/a>static void.33 href329         const.char *3a hre="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quL265" id vL265" class="line3 nam  vL230">.2303/a>        3a hr3f="+c3de=__attribute} c#L2L245" id vL245" class="line3 nam  vL231">.2313/a>static void.33 href33ef="+code=crt" class="sref">crt3/a>-=.3a href="+code=crypto_initass="sref">EINVALing"TOOLONGOL_GPL3/a>(3a hrNng"TOOLONG.c#L185" id vL185" class="line3 nam  vL232">.2323/a>{"nla_mintf3/a>(3a href="+code=raead" class="sref">raead3>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/>, 3a href="+code=ussa_ype" class="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quo85" id vL185" class="line3 nam  vL233">.2333/a>        struc3.3a h3ef="+code=aead   const.char *3a hre=%s"aead3/a>,"base3/a>, 3a href="+code=type" class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aea>, 3a href="+code=ussa_ype" cla_SIZE"=85" id vL185" class="line3 nam  vL234">.2343/a>"type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quL85" id vL185" class="line3 nam  vL235">.2353/a>        3a hr3f="+c33          const.char *3a hreft_failure" class="srryp_dropalg3/a> *3a href="+ryp_dropalg3.c#L185" id vL185" class="line3 nam  vL236">.2363/a>        3a hr3f="+c33n 3a href="+code=PTR_" class="sref">nla_mintf3/a>(3a href="+code=raead" class="sref">raead3>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/drivera>, 3a href="+code=ussa_drivera>, 3 class="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quo85" id vL185" class="line3 nam  vL237">.2373/a>             3     3                         3spae clas=%s"aead3/a>,"base3/a>, 3a href="+code=type" class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aeadrivera>, 3a href="+code=ussa_drivera>, 3 cla_SIZE"=85" id vL185" class="line3 nam  vL238">.2383/a>        3a hr3f="+c338                     vL2="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quL85" id vL185" class="line3 nam  vL239">.2393/a>        3a hr3f="+c339         const.char *3a hreft_failure" class="srryp_dropalg3/a> *3a href="+ryp_dropalg3.c#L185" id vL185" class="line3 nam  vL230">.2403/a>        3a hr3f="+c3de=seq_printf"272" id vL272" class="line3 nam  vL231">.2413/a>        3a hr3f="+c34code=70" id vL270" class="line3 nam  vL232">.2423/a>}"s>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/ags3/a> &.3a href="+code=CRYPTG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_AEAD3/a>;"CRYPTO_ALG_GENIV3/a>;".2433/a>"crt3/a>->, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/ags3/a> &.3a href="+code=CRYPTLG_TYPE_MASK" clas>3a href="+code=cra_flags" class="sref">cra_flags3/a> &.3a href="+code=CRYPTO_ALG_ASYNC" class="sref">CRYPTO_ALG_ASYNC3/a> ?".2443/a>const.struct.3a hre34e=crt" class="sref">crt3/a>->, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/raeorit;"cra_flraeorit;".2453/a>        .3a h3ef="+34e=seq_printf" class="sref">s>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a_blocksize3/a>);"alg3/a>->3a href="+code=cra_blocksize" class="sref">cra_blocksize3/a>;".2463/a>        .3a h3ef="+34e=seq_printf" class="sref">s>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/align>)"alg3/a>->3a href="+code=cra_blocksize" class="sref">cralign>)".2473/a>#ifdef.3a hre3="+co34e=snprintf" class="sref">snp>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/aead_type3/a>);"spawn3code=algyptoaead_type3/a>);".2483/a>        .3a h3ef="+34.c#L229" id vL229" class="line3 nam  vL239">.2493/a>#endif"authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsize3/a> =.3a href="+code=aead" clss="sref">alg3/a>->3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsize3/a> =.3a href="+code=aead" cl210" id vL210" class="line3 nam  vL230">.2503/a>        .3a h3ef="+35e=type" class="sref">type3/a>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsizmaxauthsize3/a> =.3a href="+code=aead" class="sref">aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsizmaxauthsize3/a>;".2513/a>};"type3/a>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsiz/a>);"aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsiz/a>);".2523/a>3a href="+cod3=EXPO35.c#L273" id vL273" class="line3 nam  vL233">.2533/a>"crt3/a>->, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsizsetke;"aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsizsetke;".2543/a>static int.3a3href=35e=crt" class="sref">crt3/a>->, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsizsetauthsize3/a>;"aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsizsetauthsize3/a>;".2553/a>             3     35e=seq_printf" class="sref">s>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsizen11" c/a> *3a href="+rn11" cd.c#ass="sref">aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsizen11" c/a> *3a href="+rn11" cd.c#211" id vL211" class="line3 nam  vL236">.2563/a>{"s>, 3a href="+code=mask" claze" class="sref">authgt;3a href="+code=ivsizelass="sref">ctxsito/a3/a>;"ivsizde11" c/a> *3a href="+de11" cd.c#ass="sref">aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsizde11" c/a> *3a href="+de11" cd.c#211" id vL211" class="line3 nam  vL237">.2573/a>        struc3.3a h35.c#L218" id vL218" class="line3 nam  vL238">.2583/a>        int.33 href35t_failure" class="srod_put3/a>(3a hrefo class219" id vL219" class="line3 nam  vL239">.2593/a>"s>, 3a href="+code=mask" cla211" id vL211" class="line3 nam  vL230">.2603/a>        3a hr3f="+c3de=typ11" id vL211" class="line3 nam  vL231">.2613/a>        3a hr3f="+c3de=typlure" class="srryp_dropalg3/a> *3a href="+ryp_dropalg3.c#L219" id vL219" class="line3 nam  vL232">.2623/a>        3a hr3f="+c3de=mask" class="sref">mask3/ahref="cdropalrab_nivaead3/a>(struct.3adropalrab class="sref">raead3/a>,".2633/a>", 3.c#L219" id vL219" class="line3 nam  vL234">.2643/a>        3a hr3f="+c3de=alg" class="sref">alg3/a> kfreea href="+code=mkfree class="sref">raead3>, 3a href="+code=mask" claL265" id vL265" class="line3 nam  vL235">.2653/a>        if (33 href36e=seq_printf" class="sref">s>, 3a href="+code=mask" claass="sref">aead3/a" c_=alOL_GPL3/a>(3a hr c_=allass="sref">alg3/a>)=.3a href="+code=crypto_iL270" id vL270" class="line3 nam  vL236">.2663/a>             3  ret3rn 3a href="+ct_failure" class="srod_put3/a>(3a hrefo class270" id vL270" class="line3 nam  vL237">.2673/a>".2683/a>        3a hr3f="+c36t_failure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classryptoaead_geniv_alloc3/a>(struct.3a href="+code=cryL270" id vL270" class="line3 nam  vL239">.2693/a>        3a hr3f="+c36.c#L260" id vL260" class="line3 nam  vL230">.2703/a>        retur3 3a h3ef="+c_nivaead_show" classt.3a href="freea href="+code=mt.3a href="free_niva_alg" class="sref">aeaef">crypto_instance3/a> *3a href="+code=aead_geniv_alloc" class="s>, 3a href="+code=mask" claL85" id vL185" class="line3 nam  vL231">.2713/a>}".2723/a>"mask3/ahref="cdropalrab_nivaead3/a>(struct.3adropalrab class="sref">raead3sref">cry=aead_pto/ance3/a> *3a href="+code=aead_pto/lass="sref">alg3/a>)>, 3a href="+code=mask" cla)L270" id vL270" class="line3 nam  vL233">.2733/a>struct.3a hre3="+co37e=crt" class="sref">crt3/a>-kfreea href="+code=mkfree class="sref">raead3>, 3a href="+code=mask" claL265" id vL265" class="line3 nam  vL 3 3spae class=3/a>);".1753/a>        retur3 3a h37     lure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classryptoaead_gfreea href="+code=mt.3a href="free_nivL265" id vL265" class="line3 nam  vL236">.1763/a>}".1773/a>"err3/a>;t.3a href="> =.3a href="+code=t.3a href="> =._niva_alg" class="sref">aeaef">crytfae class="stringef">crytfageniv_alloc" class="stfae class="stringtfageniL85" id vL185" class="line3 nam  vL238">.1783/a>static int.3a3href=37f="+c245" id vL245" class="line3 nam  vL239">.1793/a>{"aeasref">cpto_instance3/a> *3a href="+code=aead_geniv_alloc" class="s>, 3a href="+code=mask" claass(_niva*)alloc" class="stfae class="stringtfageniocksize" class="sref__crtalg3/a> *3a href="+__crtalg3lass270" id vL270" class="line3 nam  vL130">.1803/a>        struc3.3a h3ef="+code=aead_alg" class="sref">aeaef">crylrab_nivaead3/a>(struct.3alrab class="sref">aead3/a> =.&3a href="+code=alg270" id vL270" class="line3 nam  vL231">.1813/a>        struc3.3a h38code=70" id vL270" class="line3 nam  vL132">.1823/a>"s= =.&3a href="+code=alglg_mod_lookup" class="sre_aeadalrab_nivaead3/a>(struct.3a_aeadalrab class="sref">raead3sref">cry=aead_pto/ance3/a> *3a href="+code=aead_pto/lass="sref">alg3/a>)>, 3a href="+code=mask" cla)L270" id vL270" class="line3 nam  vL133">.1833/a>        if (33 href38+code=nla_put" class="sref">nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>)) =.&3a href="+code=algLL65" id vL265" class="line3 nam  vL134">.1843/a>             3  ret38e=alg" class=code=EMSGSIZE"  class="sref">sERR3/a>(3a href="+code=alg" class="sref">alg3/a>); =.&3a href="+code=algL270" id vL270" class="line3 nam  vL235">.1853/a>".1863/a>        3a hr3f="+c38e=seq_printf" class="sref">stfae class="stringtfageniocksize" class="srefcrtalrab_nivaead3/a>(strut/aead.c#Lass="sref">ivsiz>.3a href="+code=inst" clasass="sref">aead3/a> =.&3a href="+code=alg270" id vL270" class="line3 nam  vL137">.1873/a>        3a hr3f="+c38e=snprintf" class="sref">snptfae class="stringtfageniocksize" class="srefcrtalrab_nivaead3/a>(strut/aead.c#Lass="sref">ivsizreqsize3/a>;"alg3/a>); =.&3a href="+code=algL270" id vL270" class="line3 nam  vL238">.1883/a>        3a hr3f="+c38.c#L229" id vL229" class="line3 nam  vL139">.1893/a>        if (!3a hre38ef="+code=EMSGSIZE" 0270" id vL270" class="line3 nam  vL130">.1903/a>             3  3a 3ref="+272" id vL272" class="line3 nam  vL131">.1913/a>             3  3a 39e=typlure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classryptoaead_g> =.3a href="+code=t.3a href="> =._nivL270" id vL270" class="line3 nam  vL132">.1923/a>        }".1933/a>        3a hr3f="+c3de=crt_nivaead_show" classt.3a href="ex=.3a href="+code=t.3a href="ex=._niva_alg" class="sref">aeaef">crytfae class="stringef">crytfageniv_alloc" class="stfae class="stringtfageniL85" id vL185" class="line3 nam  vL134">.1943/a>        3a hr3f="+c3de=crt245" id vL245" class="line3 nam  vL135">.1953/a>        3a hr3f="+c39e=seq_printf" class="sref">sef">cryfree_lrab_nivaead3/a>(struct.3afree_lrab_nivaead_type" classtfae class="stringtfageniocksize" class="srefcrtalrab_nivaead3/a>(strut/aead.c#Lass="sref">ivsiz>.3a href="+code=inst" clasL270" id vL270" class="line3 nam  vL236">.1963/a>".1973/a>        retur3 0;"<39.c#L2lure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classryptoaead_gex=.3a href="+code=t.3a href="ex=._nivL270" id vL270" class="line3 nam  vL238">.1983/a>}".1993/a>"(struct.3a="cryptodefault_niva_alg" class="sref">aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;"u323/a> 3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".2003/a>#ifdef.3a hre4="+co40ef="+245" id vL245" class="line4 nam  vL241">.2013/a>static int.3a4href=40f="+code=aead_tfm" class="sref">aead."+co=.3a href="+code."+co class="sref">type3/a>truct.3a href="+tTOCFG[3]270" id vL270" class="line4 2am  vL241">.1923/a>        }".1933/a>        3a hr4.3a h40f="+code=aead   const_tfm" class="sref">aead."+co=.3a href="+code."+co clas"sref">alg3/a>;"+co=.3a href="+cod"+co cla270" id vL270" class="line4 4am  vL241">.1943/a>        3a hr4.3a h40e=alg" class=code=EMS_alg" class="sref">aeasref">cr+co_aead_type3/a>);"ivsizdata/a> *3a href="+data cla270" id vL270" class="line4 5am  vL241">.1953/a>        3a hr4to/ae40e=seq_printf"}sss="sref">ivsizpaead_type3/a>);".1963/a>".1973/a>        retur4f="+c4de=snprintf" c   const_tfm" class="sref">aead."+co=.3a href="+code."+co clas"sref">alg3/a>;"+co=.3a href="+cod"+co cla270" id vL270" class="line4 8am  vL244">.1983/a>}"aeasref">cr+co_lg3/a> *3a href="+code=alg+co_lg3classss="sref">ivsizdata/a> *3a href="+data cla270" id vL270" class="line4 9am  vL244">.1993/a>"ivsizplg3/a> *3a href="+plg3lass270" id vL270" class="line4 nam  vL240">.2103/a>        3a hr4f="+c41f="+code=aead_alg" class="sref">aeaef">crypto_template3/a> *3a href="+code=tmpl" class="sref">tmpl3/a>,".2113/a>        3a hr4f="+c41f="+code=aead_tfm" class="sref">aearypto_apto_instance3/a> *3a href="+code=aead_geniv_alloc" class="s>, 3a href="+code=mask" cla271" id vL271" class="line4 nam  vL242">.2123/a>"aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;larva.2133/a>        if (34 href41f="+code=aead=nam " class="sref">nam 3/a/a>);".2143/a>             4     41e=crt" class=ass="sref">err3/a>;".2153/a>             4  got41e=seq70" id vL270" class="line4 6am  vL246">.2163/a>        retur4 0;"<41e=seq_printf" class="sref">slarvaivsiz_aeadrivera>, 3a href="+code=ussa_drivera>, 3 clas65" id vL265" class="line4 nam  vL247">.2173/a>"ivsizs="sref">CRYPTO_ALG_TYPE_AEAD3/a>;"CRYPTO_ALG_GENIV3/a>;".2183/a>3a href="+cod4=nla_418                     vL2spae classssssssssss="sref">ivsizs="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2193/a>        retur4 -3a 41e=crypto_mod_put" class="sre=.3a href="+code=crypto_init_spawn" class="ERR3/a>(3a href="+code=alg" class="sref">alg3/a>)larva.2203/a>}"nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>)larva.2213/a>#else".2223/a>static int.3a4href=42.c#L273" id vL273" class="line4 nam  vL243">.2233/a>{"crt3/a>-=.3a href="+code=crypto_initass="sref">EINVALAGAINOL_GPL3/a>(3a hrAGAINlass270" id vL270" class="line4 nam  vL244">.2243/a>        retur4 -3a 42pto/aead.c#L2 cla="sref">alg3/a>-ef="+cods_larvaalg3/a>)larva.2253/a>}".2263/a>#endif".2273/a>"snppaead_type3/a>);"ivsiz"+co=.3a href="+cod"+co claass="sref">ivsizrta_le"snppaead_type3/a>);".2283/a>"err3/a> paead_type3/a>);"ivsiz"+co=.3a href="+cod"+co claass="sref">ivsizrta_aead_type3/a>);");".2293/a>static void.34 href42e=crypto_mod_put" class="srepaead_type3/a>);"ivsizdata/a> *3a href="+data claass="sref">ivsiz> |=.3a href="+code=CRYPTO_Ait_spawn" class="> |=.3a href="+code=CRYPTO_AG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>;".2303/a>        3a hr4f="+c4de=__attribute;geniv       comment">/* /aead tells the de=tmpl""thatlwe're making n default geniv. */ad" cla64" id vL264" class="line4 nam  vL241">.2313/a>static void.34 href43e=type" class="sref">type3/apaead_type3/a>);"ivsizdata/a> *3a href="+data claass="sref">ivsiz>)"CRYPTO_ALG_GENIV3/a>;".2323/a>{"s>truct.3a href="+tTOCFG[0]c#L class="sref">spawn3paead_type3/a>);"ivsiz"+co=.3a href="+cod"+co cla263" id vL263" class="line4 nam  vL243">.2333/a>        struc4.3a h43.c#L264" id vL264" class="line4 nam  vL244">.2343/a>"ivsizplg3/a> *3a href="+plg3lassass="sref">ivsiz"+co=.3a href="+cod"+co claass="sref">ivsizrta_le"snpplg3/a> *3a href="+plg3lassL261" id vL261" class="line4 nam  vL245">.2353/a>        3a hr4f="+c43e=seq_printf" class="sref">splg3/a> *3a href="+plg3lassass="sref">ivsiz"+co=.3a href="+cod"+co claass="sref">ivsizrta_aead_type3/a>);");".2363/a>        3a hr4f="+c43n 3a href="+c;geniv       comment">/* Must use the exact".2373/a>             4     43e=snprintf" class="sref">snp>emcp;"alg3/a>)plg3/a> *3a href="+plg3lassass="sref">ivsizdata/a> *3a href="+data claass="sref">ivsiz>, 3a href="+code=type" class="sref">type3/a>3a href="+code=ivsize" class="sref">ivsiz_aeadrivera>, 3a href="+code=ussa_drivera>, 3 class="sref">type3/a="sref">CRYPTO_MAX_ALG_NAME3/a>, 3spae class="string">&quL265" id vL265" class="line4 nam  vL248">.2383/a>        3a hr4f="+c43e=err" class="sref">err3/a> >truct.3a href="+tTOCFG[1]c#L class="sref">spawn3plg3/a> *3a href="+plg3lassass="sref">ivsiz"+co=.3a href="+cod"+co cla265" id vL265" class="line4 nam  vL249">.2393/a>        3a hr4f="+c43.c#L260" id vL260" class="line4 nam  vL240">.2403/a>        3a hr4f="+c44e=type" class="sref">type3/a>truct.3a href="+tTOCFG[2]nit_spawn" class="NULBOL_GPL3/a>(3a hNULB cla265" id vL265" class="line4 nam  vL241">.2413/a>        3a hr4f="+c44code=70" id vL270" class="line4 nam  vL242">.2423/a>}"s/a>);"aead3/a>gt;3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsiz/a>);".2433/a>".2443/a>const.struct.4a hre44e=crt" class="sref">crt3/a>->,"alg3/a>)/a>);".2453/a>        .3a h4ef="+44e=seq_printf" class="sref">s=.3a href="+code=crypto_initass="sref">EINVALiOENTOL_GPL3/a>(3a hriOENTd.c#211" id vL211" class="line4 6am  vL246">.2463/a>        .3a h4ef="+44e=crt" class= cla="sref">alg3/a>->,".2473/a>#ifdef.3a hre4="+co44                     t_failure" class="srkillalarva.2483/a>        .3a h4ef="+44.c#L229" id vL229" class="line4 nam  vL249">.2493/a>#endif"base3/aeniv_alloc3/a>(structniv_=cryp="sref">type3/a>truct.3a href="+tTOCFGL211" id vL211" class="line4 nam  vL240">.2503/a>        .3a h4ef="+45e=type" class="sref">type3/a=.3a href="+code=crypto_init_spawn" class="ERR3/a>(3a href="+code=alg" class="sref">alg3/a>)>, 3a href="+code=mask" claL265" id vL265" class="line4 nam  vL241">.2513/a>};"nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>)>, 3a href="+code=mask" cla)L65" id vL265" class="line4 nam  vL242">.2523/a>3a href="+cod4=EXPO452to/aead.c#L267"0" idt_failure" class="srput_>,".2533/a>".2543/a>static int.3a4href=45pto/aead.c#L2 cla="sref">alg3/a>)=.3a href="+code=crypto_ilg_mod_lookup" class="sreregisterapto_instance3/a> *3a href="+coregisterapto_inst=cryp="sref">type3/a>,"err3/a> >, 3a href="+code=mask" cla2)LL245" id vL245" class="line4 nam  vL245">.2553/a>             4     45          const.char _spawn" class=">,"base3/afreea href="+code=mfree class="sref">raead3>, 3a href="+code=mask" claL265" id vL265" class="line4 nam  vL246">.2563/a>{".2573/a>        struc4.3a h45             272" id vL272" class="line4 nam  vL248">.2583/a>        int.34 href45.c#L229" id vL229" class="line4 nam  vL249">.2593/a>"/* Redo the l_alg_ faiuse the pto_instlwe just registered. */ad" cla64" id vL264" class="line4 nam  vL240">.2603/a>        3a hr4f="+c46e=type" class="sref">type3/a=.3a href="+code=crypto_initass="sref">EINVALAGAINOL_GPL3/a>(3a hrAGAINlass270" id vL270" class="line4 nam  vL241">.2613/a>        3a hr4f="+c46code=70" id vL270" class="line4 nam  vL242">.2623/a>        3a hr4f="+c4de=maslure" class="srput_>,".2633/a>"crt3/a>-ef="+cod,"<_pd_put3/a>(3a hrefef="+cod,"<_pd_=cryp="sref">type3/a>,".2643/a>        3a hr4f="+c4de=alglure" class="srkillalarva.2653/a>        if (34 href46e=seq_printf" class="sref">s3a hreflarva *3a href="+colarvaalg3/a>)larva.2663/a>             4  ret4rn 3a lure" class="srdropalarva.2673/a>"snpef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)larva.2683/a>        3a hr4f="+c46t_failure" class="srod_put3/a>(3a hrefo class219" id vL219" class="line4 nam  vL249">.2693/a>        3a hr4f="+c46e=crypto_mod_put" class="sreef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)>gt;3a href="+code=cra_blL265" id vL265" class="line4 nam  vL240">.2703/a>        retur4 3a h47e=type" classGSIZE"  class="sref">s".2713/a>}".2723/a>".2733/a>struct.3a hre4="+co47e=crt_tfm" class="sref">aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;ef="+col_alg_ylrab_nivaead3/a>(struct.3al_alg_ylrablass==nam " class="sref">nam 3/a>, 3a href="+code=type" class="sref">type3/a3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".1753/a>        retur4 3a h47e=seq_printf"_alg" class="sref">aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;".1763/a>}".1773/a>"snp=.3a href="+code=crypto_alg_mod_lookup" class="sreflgomod_o_alg_mod_lookup3/a>(3a hrefflgomod_o_alg_lass="sref">alg3/a>)>, 3a href="+code=type" class="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".1783/a>static int.3a4href=47e=err" class=" class="sref">nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>))gt;3a href="+code=cra_blL256" id vL256" class="line4 nam  vL249">.1793/a>{"s".1803/a>        struc4.3a h48e=typ11" id vL211" class="line4 nam  vL241">.1813/a>        struc4.3a h48e=type" class" class="sref">nla_>gt;3a href="+code=cra_blocksize" class="sref">craead_type3/a>);"spawn3code=algyptoaead_type3/a>);".1823/a>"s".1833/a>        if (34 href48.c#L264" id vL264" class="line4 nam  vL144">.1843/a>             4  ret48pto/aead.c#L2 cla="sref">alg3/a>->3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsize3/a> =.3a href="+code=aead" cl256" id vL256" class="line4 nam  vL245">.1853/a>"s".1863/a>        3a hr4f="+c48.c#L197" id vL197" class="line4 nam  vL147">.1873/a>        3a hr4f="+c48e=snprintf" class="sref">snpef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)>gt;3a href="+code=cra_blL265" id vL265" class="line4 nam  vL248">.1883/a>        3a hr4f="+c48e=err" class="sref">err3/a> =.3a href="+code=crypto_alg_mod_lookup" class="sreflgomod_o_alg_mod_lookup3/a>(3a hrefflgomod_o_alg_lass="sref">alg3/a>)>, 3a href="+code=type" class="sref">type3/a>, 3a href="+code=mask" claAL_GENIV" class="sref">CRYPTOTESTE_TYPE_AEAD3/a>;".1893/a>        if (!4a hre489         const.char *3a hrefffffffffffff="sref">mask3/a>);"CRYPTOTESTE_TYPE_AEAD3/a>;".1903/a>             4  3a 49f="+code=aead" class="sref">nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>))gt;3a href="+code=cra_blL256" id vL256" class="line4 nam  vL141">.1913/a>             4  3a 49ef="+code=crt" class=GSIZE"  class="sref">s".1923/a>        }".1933/a>        3a hr4f="+c49+code=nla_put" class="sref">nla_>gt;3a href="+code=cra_blocksize" class="sref">craead_type3/a>);"spawn3code=algyptoaead_type3/a>);".1943/a>        3a hr4f="+c49e=alg" class=code=EMS cla="sref">alg3/a>)>3a href="+code=cra_flags" class="sref">cra_flags3/a> &.3a href="+code=CRYPT^s="sref">type3/a>, 3a href="+code=mask" claA^_~GENIV" class="s>);"CRYPTOTESTE_TYPE_AEAD3/a>;".1953/a>        3a hr4f="+c49          const.char rintf" class="sref">snpef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)>gt;3a href="+code=cra_blL265" id vL265" class="line4 nam  vL246">.1963/a>"err3/a> =.3a href="+code=crypto_alg_mod_lookup" cla" c_=alOL_GPL3/a>(3a hr c_=allass=ass="sref">EINVALiOENTOL_GPL3/a>(3a hriOENTd.c#L265" id vL265" class="line4 nam  vL147">.1973/a>        retur4 0;"<49                     272" id vL272" class="line4 nam  vL248">.1983/a>}"s".1993/a>".2003/a>#ifdef.3a hre5="+co50e=typ11" id vL211" class="line5 nam  vL251">.2013/a>static int.3a5href=50e=type" class="sref">type3/aBUG_ONOL_GPL3/a>(3a hBUG_ONlass=="sref">alg3/a>->3a href="+code=cra_blocksize" class="sref">cra3/a>;"ivsize3/a> =.3a href="+code=aead" cl2259" id vL259" class="line5 2am  vL251">.1923/a>        }".1933/a>        3a hr5.3a h50f="+code=aeadGSIZE"  class="sref">s" c_=alOL_GPL3/a>(3a hr c_=allass="sref">alg3/a>)ef="+co="cryptodefault_nivaead3/a>(struct.3a="cryptodefault_niva"sref">alg3/a>->3a href="+code=cra_blss="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".1943/a>        3a hr5.3a h50pto/a272" id vL272" class="line5 5am  vL251">.1953/a>        3a hr5to/ae50     lure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classef="+col_alg_ylrab_nivaead3/a>(struct.3al_alg_ylrablass2259" id vL259" class="line5 6am  vL251">.1963/a>".1973/a>        retur5f="+c50f="+cass="sref">err3/a>;ruct.3agrabylrab_nivaead3/a>(struct.3agrabylrab_niva_alg" class="sref">aeaef">crylrab_/a>,"crylrab_/a>,"class="sref">alg3/a>;/a>,"nam 3/a>, 3a href="+code=type" clas97" id vL197" class="line5 8am  vL254">.1983/a>}"type3/a3a href="+code=type" class="sref">type3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".1993/a>".2103/a>        3a hr5f="+c51f="+code=aead_alg" class="sref">aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;".2113/a>        3a hr5f="+c51f="+code=aeadass="sref">err3/a>;".2123/a>".2133/a>        if (35 href51e=crt" class="sref">crt3/a>->, 3a href="+code=mask" claAO_ALG= ~aead_type" classs="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2143/a>             5     51e=crt" class="sref">crt3/a>->, 3a href="+code=mask" claALG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_AEAD3/a>;".2153/a>             5  got51e=seq_printf" class="sref">s>);"CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2163/a>        retur5 0;"<51e=seq_printf" class="sref">s> |=.3a href="+code=CRYPTO_ALG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_A261" id vL261" class="line5 7am  vL257">.2173/a>".2183/a>3a href="+cod5=nla_51e=err" class="sref">err3/a> =.3a href="+code=crypto_alg_mod_lookup" class="srel_alg_ylrab_nivaead3/a>(struct.3al_alg_ylrablass="sref">alg3/a>)>, 3a href="+code=type" class="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".2193/a>        retur5 -3a 51e=crypto_mod_" class="sref">nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>))gt;3a href="+code=cra_blL256" id vL256" class="line5 nam  vL250">.2203/a>}"sERR3/a>(3a href="+code=alg" class="sref">alg3/a>);gt;3a href="+code=cra_blL265" id vL265" class="line5 nam  vL251">.2213/a>#else".2223/a>static int.3a5href=52e=seq_printf" class="sref">s=.3a href="+code=crypto_ilg_mod_lookup" class="sre> =._/a>,"cry> =._/a>,"lass= class="sref">spawn3/a>,"type3/a>3a href="+code=ivsizess="sref">type3/a/a>,"ivsize, 3a href="+code=mask" class="sref">mask3/a>);".2233/a>{"crt3/a>-ef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)>gt;3a href="+code=cra_blL265" id vL265" class="line5 nam  vL254">.2243/a>        retur5 -3a 52pto/aead.c#L2GSIZE"  class="sref">s".2253/a>}".2263/a>#endif"EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classef="+cograbylrab_nivaead3/a>(struct.3agrabylrab_nivL265" id vL265" class="line5 7am  vL257">.2273/a>".2283/a>"aeaef">crylrab_nivaead3/a>(struct.3alrab class="sref">aead3/acode=alg"locylrab_nivaead3/a>(struct.3al"locylrab_niva=nam " class="sref">nam 3/aflgo>, 3a href="+code=tflgo>, 3class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>, 3a href="+code=u32" class="sref">u323/a> 3a href="+code=mask" class="sref">mask3/a>)".2293/a>static void.35 href52"+cod245" id vL245" class="line5 nam  vL250">.2303/a>        3a hr5f="+c53f="+code=aead_alg" class="sref">aeaef">crypfae class="stringef">crytfageniv_alloc" class="stfae class="stringtfageni265" id vL265" class="line5 nam  vL251">.2313/a>static void.35 href53f="+code=aeadass="sref">err3/a>;".2323/a>{".2333/a>        struc5.3a h53e=crt" class="sref">crt3/a>->, 3a href="+code=mask" claAO_ALG= ~aead_type" classs="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2343/a>"ivsiz>, 3a href="+code=mask" claALG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_AEAD3/a>;".2353/a>        3a hr5f="+c53e=seq_printf" class="sref">s>);"CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_ALG_GENIV" class="sref">CRYPTO_ALG_GENIV3/a>);".2363/a>        3a hr5f="+c53e=seq_printf" class="sref">s> |=.3a href="+code=CRYPTO_ALG_TYPE_AEAD" class="sref">CRYPTO_ALG_TYPE_MASK3/a> |.3a href="+code=CRYPTO_A261" id vL261" class="line5 nam  vL257">.2373/a>             5     53.c#L218" id vL218" class="line5 nam  vL258">.2383/a>        3a hr5f="+c53e=err" class=for (;;LL245" id vL245" class="line5 nam  vL259">.2393/a>        3a hr5f="+c539         const.char _alg" class="sref">aeaef">crylg3/a> *3a href="+code=alg" class="sref">alg3/a>;".2403/a>        3a hr5f="+c54e=typ11" id vL211" class="line5 nam  vL251">.2413/a>        3a hr5f="+c54ef="+code=crt" class="sref">err3/a> =.3a href="+code=crypto_alg_mod_lookup" class="srel_alg_ylrab_nivaead3/a>(struct.3al_alg_ylrablass="sref">alg3/a>)flgo>, 3a href="+code=tflgo>, 3class="sref">u323/a> >, 3a href="+code=mask" class="sref">mask3/a>);".2423/a>}"nla_R3/a>(3a href="+code=alg" class="sref">alg3/a>))gt;3a href="+code=cra_blL2L245" id vL245" class="line5 nam  vL253">.2433/a>"s=.3a href="+code=crypto_ilg_mod_lookup" claERR3/a>(3a href="+code=alg" class="sref">alg3/a>);gt;3a href="+code=cra_blL265" id vL265" class="line5 nam  vL254">.2443/a>const.struct.5a hre54e=alg" class=code=EMSSSSSSSSSt_failure" class="sr".2453/a>        .3a h5ef="+54          const.char 272" id vL272" class="line5 6am  vL256">.2463/a>        .3a h5ef="+54.c#L197" id vL197" class="line5 nam  vL257">.2473/a>#ifdef.3a hre5="+co54                     alloc" class="stfae class="stringtfagenilg_mod_lookup" cla__crct.3al"locytfae class="string__crct.3al"locytfa_niva"sref">alg3/a>->3a href="+code=cra_blss="sref">type3/a>, 3a href="+code=mask" class="sref">mask3/a>);".2483/a>        .3a h5ef="+548                     cla="sref">alg3/a>-R3/a>(3a href="+code=alg" class="sref">alg3/a>)tfae class="stringtfageniL256" id vL256" class="line5 nam  vL259">.2493/a>#endif"s__crct.3alrab_ca 3a href="+code=m__crct.3alrab_ca 3lass="sref">alg3/a>)tfae class="stringtfageniL259" id vL259" class="line5 nam  vL250">.2503/a>        .3a h5ef="+55e=typ11" id vL211" class="line5 nam  vL251">.2513/a>};"err3/a> ef="+comod_pd_put3/a>(3a hrefef="+comod_pd_lass="sref">alg3/a>)>gt;3a href="+code=cra_blL265" id vL265" class="line5 nam  vL252">.2523/a>3a href="+cod5=EXPO552to/aead.c#L267"0" id class="sref">s=.3a href="+code=crypto_ilg_mod_lookup" claERR3/a>(3a href="+code=alg" class="sref">alg3/a>)tfae class="stringtfageniL259" id vL259" class="line5 nam  vL253">.2533/a>".2543/a>static int.3a5href=55e=alglure" class="sr=.3a href="+code=crypto_i219" id vL219" class="line5 nam  vL255">.2553/a>             5     55          const.char " class="sref">nla_=.3a href="+code=crypto_il!itass="sref">EINVALAGAINOL_GPL3/a>(3a hrAGAINlass256" id vL256" class="line5 nam  vL256">.2563/a>{".2573/a>        struc5.3a h55                     " class="sref">nla_signal_pendint;3a href="+codesignal_pendint_nivaead_type" classeurrent"ut3/a>(3a hrefeurrenta_blL2L245" id vL245" class="line5 nam  vL258">.2583/a>        int.35 href558                     vL2spae class="sref">s=.3a href="+code=crypto_ilg_ass="sref">EINVALINalOL_GPL3/a>(3a hrINal.c#L259" id vL259" class="line5 nam  vL259">.2593/a>".2603/a>        3a hr5f="+c56f="+code=aeadode=aead272" id vL272" class="line5 nam  vL251">.2613/a>        3a hr5f="+c56ef="+code=crt272" id vL272" class="line5 nam  vL252">.2623/a>        3a hr5f="+c56.c#L273" id vL273" class="line5 nam  vL253">.2633/a>"s" c_=alOL_GPL3/a>(3a hr c_=allass="sref">alg3/a>)=.3a href="+code=crypto_iL259" id vL259" class="line5 nam  vL254">.2643/a>        3a hr5f="+c56pto/a272" id vL272" class="line5 nam  vL255">.2653/a>        if (35 href56     lure" class="srsref">EXPORT_SYMBOL_GPL3/a>(3a href="+code=crypto_nivaead_type" classef="+cog"locylrab_nivaead3/a>(struct.3al"locylrab_nivL259" id vL259" class="line5 nam  vL256">.2663/a>             5  ret56.c#L197" id vL197" class="line5 nam  vL257">.2673/a>".2683/a>        3a hr5f="+c56t_failure" class="srMODULE_DESCRIPTIONOL_GPL3/a>(3a hMODULE_DESCRIPTION_nivaegeniv       strint;>"Authenticpl"d En59" cion with Associpl"d Data (aead)"ad" claL259" id vL259" class="line5 nam  vL259">.2693/a>        3a hr5f="+c56e=cry


footer"> The original LXR software by the 9" id vL2http://sourceforge.net/projects/lxr">LXR community classthis experimental version by 9" id vL2mailto:lxr@ ux.no">lxr@ ux.noclasa
subfooter"> lxr. ux.no kindly hosl"d by 9" id vL2http://www.redpill- pro.no">Redpill L pro AS classprovider of L uxd=namulting nnd operacions services sinstl1995.