linux/crypto/gcm.c
<<
>>
Prefs
   1/*
   2 * GCM: Galois/Counter Mode.
   3 *
   4 * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi>
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms of the GNU General Public License version 2 as published
   8 * by the Free Software Foundation.
   9 */
  10
  11#include <crypto/gf128mul.h>
  12#include <crypto/internal/aead.h>
  13#include <crypto/internal/skcipher.h>
  14#include <crypto/internal/hash.h>
  15#include <crypto/scatterwalk.h>
  16#include <crypto/hash.h>
  17#include "internal.h"
  18#include <linux/completion.h>
  19#include <linux/err.h>
  20#include <linux/init.h>
  21#include <linux/kernel.h>
  22#include <linux/module.h>
  23#include <linux/slab.h>
  24
  25struct gcm_instance_ctx {
  26        struct crypto_skcipher_spawn ctr;
  27        struct crypto_ahash_spawn ghash;
  28};
  29
  30struct crypto_gcm_ctx {
  31        struct crypto_ablkcipher *ctr;
  32        struct crypto_ahash *ghash;
  33};
  34
  35struct crypto_rfc4106_ctx {
  36        struct crypto_aead *child;
  37        u8 nonce[4];
  38};
  39
  40struct crypto_rfc4543_ctx {
  41        struct crypto_aead *child;
  42        u8 nonce[4];
  43};
  44
  45struct crypto_rfc4543_req_ctx {
  46        u8 auth_tag[16];
  47        struct scatterlist cipher[1];
  48        struct scatterlist payload[2];
  49        struct scatterlist assoc[2];
  50        struct aead_request subreq;
  51};
  52
  53struct crypto_gcm_ghash_ctx {
  54        unsigned int cryptlen;
  55        struct scatterlist *src;
  56        void (*complete)(struct aead_request *req, int err);
  57};
  58
  59struct crypto_gcm_req_priv_ctx {
  60        u8 auth_tag[16];
  61        u8 iauth_tag[16];
  62        struct scatterlist src[2];
  63        struct scatterlist dst[2];
  64        struct crypto_gcm_ghash_ctx ghash_ctx;
  65        union {
  66                struct ahash_request ahreq;
  67                struct ablkcipher_request abreq;
  68        } u;
  69};
  70
  71struct crypto_gcm_setkey_result {
  72        int err;
  73        struct completion completion;
  74};
  75
  76static void *gcm_zeroes;
  77
  78static inline struct crypto_gcm_req_priv_ctx *crypto_gcm_reqctx(
  79        struct aead_request *req)
  80{
  81        unsigned long align = crypto_aead_alignmask(crypto_aead_reqtfm(req));
  82
  83        return (void *)PTR_ALIGN((u8 *)aead_request_ctx(req), align + 1);
  84}
  85
  86static void crypto_gcm_setkey_done(struct crypto_async_request *req, int err)
  87{
  88        struct crypto_gcm_setkey_result *result = req->data;
  89
  90        if (err == -EINPROGRESS)
  91                return;
  92
  93        result->err = err;
  94        complete(&result->completion);
  95}
  96
  97static int crypto_gcm_setkey(struct crypto_aead *aead, const u8 *key,
  98                             unsigned int keylen)
  99{
 100        struct crypto_gcm_ctx *ctx = crypto_aead_ctx(aead);
 101        struct crypto_ahash *ghash = ctx->ghash;
 102        struct crypto_ablkcipher *ctr = ctx->ctr;
 103        struct {
 104                be128 hash;
 105                u8 iv[8];
 106
 107                struct crypto_gcm_setkey_result result;
 108
 109                struct scatterlist sg[1];
 110                struct ablkcipher_request req;
 111        } *data;
 112        int err;
 113
 114        crypto_ablkcipher_clear_flags(ctr, CRYPTO_TFM_REQ_MASK);
 115        crypto_ablkcipher_set_flags(ctr, crypto_aead_get_flags(aead) &
 116                                   CRYPTO_TFM_REQ_MASK);
 117
 118        err = crypto_ablkcipher_setkey(ctr, key, keylen);
 119        if (err)
 120                return err;
 121
 122        crypto_aead_set_flags(aead, crypto_ablkcipher_get_flags(ctr) &
 123                                       CRYPTO_TFM_RES_MASK);
 124
 125        data = kzalloc(sizeof(*data) + crypto_ablkcipher_reqsize(ctr),
 126                       GFP_KERNEL);
 127        if (!data)
 128                return -ENOMEM;
 129
 130        init_completion(&data->result.completion);
 131        sg_init_one(data->sg, &data->hash, sizeof(data->hash));
 132        ablkcipher_request_set_tfm(&data->req, ctr);
 133        ablkcipher_request_set_callback(&data->req, CRYPTO_TFM_REQ_MAY_SLEEP |
 134                                                    CRYPTO_TFM_REQ_MAY_BACKLOG,
 135                                        crypto_gcm_setkey_done,
 136                                        &data->result);
 137        ablkcipher_request_set_crypt(&data->req, data->sg, data->sg,
 138                                     sizeof(data->hash), data->iv);
 139
 140        err = crypto_ablkcipher_encrypt(&data->req);
 141        if (err == -EINPROGRESS || err == -EBUSY) {
 142                err = wait_for_completion_interruptible(
 143                        &data->result.completion);
 144                if (!err)
 145                        err = data->result.err;
 146        }
 147
 148        if (err)
 149                goto out;
 150
 151        crypto_ahash_clear_flags(ghash, CRYPTO_TFM_REQ_MASK);
 152        crypto_ahash_set_flags(ghash, crypto_aead_get_flags(aead) &
 153                               CRYPTO_TFM_REQ_MASK);
 154        err = crypto_ahash_setkey(ghash, (u8 *)&data->hash, sizeof(be128));
 155        crypto_aead_set_flags(aead, crypto_ahash_get_flags(ghash) &
 156                              CRYPTO_TFM_RES_MASK);
 157
 158out:
 159        kfree(data);
 160        return err;
 161}
 162
 163static int crypto_gcm_setauthsize(struct crypto_aead *tfm,
 164                                  unsigned int authsize)
 165{
 166        switch (authsize) {
 167        case 4:
 168        case 8:
 169        case 12:
 170        case 13:
 171        case 14:
 172        case 15:
 173        case 16:
 174                break;
 175        default:
 176                return -EINVAL;
 177        }
 178
 179        return 0;
 180}
 181
 182static void crypto_gcm_init_crypt(struct ablkcipher_request *ablk_req,
 183                                  struct aead_request *req,
 184                                  unsigned int cryptlen)
 185{
 186        struct crypto_aead *aead = crypto_aead_reqtfm(req);
 187        struct crypto_gcm_ctx *ctx = crypto_aead_ctx(aead);
 188        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 189        struct scatterlist *dst;
 190        __be32 counter = cpu_to_be32(1);
 191
 192        memset(pctx->auth_tag, 0, sizeof(pctx->auth_tag));
 193        memcpy(req->iv + 12, &counter, 4);
 194
 195        sg_init_table(pctx->src, 2);
 196        sg_set_buf(pctx->src, pctx->auth_tag, sizeof(pctx->auth_tag));
 197        scatterwalk_sg_chain(pctx->src, 2, req->src);
 198
 199        dst = pctx->src;
 200        if (req->src != req->dst) {
 201                sg_init_table(pctx->dst, 2);
 202                sg_set_buf(pctx->dst, pctx->auth_tag, sizeof(pctx->auth_tag));
 203                scatterwalk_sg_chain(pctx->dst, 2, req->dst);
 204                dst = pctx->dst;
 205        }
 206
 207        ablkcipher_request_set_tfm(ablk_req, ctx->ctr);
 208        ablkcipher_request_set_crypt(ablk_req, pctx->src, dst,
 209                                     cryptlen + sizeof(pctx->auth_tag),
 210                                     req->iv);
 211}
 212
 213static inline unsigned int gcm_remain(unsigned int len)
 214{
 215        len &= 0xfU;
 216        return len ? 16 - len : 0;
 217}
 218
 219static void gcm_hash_len_done(struct crypto_async_request *areq, int err);
 220static void gcm_hash_final_done(struct crypto_async_request *areq, int err);
 221
 222static int gcm_hash_update(struct aead_request *req,
 223                           struct crypto_gcm_req_priv_ctx *pctx,
 224                           crypto_completion_t complete,
 225                           struct scatterlist *src,
 226                           unsigned int len)
 227{
 228        struct ahash_request *ahreq = &pctx->u.ahreq;
 229
 230        ahash_request_set_callback(ahreq, aead_request_flags(req),
 231                                   complete, req);
 232        ahash_request_set_crypt(ahreq, src, NULL, len);
 233
 234        return crypto_ahash_update(ahreq);
 235}
 236
 237static int gcm_hash_remain(struct aead_request *req,
 238                           struct crypto_gcm_req_priv_ctx *pctx,
 239                           unsigned int remain,
 240                           crypto_completion_t complete)
 241{
 242        struct ahash_request *ahreq = &pctx->u.ahreq;
 243
 244        ahash_request_set_callback(ahreq, aead_request_flags(req),
 245                                   complete, req);
 246        sg_init_one(pctx->src, gcm_zeroes, remain);
 247        ahash_request_set_crypt(ahreq, pctx->src, NULL, remain);
 248
 249        return crypto_ahash_update(ahreq);
 250}
 251
 252static int gcm_hash_len(struct aead_request *req,
 253                        struct crypto_gcm_req_priv_ctx *pctx)
 254{
 255        struct ahash_request *ahreq = &pctx->u.ahreq;
 256        struct crypto_gcm_ghash_ctx *gctx = &pctx->ghash_ctx;
 257        u128 lengths;
 258
 259        lengths.a = cpu_to_be64(req->assoclen * 8);
 260        lengths.b = cpu_to_be64(gctx->cryptlen * 8);
 261        memcpy(pctx->iauth_tag, &lengths, 16);
 262        sg_init_one(pctx->src, pctx->iauth_tag, 16);
 263        ahash_request_set_callback(ahreq, aead_request_flags(req),
 264                                   gcm_hash_len_done, req);
 265        ahash_request_set_crypt(ahreq, pctx->src,
 266                                NULL, sizeof(lengths));
 267
 268        return crypto_ahash_update(ahreq);
 269}
 270
 271static int gcm_hash_final(struct aead_request *req,
 272                          struct crypto_gcm_req_priv_ctx *pctx)
 273{
 274        struct ahash_request *ahreq = &pctx->u.ahreq;
 275
 276        ahash_request_set_callback(ahreq, aead_request_flags(req),
 277                                   gcm_hash_final_done, req);
 278        ahash_request_set_crypt(ahreq, NULL, pctx->iauth_tag, 0);
 279
 280        return crypto_ahash_final(ahreq);
 281}
 282
 283static void __gcm_hash_final_done(struct aead_request *req, int err)
 284{
 285        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 286        struct crypto_gcm_ghash_ctx *gctx = &pctx->ghash_ctx;
 287
 288        if (!err)
 289                crypto_xor(pctx->auth_tag, pctx->iauth_tag, 16);
 290
 291        gctx->complete(req, err);
 292}
 293
 294static void gcm_hash_final_done(struct crypto_async_request *areq, int err)
 295{
 296        struct aead_request *req = areq->data;
 297
 298        __gcm_hash_final_done(req, err);
 299}
 300
 301static void __gcm_hash_len_done(struct aead_request *req, int err)
 302{
 303        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 304
 305        if (!err) {
 306                err = gcm_hash_final(req, pctx);
 307                if (err == -EINPROGRESS || err == -EBUSY)
 308                        return;
 309        }
 310
 311        __gcm_hash_final_done(req, err);
 312}
 313
 314static void gcm_hash_len_done(struct crypto_async_request *areq, int err)
 315{
 316        struct aead_request *req = areq->data;
 317
 318        __gcm_hash_len_done(req, err);
 319}
 320
 321static void __gcm_hash_crypt_remain_done(struct aead_request *req, int err)
 322{
 323        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 324
 325        if (!err) {
 326                err = gcm_hash_len(req, pctx);
 327                if (err == -EINPROGRESS || err == -EBUSY)
 328                        return;
 329        }
 330
 331        __gcm_hash_len_done(req, err);
 332}
 333
 334static void gcm_hash_crypt_remain_done(struct crypto_async_request *areq,
 335                                       int err)
 336{
 337        struct aead_request *req = areq->data;
 338
 339        __gcm_hash_crypt_remain_done(req, err);
 340}
 341
 342static void __gcm_hash_crypt_done(struct aead_request *req, int err)
 343{
 344        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 345        struct crypto_gcm_ghash_ctx *gctx = &pctx->ghash_ctx;
 346        unsigned int remain;
 347
 348        if (!err) {
 349                remain = gcm_remain(gctx->cryptlen);
 350                BUG_ON(!remain);
 351                err = gcm_hash_remain(req, pctx, remain,
 352                                      gcm_hash_crypt_remain_done);
 353                if (err == -EINPROGRESS || err == -EBUSY)
 354                        return;
 355        }
 356
 357        __gcm_hash_crypt_remain_done(req, err);
 358}
 359
 360static void gcm_hash_crypt_done(struct crypto_async_request *areq, int err)
 361{
 362        struct aead_request *req = areq->data;
 363
 364        __gcm_hash_crypt_done(req, err);
 365}
 366
 367static void __gcm_hash_assoc_remain_done(struct aead_request *req, int err)
 368{
 369        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 370        struct crypto_gcm_ghash_ctx *gctx = &pctx->ghash_ctx;
 371        crypto_completion_t complete;
 372        unsigned int remain = 0;
 373
 374        if (!err && gctx->cryptlen) {
 375                remain = gcm_remain(gctx->cryptlen);
 376                complete = remain ? gcm_hash_crypt_done :
 377                        gcm_hash_crypt_remain_done;
 378                err = gcm_hash_update(req, pctx, complete,
 379                                      gctx->src, gctx->cryptlen);
 380                if (err == -EINPROGRESS || err == -EBUSY)
 381                        return;
 382        }
 383
 384        if (remain)
 385                __gcm_hash_crypt_done(req, err);
 386        else
 387                __gcm_hash_crypt_remain_done(req, err);
 388}
 389
 390static void gcm_hash_assoc_remain_done(struct crypto_async_request *areq,
 391                                       int err)
 392{
 393        struct aead_request *req = areq->data;
 394
 395        __gcm_hash_assoc_remain_done(req, err);
 396}
 397
 398static void __gcm_hash_assoc_done(struct aead_request *req, int err)
 399{
 400        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req);
 401        unsigned int remain;
 402
 403        if (!err) {
4054                remain = gcm_remain(req->assoclen);
4085                BUG_ON(!remain);
4306                err = gcm_hash_remain(req, pctx, remain,
4307                                      gcm_hash_assoc_remain_done);
4308                if (err == -EINPROGRESS || err == -EBUSY)
4079                        return;
4100       >}
4141
4162        __gcm_hash_assoc_remain_done(req, err);
4313}
4194
4315static void gcm_hash_assoc_done(struct crypto_async_request *areq, int err)
4136{
4137        struct aead_request *req = areq->data;
4138
4139        __gcm_hash_assoc_done(req, err);
4240}
4241
4242static void __gcm_hash_init_done(struct aead_request *req, int err)
4243{
4244        struct crypto_gcm_req_priv_ctx *pctx = crypto_gcm_reqctx(req){
4295        crypto_completion_t complete;
4246        unsigned int remain = 0;
4297
4248        if (!err && req->assoclen) {
4249                remain = gcm_remain(req->assoclen);
4350                complete = remain ? gcm_hash_assoc_done :
4391                        gcm_hash_assoc_remain_done4352                err = gcm_hash_update(req, pctx, complete,
4353                                      req->assox, req->assoclen);
4354                if (err == -EINPROGRESS || err == -EBUSY)
4335                        return;
4346       >}
4397
4348        if !remain>
4349                __gcm_hash_assoc_done(req, err);
4450        else
__gcmd5line" name="4325t_done(struct req, int <4 href44lass="line" name="L332"> 332}
4241
4315static void gcm_hash_assoc_done(struct pctx 4  *gct4 44+code=err" class="sref">err)
 315{
 316        struct aea4tx;
<4 href="crypto/gcm.c#L3464 id="4346" class="line" name="L346">4346  4     unsigned int 4240}
43> 347
g4m_rem45                 return;
 350 269}
4241
4242static void (req, err)
4243{
 352             4     45aead_request *EI45+code=err" class="sref">err)
 273{
 274        struct ahash_request *4BUSY<4a>)
crypto_gcm_reqctx(req);
 370        struct crypto_gcm_ghash_ctx * 354cryptreqctx(req);
(tfptreqctx(4249        bascm.c#4321" id="4bascrequest" class="sreftfpm.c#4321" id="4tfp_done" class="srefhref="+code=eef="crypt4/gcm.c#L355" id="L355" c4ass="4ine" name="L35to_gcm_reqctx" class="sref">crypto_gcm_reqctx(reypt_remai4_done" class="sref">__gc4_hash45=remain" clas"4320">4240class="sref">crypto_gcm_reqctx(req){
req, gcm_hash_assoc_done="4325" class="line" name=);
cr4pto_a46&areq, int <4 href4601" class="line" name="L401"> _request<4a> *crypto_gcm_rc            return;
areq-> || err);
4353__g46f="+code=crypto_gcm_reqctx" _hash_assoc_remain_done" class="sref">gcm_hss="linelass="lin" id="4315" class="linelass="lino/gcm.c#4329" id="43href="crypto/gcm.c#L278" id="e" class="srefhref="+code=ea class="4class="sref">req, req->req, gcm_hash_assoc_done="4325" class="line" name=)pt_remai4code=aead_request" class4"sref46=remain" clas"4320">4240ef">req->assoclen) {
4249                remain = req, int <4 href46code=data" class="sref">dataref">req->assoclen);
4350                gcm_hash_assoc_done :
pctx 4 gcm_hash_assoc_remain_done4352                err = pctx, complete,
4353                                      req-href="+co4e=gctx" class="sref">gct4 4 &req-> 341        req, gcm_hash_assoc_done="4325" class="line" name=a>;
4248        if (!      4 unsigned int BUG_ON(!remain);
4306                err = gcm_haef="+code4err" class="sref">errerr);
gcm_hash_assoc_done :
req-h class="4m_remain" class="sref">g4m_rem4in(req-> = remain =err" one" class="sref">gcm_hash_assoc_done="4325" class="line" name=apt_remai4line" name="L377"> 377    4              sh_len_done(dataf">gctx->cryptlen) {
 375                remain = ->s48f="+code=cryphref="+code=gcmef">gctx->cryptlen);
 376                gcm_hash_crypt_done :
EI48&gcm_hash_assoc_remain_done4352                err = pctx, complete,
 379                                      gctx4BUSY<4a>)
req-> 381req, gcm_hash_assoc_done="4325" class="line" name=ef="crypt4/gcm.c#L382" id="L382" c4ass="4ine" name="L382"> 382        }
4248        if (! 483
BUG_ON(!remain);
4306                err = gcm_ha=__gcm_ha4h_crypt_done" class="sre4">__g48n(gcm_hash_crypt_done :
gctxreq, err);e=req" class="sref">req->__gc4_hash48ROGRESS || gcm_hash_assoc_done="4325" class="line" name=edate4class="sref">req, )
gcm_hash_assoc"sref">err) {
 326                err4ssoc_rema4n_done(struct req->req, gcm_hash_assoc_done="4325" class="line" name=         4                   int <4 href493amp;gcm_hash_assocfinalef">err) {
 326                err4sf="crypt4a> * 382        >req-> 4s="sref">areq->gcm_hash_assoc_done="4325" class="line" name= __gcm_ha4_done" class="sref">__gc4_hash49code=err" class="sref">errreq, e=err" ote" class="sref">complete(errreq, int <5 href50lass="line" name="L388"> 388}
4241
4242static void pctx 5 err);;;;;;;;;;;;;;;ass="sref">err)
4243{
 391         5401  5     unsigned int err)
{
gcm_hss="line" classtfpm.c#4321" id="4ss="line" classtfpto_gcm_req_priv_ctx" class="sref">crypto_gcm_re" class="sref">complete<5ame="L4025> 402
datau8ass="sref">crypu84243{
gcm_h="L370"> 370        struct complete<5a5e="L4025>="sref">areq->complete<5a6e="L4025>done" class="sref">__gc5     5          complete,
catterwalk_map_and_copy href="crypto/gccatterwalk_map_and_copyo/gcm.c#4329" id="43huth_tag" id="4315" claeuth_tag4243" id="4333" class="line" name="4333">4353                 dm.c#4322" id="432dline" " id="4333" class="line" name="4333">4353                                      lass="sref">req, req, gcm_hss="line" cleuthsiza href="+code=gcms="line" cleuthsizao/gcm.c#4329" id="43h" c" id="4315" clae" c4243), 1re" class="sref">complete<5a8e="L4025>"crypto/gcm.c#L396" id=5     50rypt_remain_done(EI50code=err" class="sref">err5BUSY<51lass="line" name="L388"> 388}
gcm_hash_enc_ref=" clapto/g321">4241
4242static void gcm_hash_assoc_done(struct 4079 *err)
4243{
4244        struct crypto_gcm_req_priv_ctx *__gc5_hash51                 return;
req, remain = 0;
 326                err5pto_async5request" class="sref">cr5pto_a51code=err" class="sref">errareq, int <5 href51ne" name="L355"> 355    2" class="li_/a> =  326   href=lete" class="s43_done" class="srefhref="+code=5_request<5a> *(areq->err__g52lass="line" name="L388"> 388}
 3764241
4315static void gcm_hash_assoc_done(struct req,  *err)
 361{
 362        struct aea5err)
4243{
4244        struct crypto_gcm_req_priv_ctx *req, int <5 href52code=err" class="sref">errpctx 5 remain;
4255        BUG_ON(!err) {
 326                err5a>;
err);e=req" class="sref">req->assoclen);
4354                if (err == -      5 unsigned int err5areq" cla5e=err" class="sref">err<5a> &a5p;& remain;
( 370        struct  326                err5s="sref">5omplete = remain ?  326                err51" class=5line" name="4331">4391    5                   (req, (a53code=err" class="sref">errEI53f="+code=crypto_gcm_reqctx" 2" class="li_/a> =  326   href=lete" class="s43_done" class="srefhref="+code=5a href="+5ode=EBUSY" class="sref">5BUSY<53ssoc_remain_done(43354241
4242static void err == -4597
__g54+code=err" class="sref">err)
 399{
 400        struct crypto_gcm_reequest *5">req, e321">4241
4315static void b362" class="line" nbto/gcm.c#L274" id="L274" class="line" name="L274"> 274        struct  *__5cmd5l54ne" name="431ass="sref">err)
req);
 370        struct crypto_gcm_ghash_ctx *gcm_hash_assoc_done="4325" class="line" name5e=req" cl5ss="sref">req, int <5 href54code=err" class="sref">errpctx 5 4353<" id="4333" class="line" name="4333">4353                                      gct5 54         complete,2blkcipherpto/gcm.eq" ccallbackm.c#4321" id="4hblkcipherpto/gcm.eq" ccallbacko/gcm.c#4329" id="43hb362" class="line" nbto/gcm." id="4333" class2" class="li_flagsc#4322" id="4322" class="li_flagsto_gcm_req_priv_ctx" class="sref">crypto_gcm_rc            return;
;
<5 href="crypto/gcm.c#L3465 id="54ref">req,  3764353  5     unsigned int req = 45> 347
dataref="+code=complete" class="sref">complete,
line" name="4333">4353                 dm.c#4322" id="432dline" " class="srefhref="+code=5="+code=g5m_remain" class="sref">g5m_rem55f="+code=cryphref="+code=gcmss="line" name="L379"> 379                                      line" name="4333">4353                                      5ine" name="L350"> 350 379                  f">gctx->gcm_hash_enc_ref=" clapto/" class="srefhref="+code=5=" class=5/a>(5 name="L352"> 352             5     553amp;gcm_hss="lineblkcipherpencs="l      struct EI55ne" name="L382"> 382        >req->5BUSY<554" id="L384" class="l=err" one" class="sref">gcm_hash_assoc_done="4325" class="line" name5" class="5ine" name="L354"> 354err 355    s="sref">BUG_ON(!err) {
 326                err5ypt_remai5_done" class="sref">__gc5_hash55=remain" clas2"> 382        >req->45class="sref">req, gcm_hash_assoc_done="4325" class="line" name5);
cr5pto_a56& 370        struct  326                areq, int <5 href56ne" name="4310">4100    e=gcenc_copy 326                err5_request<5a> *areq-> |=err" ote" class="sref">complete<5a href="+5h_crypt_done" class="sre5">__g56f="+cremain_done(req, err"line" c_done" class="sref href="+codverify href="crypto/g href="+codverifypto/g321">4241
4242static void  || err)
 399{
req, int <5 href56aead_request *pctx 5 err)
{
gcm_hss="line" classtfpm.c#4321" id="4ss="line" classtfpto_gcm_req_priv_ctx" class="sref">crypto_gcm_re" class="sref">complete<5href="+co5e=gctx" class="sref">gct5 57&crypu84243{
gcm_h="L370"> 370        struct complete<5"L371"> 351        4100    u8ass="sref">crypu84243{
gcm_h="L370"> 370        struct complete<5"request<5f="crypto/gcm.c#L372" id5"L37257=remain" clasto_gcm_reqctx" class="sref">euthsiza href="+code=gceuthsizao/gcgcm_hss="line" cleuthsiza href="+code=gcms="line" cleuthsizao/gcm.c#4329" id="43h" c" id="4315" clae" c4243)e" class="sref">complete<5"req" cla5 unsigned int                      line" name="4333">4353                                      euthsiza href="+code=gceuthsizao/gce" class="sref">complete<5" href="+5err" class="sref">errcomplete<5h class="5m_remain" class="sref">g5m_rem57         complete, href="xoa href="crypto/g href="xoapto/gcm.c#L326" id="euth_tag" id="4315" claeuth_tag4243L326"> 326   ieuth_tag" id="4315" claieuth_tag4243L316=err" class="sreturn;
 =  355    
catterwalk_map_and_copy href="crypto/gccatterwalk_map_and_copyo/gcm.c#4329" id="43ieuth_tag" id="4315" claieuth_tag4243L3en" class="sref">line" name="4333">4353                 
 377    5              =err" one" class="srefmemcmp href="+code=gcmemcmpo/gcm.c#4329" id="43ieuth_tag" id="4315" claieuth_tag4243L3en" class="srefeuth_tag" id="4315" claeuth_tag4243L326"> 326   2uthsiza href="+code=gceuthsizao/gc) ?               ADMSG href="+code=gc  ADMSG     :ote" class="sref">complete<5pdate5->s58                 return;
EI58lass="line" name="L388"> 388}
 3764241
4315static void gcm_hash_assoc_done(struct 5BUSY<58 name="L391"> 391         5" class="5ine" name="L381"> 381err)
 361{
 362        struct aea5ef="crypt5/gcm.c#L382" id="L382" c5ass="5ine" name="L38ass="sref">err)
 399{
 400        struct crypto_gcm_reequest * 583
complete<5=__gcm_ha5h_crypt_done" class="sre5">__g58f="+code=crype=re>remain = 0;
req, err);"+code=pctx" cl_hash_assoc_remain_done" class="sref">gcm_hss="lin+codverify href="crypto/g href="+codverifypto/gcm.c#L326" id="L326" class="line" name="L326"> 326                err5"pt_remai5_done" class="sref">__gc5_hash58ref">req = req, data2" class="li_/a> =  326   href=lete" class="s43_done" class="srefhref="+code=5);
(err42406gcm_hash_dec_ref=" clapto/g321">4241
4242static void gcm_hash_assoc_done(struct err)
 399{
 400        struct crypto_gcm_reequest * 5s="sref">areq->4241
4315static void b362" class="line" nbto/gcm.c#L274" id="L274" class="line" name="L274"> 274        struct aea5 __gcm_ha5_done" class="sref">__gc5_hash59f="+code=crypto_gcm_reqctx" class="sref">crypto_gcm_reqctx(req);
 370        struct crypto_gcm_ghash_ctx *req,  ref">remain;
crypto_gcm_rc            retur"line" 6e=req" cl6ss="sref">req, int <6 href60ain( 388}
 3764353pctx 6 err);reqctx" class="sref">crypt"linecs="l      struct 4353<" id="4333" classss="line" name="L379"> 379                                      gctx);
<6 href="crypto/gcm.c#L4016 id="60                  gcm_hss="linhblkcipherpdecs="l" id="4315" class="lineblkcipherpdecs="lo/gcm.c#4329" id="43hb362" class="line" nbto/gcm.=gctx" class="sref">gctx);
<6                   int <6="+co60>req, req->assoclen);
4354                if (err == - 402
err6a5e="L4026>="sref">areq->remain;
err6a6e="L4026>done" class="sref">__gc6     60n(gcm_hss="lin+codverify href="crypto/g href="+codverifypto/gcm.c#L326" id="L326" class="line" name="L326"> 326                err6+7e="L4026>lass="sref">req, req,_assoc_done("crypto/gcm.c#L396" id=6     60ref">req = EI60code=data" class="sref">data2" class="li_/a> =  326   href=lete" class="s43_done" class="srefhref="+code=6a href="+6ode=EBUSY" class="sref">6BUSY<61_hash_assoc_done(4079err4241
4242static void err6soc_remai6_done" class="sref">__gc6_hash61aead_request *req, err)
{
gcm_hss="line" classtfpm.c#4321" id="4ss="line" classtfpto_gcm_req_priv_ctx" class="sref">crypto_gcm_re" class="sref">complete<6"5e="L4026="crypto/gcm.c#4313" id=64313"614" id="L384" 321">4241
 399{
 400        struct crypto_gcm_reequest *cr6pto_a61f="+code=crypto_gcm_reqctx" class=""blkcipherpto/gcm.c#4322" id="4322blkcipherpto/gcm.">4315static void b362" class="line" nbto/gcm.c#L274" id="L274" class="line" name="L274"> 274        struct areq, int <6 href61ne" name="L35to_gcm_reqctx" class="sref">crypto_gcm_reqctx(req);
 370        struct crypto_gcm_ghash_ctx * *euthsiza href="+code=gceuthsizao/gcgcm_hss="line" cleuthsiza href="+code=gcms="line" cleuthsizao/gcm.c#4329" id="43h" c" id="4315" clae" c4243)e" class="sref">complete<6areq" cla6s="sref">areq->                     line" name="4333">4353                                      complete<6=__gcm_ha6h_assoc_done" class="sre6">__g62ain(gcm_hash_assoc_done="4325" class="line" name6code=req"6class="sref">req, err 326   2uthsiza href="+code=gceuthsizao/gc)err" class="sref">errreq, req, int <6 href62code=data" class="sref">data                     complete<6+code=pct6" class="sref">pctx 6 complete<6"4325">4265        complete,ref="+code=complete" class="sref">complete,
line" name="4333">4353                 
complete<6+7e="L4026f="crypto/gcm.c#4326" id6"432662ne" name="L355"> 355    ss="line" name="L379"> 379                                      complete<6=request<6 unsigned int  355    ss="line" name="L379"> 379                  f">gctx->gcm_hash_dec_ref=" clapto/e" class="sref">complete<6=req" cla6e=err" class="sref">err<6a> &a62code=err" class="sref">errgcm_hash_assoss="sref">gcm_hash_a hrpto/gcm.c#L326" id="L326" class="line" name="L326"> 326                err6s="sref">6omplete =  382        >req->4391    6                   gcm_hash_assoc_done="4325" class="line" name6pdate6a63code=data" class="sref">data2blkcipherpto/gcm.eq" ccallbackm.c#4321" id="4hblkcipherpto/gcm.eq" ccallbacko/gcm.c#4329" id="43hb362" class="line" nbto/gcm." id="4333" class2" class="li_flagsc#4322" id="4322" class="li_flagsto_gcm_req_priv_ctx" class="sref">crypto_gcm_rc            return;
EI634" id="L384" class="lllllllllllllllllllllllll"L388"> 388}
 37643536BUSY<63         complete, href="rypt"linecs="l      struct 4353<" id="4333" class                     gctx4335 355    s="sref">BUG_ON(!gctx 382        >req->4697
gcm_hash_assoc_done="4325" class="line" name6=__gcm_ha6h_assoc_done" class="sre6">__g64                 return;
6">req, e=err" one" class="srefss="lin+codverify href="crypto/g href="+codverifypto/gcm.c#L326" id="L326" class="line" name="L326"> 326                err6=" class=6"s42tne" class="sref">__6cmd5l64ne" n_assoc_done(req, int <6 href64code="line" c_done" class="sref href="+cod"linetfpm.c#4321" id="4ss="lin+cod"linetfppto/g321">4241
req);
pctx 6 gct6 64f="+code=crypto_gcm_reqctx" class="sref">cin"linca href="+code=gcms="linin"lincapto/">req);
);
="4325" class="line" name6= class="6 href="crypto/gcm.c#L3466 id="64ne" name="L35to_gcm_reqctx" class="+cod"l"linca_gcm_ghash_ctx" clascod"l"linca_gcmpto/">req);
"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcin"lerr6=f="crypt6     unsigned int cscodreqctx(req);
(tfpdreqctx(err6="4337">46> 347
err)
req);
="4325" class="line" name6="+code=g6m_remain" class="sref">g6m_rem65+code=err" class="sref">err)
gcm_h href="eassosref">req);
gcm_haassosref="4325" class="line" name6=="sref">6ine" name="L350"> 350gcm_hash_assoc_done="4325" class="line" name6 name="L362"> 352             6     65                 return;
EI65code=data" class="sref">dataeassoss="sref">gcm_haassosrefclass="line" name="L400">spawn"eassoss="sref">gcm_h href="spawn"eassopto/g0" class="line" nameigcm_ghash_ctx" clai"L400" uct gcm_haassosref(err" class="sref">err6a href="+6ode=EBUSY" class="sref">6BUSY<654" id="L384" 2"> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326" id="ryptoss="sref">gcm_haassosref((struct  354(gcm_hPTR_ERRpto/gcm.c#L326" id="ryptoss="sref">gcm_haassosref(err" class="sref">err6a class="6/gcm.c#L355" id="L355" c6ass="65                 return;
__gc6_hash65ROGRESS |5"> 355    rer" id="4315" clasteclass="line" name="L400">spawn"skcipher" id="4315" class="linspawn"skcipherpto/g0" class="line" nameigcm_ghash_ctx" clai"L400" uct (err" class="sref">err6a"4337">46class="sref">req, datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326" id="rer" id="4315" claste(err" class="sref">err6);
 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326" id="rer" id="4315" claste((struct cr6pto_a66lass="sref">err);gotolass="sref">datas="_free_assoss="sref">gcm_hs="_free_asso="4325" class="line" name6p" class=6s="sref">areq, int <6 href6601" class="line" name="L401">6_request<6a> *(class="line" name="er" id="4315" claste="4325" class="line" name6areq" cla6s="sref">areq->data eqctx(gcm_haassosrefclass="line" name=eassoss="sref">gcm_haassosref="4325" class="line" name6a href="+6h_crypt_done" class="sre6">__g66aincomplete<6a class="6class="sref">req, complete,2lgcm" class="line" nlgcmsrefclass="line" name="L400">tfpdalg_nlgcmmaskm.c#4321" id="4"L400">tfpdalg_nlgcmmaskpto/gcm.c#L326" id="tfpm.c#4321" id="4tfppto/(err" class="sref">err6);
 355    2lgcm" class="line" nlgcmsrefc0" cl= ~eq" class="sref"     detfpdreq_nlgcmmenl" id="4315" class="lintfpdreq_nlgcmmenlpto/g) - 1re" class="sref">complete<6)pt_remai6code=aead_request" class6"sref66ROGRESS |5"> 355    tfpm.c#4321" id="4tfppto//a>                 cst_a" c" id="4315" classtne" c4243est" class="srefreqsiza href="+code=gcreqsizasrefclass="line" name=2lgcm" class="line" nlgcmsrefc+" class="sref">complete<6)"4337">46ss="sref">req, int <6 href668" id="4338" class="line" name="4338offsetof" class="line" offsetofpto/g321">4241
 399L326"> 326   ref="+code=ahash_requ)c+" class="sref">complete<6+code=pct6" class="sref">pctx 6 ( 326   ma99" id="L399" clma9pto/g3izaofg321">4241
43)c+" class="sref">complete<6+to_async6e=gctx" class="sref">gct6 67lass="sref">err);" class="sref">data s="lineblkcipherpreqsiza href="+code=gc s="lineblkcipherpreqsizapto/gcm.c#L326" id="rer" id="4315" claste(c            return;
 361        4241
43)c+" class="sref">complete<6+request<6f="crypto/gcm.c#L372" id6"L37267>req, data s="lineref="to/siza href="+code=gc s="lineref="to/sizapto/gcm.c#L326" id="ryptoss="sref">gcm_haassosref((e" class="sref">complete<6"req" cla6 unsigned int errerrcomplete<6h class="6m_remain" class="sref">g6m_rem67code=err" class="sref">err = datas="_free_assoss="sref">gcm_hs="_free_asso:err" class="sref">err 377    67ROGRESS |5"> 355    rs="linfree_eassoss="sref">gcm_h href="free_eassopto/gcm.c#L326" id="ryptoss="sref">gcm_haassosref(err" class="sref">err6pdate6gcm_hash_assoc_done="4325" class="line" name6>->s68_hash_assoc_done(EI68code=err" class="sref">err6BUSY<68lass="line" name="4320">4240ass="line" exinetfpm.c#4321" id="4ss="lin+codexinetfppto/g321">4241
req);
 381 *err)
req);
(tfpdreqctx(err6="L383"> 683
complete<6=__gcm_ha6h_crypt_done" class="sre6">__g68         complete, href="free_eassoss="sref">gcm_h href="free_eassopto/gcm.c#L326" id=" eqctx(gcm_haassosref(err" class="sref">err6=;
req,  355     href="free_eblkcipher" id="4315" class="linfree_eblkcipherpto/gcm.c#L326" id=" eqctx((err" class="sref">err6"pt_remai6_done" class="sref">__gc6_hash68rypt_remain_done(req, errcin"linca href="+code=gcms="linin"lincapto/">req);
4241
>req);
err(struct remain                                con"l char">req);
errreq);
err                                con"l char">req);
 * * 6s="sref">areq->4241
req);
__gc6_hash69f="+code=crypto_gcm_reqctx" class="sref">cin"linca href="+code=gcms="linin"lincapto/">req);
req, calg" id="4315" clasref">calgpto/">req);
="4325" class="line" name6);
calg" id="4315" clasref">calgpto/">req);
6code=aead_request" class6"sref69code=data" class="sref">err)
req);
="4325" class="line" name7e=req" cl7ss="sref">req, int <7 href70+code=err" class="sref">err)
req);
((struct ee_done" class="sref">gcm_hash_assoc_done="4325" class="line" name7q);
<7 href="crypto/gcm.c#L4017 id="7001" class="line" name="L401">7q3/a>);
<7                   int <7="+co703amp; etnener_typa href="+code=gc s="lin etnener_typapto/gcm.c#L326" id="tbm.c#4321" id="4tb 399(err" class="sref">err7ame="L4027> 402
datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326" id="alg.c#4322" id="4322lg.(err" class="sref">err7a5e="L4027>="sref">areq-> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326" id="alg.c#4322" id="4322lg.((struct done" class="sref">__gc7     70n(lass="sref">req,  gcm.c#L326" id="alg.c#4322" id="4322lg.uct 43)c0" cl="+code=pctx" clalg.c#4322" id="4322lg.uct ode=aead_request" class7f">EI70;& 7BUSY<71                 return;
4079findcalg" id="4315" clasref">cfindcalgpto/gcm.c#L326" id="ryptor errerr);
<7_done" class="sref">__gc7_hash71>req,              ne" class="srefCRYPTO_ALG_TYPE_AHASH_MASK href="+code=gcCRYPTO_ALG_TYPE_AHASH_MASKe" class="srefhref="+code=7ame="L4027class="sref">req, datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326" id="ss="sralg" id="4315" class="sralge" class="srefhref="+code=7a5e="L4027="crypto/gcm.c#4313" id=74313"714" id="L384" 2"> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326" id="ryptoralg" id="4315" class="sralge(struct cr7pto_a71n(areq, int <7 href71                 return;
 * |5"> 355    s="sref">BUG_ON(!areq->datain"l href="+code=gcin"ldatakzalloc href="+code=gckzallocpto/g3izaofg>req);
req);
( 326   GFP_KERNELlen);
__g720" id="L384" 2"> ref">remain;in"l href="+code=gcin"lreq, err);gotolass="sref">dataout_put_eassoss="sref">gcm_hout_put_easso="4325" class="line" name7);
7)oc_remai7code=aead_request" class7"sref723amp;("l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcin"lerr7code=req"7ss="sref">req, int <7 href72code=data" class="sref">datass="sras="sralg" id="4315" class="sras="sralgclass="line" name="ontaqerr)
 326   halg" id="4315" clahalgest" class="srefbasa href="+code=gcbasaerr7c5e="L4027" class="sref">pctx 7  |5"> 355    s="sref">BUG_ON(!"litras="srspawn_ghash_ctx" cla"L400">"litras="srspawnpto/g0" class="line" name eqctx(gcm_haassosref,70" class="line" namess="sras="sralg" id="4315" class="sras="sralguct Lerr" class="sref">err4275                     ne" class="srefin"l href="+code=gcin"lerr7c7e="L4027f="crypto/gcm.c#4326" id7"432672ne" name="L352"> 382        >req->datas="_free_in"l href="+code=gcs="_free_in"l="4325" class="line" name7)req" cla7e=err" class="sref">err<7a> &a72code=err" class="sref">errset"skcipherrspawnpto/g0" class="line" name eqctx(L326"> 326   in"l href="+code=gcin"lerr7s="sref">7omplete = gcm_hss="lin+rab"skcipher" id="4315" class="lin+rab"skcipherpto/g0" class="line" name eqctx(L326"> 326   ste_ err4391    7                                ne" class="srefss="linto/gires_" na" id="4315" class="linto/gires_" napto/gcm.c#L326" id="alg.c#4322" id="4322lg.uct err                                ="+code=pctx" clalg.c#4322" id="4322lg.uct err7sode=req"7f="+code=asson" class="s7ef">a73code=data" cl2"> 382        >req->EI734" id="L384" class="lgotolass="sref">datas="_drop_eassoss="sref">gcm_hs="_drop_easso="4325" class="line" name7a href="+7ode=EBUSY" class="sref">7BUSY<73code=err" class="sref">err4335 355    rer" id="4315" clasteclass="line" name="L400">skcipherrspawncalg" id="4315" clasref">cskcipherrspawncalgpto/g0" class="line" name eqctx(=err" class="sref">err7srequest<7/gcm.c#4336" id="4336" c7ass="73ref">req = 4797
/* We only support 16-byte blocks. */req = __g740" id="L384" 2"> 382        rer" id="4315" claste/a>                 csa_eblkcipher" id="4315" classa_eblkcipherpto/est" class="srefivsiza href="+code=gcivsiza" id=!=316=req = 7">req, err);gotolass="sref">dataout_put_rer" id="4315" claout_put_rer="4325" class="line" name7=" class=7"s42tne" class="sref">__7cmd5l7401" class="line" name="L401">7
/* Not a claeam free_areq, err7sodeq" cl6ss="sref">req7 int 74href=71code=data" class="sref">datas="sref">BUG_ON(!=err" ossoclen" class="sreVALlen);
="4325" class="lin7ode=cr6+c7de=pct6" class="sref">pc7x744313"714" id="L384" 2"> 382        rer" id="4315" claste/a>              6-bytef="to/siza href="+co  6-bytef="civsiza" d=!=316=req = gc74de=cr72n();gotolass="sref">dataout_put_rer" id="4315" claout_put_rer="4325" class="line"rr6=f7"crypt6     unsigned int7 |5"> 355    s="sref">BUG_ON(!46> 347
 382 snprintaqest" clasco  drivea>   ste_    s clasteL326"> 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gctypapto/Lerr" class="sref">" name6="7code=g6m_remain" class="7ref">75 href60ain("tx" code(%s,%s)"e_areqL326"> 326/a>              drivea>   ste_    s claspapto/Lerr" class="sref">"+code7=="sref">6ine" name="L350">7350rofpto/gcm.c#L326" id="ryptoralg" id="4315" class="srste/a>              drivea>   ste_    s cla) te" name7=" class=6/a>(    7           eL326"> 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gctd=!=316=req =  352      7     75="sre73>req, );gotolass="sref">dataout_put_rer" id="4315" claout_put_rer="4325" class="line;
6a 7ref="+6ode=EBUSY" class=7sref"75  |5"> 355est" clasco     ste_ L326"> 326;
 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gctdrer="4325" class="line; name7a hlass="6ine" name="L354">7354rr6a 7lass="6/gcm.c#L355" id="7355" 75     73ne" name="L355"> 355<6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  ss="li_flagsc#4322" co  ss="l clasteclass="lines="srefCRYPTO_ALG_TYPE_AEAD href="+code=gcCRYPTO_ALG_TYPE_Arer="4325" class="line;r6=f7_remai6_done" class="sre7">__g76_hash65ROGRESS |5"> 355<6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  ss="li_flagsc#4322" co  ss="l clas|teclass="line" name="er" id="4315" claste/a>              ss="li_flagsc#4322" co  ss="l clasD">43)c0" cl="+code=pcode=gcCRYPASYNCPE_AEAD href="+code=gcCRYPASYNCPE_Arer="4325" class="line;+code7="4337">46class="sref">req<7a>, <76href=65code=data" class="sre6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  prioritodverify href="cry  priorito clasteclass="line" name="er" id="4315" claste/a>              prioritodverify href="cry  priorito clarer="4325" class="linerr6);7est" clasco  6-bytef="to/siza href="+co  6-bytef="civsia" rer="4325" class="liner+code7=="_async6request" class="s7ef">c76ode=r73&est" clasco  fpdalg_nlgcmmaskm.c#4321"   fpdalg_nl clasteclass="line" name="er" id="4315" claste/a>              fpdalg_nlgcmmaskm.c#4321"   fpdalg_nl clas|384" 2"> 382 _ fpdalof__gcmmaskm.c#4321_ fpdalof__nca_gcmpto/gcm.c#L32uq" cla6s="sc#4321u6href=nlpto/g) - 1re" class="sref">co7" name6p"7class=6s="sref">areq7 int 762de=r73&est" clasco  neref="typa href="+coalinener_ty" id="L370" class="lincode=gc d="4neref="typa href="+code=gc d="4nere clarer="4325" class="liner name6 n7quest<6a> *est" clasco  f  cst_a" c" id="4315a classtne" c4243est" class="srefivsiza href="+code=gcivsia" irer="4325" class="liner
areq7><76href=66code=data" class="sre6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  f  cst_a" c" id="4315a classtne" c4243est" clasmax2" id="Luthsiza href="+max2" id="Lcivsia" irer="4325" class="linerr6a 7ref="+6h_crypt_done" cla7s="sr76  |5"> 355<6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  ctxef="to/siza href="+co  ctxef="civsia"4241
)
co7" name7a hlass="6class="sref">req<7a>, <76href=66         comple6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  "L40to/siza href="+co  "L40main_done" class="sref">gcm_hshref="+cod"linetfpm.c#4321" id="4ss="lin+cod"lineg) - 1re" class="sref">co7"r6a 7 355<6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  lin+to/siza href="+co  lin+main_done" class="sref">gcm_hshre"line" exinetfpm.c#4321" id="4ss="lin+codexineg) - 1re" class="sref">co7"r6=f7_remai6code=aead_request7 clas76"sref66ROGRESS |5"> 355<6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  f  cst_a" c" id="4315a classtne" c4243est" classetkeodverify href="csetkeomain_done" class="sref">gcm_hshresetkeodverify href="c">gcm_hshresetkeoxineg) - 1re" class="sref">co7"+code7="4337">46ss="sref">req7 int 76href=65code=data" class="sre6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  f  cst_a" c" id="4315a classtne" c4243est" classet2" id="Luthsiza href="+set2" id="Lmain_done" class="sref">gcm_hshresetine" cleuthsiza href="+code=gcshresetine" clexineg) - 1re" class="sref">co7plete<6+c7de=pct6" class="sref">pc7x77gcm_r73f="+code=cryphref="+c6" id="in"l href="+code=gciste/a>          aas="sralg" id="431" clahalgest" clasco  f  cst_a" c" id="4315a classtne" c4243est" clasenlass=    s="sref">BUGnlass=main_done" class="sref">gcm_hshre"nlass=    s="sref">BU">gcm_hshre"nlass=xineg) - 1re" class="sref">co7p+code7=="_async6e=gctx" class="sr7f">gc77ode=r73&est" clasco  f  cst_a" c" id="4315a classtne" c4243est" clascipherpdecs="l" id="43cipherpdecs_done" class="sref">gcm_hshref="+coddecs="l" id="4315" class="lin+coddecsg) - 1re" class="sref">co7p name6p"771"> 361        put_rer" id="4315"L372sso:err" class="sref"7plete<6"r7q" cla6 unsigned int dao_mod cladecs="l" id="4315" clamod clanca_gcmpto/gcm.c#L326" id="ss="sralg" id="4315" class="sralge" class="srefhref="err76m_rem67code=err" class="sref"7err = dataout_put_rer" id="4315" claout_put_sso:err" class="sref"7pr6=f7_remai6line" name="L377"7 377<76>    67ROGRESS |5"> 355    m_hs=in+rab"skcipher" id="4315" clam_hs=in+rab"snca_glgpto/g0" class="line" name eqctx(=err" class="sref">err6pd7te6 355datas="_drop_eassoss="sref">gcm_hs="_drop_easso:err" class="sref"7" name6>-7gt;gcm_hm_hs=="frenca_glgpto/g0" class="line" name eqctx(gcm_haassosref(err" class="sref">7href="6hr7f="+co6e=EINPROGRESS" cl7ss="s76f">EIS |5"> 355datas="_free_in"l href="+code=gcs="_free_isso:err" class="sref"7" name6p"7ref="+6ode=EBUSY" class=7sref"782de=r73&7hlete<6+r7lass="6ine" name="L381">7381dataout_put_eassoss="sref">gcm_hout_put_easso:err" class="sref"7"lete<6"r7"crypt6/gcm.c#L382" id="7382" 78href=66code=data" class="sre6" id="in"l href="+code=gci_done" class="srefs="srefERR_PTRc#4322" id="432ERR_PTRpto/gcm.c#L326" id="href=lete" class="s43_done" class="srefhref="rr6="7383"> 683
);gotolass="sref">put_rer" id="4315"L37243_done" class="srefhref="r name7a hgcm_ha6h_crypt_done" cla7s="sr76">__g68rypt_remain_done(6=;7req, __g76_hash69lass="line" to_gcm_reqctx" class="sref">cin"linca href="+code=gcms="linin"lincapto/">req);
4241
>req);
6class="sref">req<7a>, <76href=69ne" nrequest *__g62ain(gcm_hash_assoc_done="4325" class="lin7err(struct7req);f">csk   ste_ csk   soc_done="4325" class="lin7e name6p"7ref="+6m.c#L391" id="L397" cla76="lin69       con"" uct ="4325" class="lin7elete<6+r7lass="6                 7 int 76 href69>req="4325" class="lin7elete<6"r7"crypt6a> * 6s="sref">areq7><79  |5"> 355<;f">csk   ste_ csk   soc_d>(!t   ste_ t   sERR_PTRpto/gcm.c#L32;
__g79href=66         complef">datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326f">csk   ste_ csk   soc_ds43_done" class="srefhref=""r6=;7req<7a>, <79"432672ne" name="L352"> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326f">csk   ste_ csk   soc_dsd=!=316=req =  |r"+code==err" one" class="srefERR_PTRc#4322" id="432ERR_PTRpto/gcm.c#L326" id="href=lete" class="s43_done" class="srefhref="" name6)d7te6code=aead_request7 clas79a> &a72code=err" class="sref"8" name7e=8eq" cl7ss="sref">req8 int 80">__g740" id="L384" 2"> 382 snprintaq   ste_ "" i(%s)"e_areqL326"> 326csk   ste_ csk   soc_ds te(struct8 = );
<7 href="crypto/gcm8c#L4080>    7               ="+code=err" one" class="srefERR_PTRc#4322" id="432ERR_PTRpto/gssoclen" clAMETOOLON   ADMSG href="+clAMETOOLON put_s43_done" class="srefhref=8L401">7q38a>);
<7                 8 int 80     65                 retur8rr7am8="L4027> 402
 382 snprintaq 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gct,c "  r(%s)"e_areqL326"> 326csk   ste_ csk   soc_ds te7am8=83"> 6s="sref">areq8><87gcm_r704" id=lassc0" cl="+code=pcode=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gctd=!=316=req = 7am8=cm_ha6_done" class="sre8">__g87     70n(req<8a>, <87lass=70                 retur8;
e=err" one" class="srefss="ode=reqalloc_commo               326;
 326   ste_ " t_pu"e_areqEI68rypt_remain_done(80794240ass==gcsee_in"l href="+240ass==gcskzallo pto/g321">4241
cin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gcin"l *);
<7_done" class="sre8">__g87_hash71>reqerr)
req);
("l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcin"l8+code=7am8="L4027class="sref">req<8a>, <81ode=r67code=err" class="sref"8+code=7a58="L4027="crypto/gcm.c#4383" id81  |5"> 355<;a>    m_hs=in+rab"skcipher" id="4315" clam_hs=in+rab"snca_glgpto/g0" class="line" name eqctx(=err" class="sref">8ode=cr7pt8_async7request" class="s8ef">c81">__g68         complete,m_hs=="free_eassoss="sref">gcm_hm_hs=="frenca_glgpto/g0" class="line" name eqctx(gcm_haassosref(err" class="sref">8+code=7p78="L4027s="sref">areq8 int 81L365"66ne" name="L355"> 3558;
 *(areq8><81a> &a72code=err" class="sref"8+code=7=_8gcm_ha7h_assoc_done" cla8s="sr82L388"69lass="line" to_gcm_reqctx" class="templatin"linca href="+code=gctemplati365"6" name="4320">4240ass=tmplee_in"l href="+240ass=tmplhref=L469ne" nrequest *req<8a>, <87href=72lass="" c4243est" clas   ste_ (!<"  r"e_areq *gcm_hshreode=rdecs="l" id="4315" class="de=gckzals9ne" nrequest *gcm_hshre=gcsee_in"l href="+240ass==gcskzals9ne" nrequest *req8 int 87 href72code=d" c4243est" clasmodulLuthsiza href="+modulLnca__done" class="srefTHIS_MODULESH_MASK href="+THIS_MODULEkzals9ne" nrequest *pc8x87 8err4275        7c78="L4027f="crypto/gcm.c#4826" i87"432669lass="line" to_gcm_reqctx" class="sref">cin"linca href="+code=gcms="linin"lincapto/">req);
4241
>req);
 *err82/gcm.64code=d"(gcm_hash_assoc_done="4325" class="lin8errreq);
7omplete = req)6" id="ryptor ="4325" class="lin8err="4325" class="lin8err7so8e=req"7f="+code=asson" c8ass="83 href62code=data" class="sref
t   ste_ t   sERR_PTRpto/gcm.c#L32;
 355datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326
__g68      me="L352"> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326
83357sr8quest<7/gcm.c#4336" id="8336" 87ass="73ref">req = 4797
(!t   ste_ t   sERR_PTRpto/gcm.c#L32;
datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326" id="ryptor 7">req,  382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326" id="ryptor  = _84>    7               ="+code=err" one" class="srefERR_PTRc#4322" id="432ERR_PTRpto/gcm.c#L326" id="href=lete" class="s43_done" class="srefhref=8L401">77so8eq" cl6ss="sref">req8 int 84/gcm.70code=d"L384" 2"> 382 snprintaq 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gct,c "  r code(%s,%s)"e_areqpc8x84gcm_r704" id=lassssssssssscmpto/gcm.c#L32   ste_  = gc84de=cr72n(6=f8"crypt6     unsigned int8e=err" one" class="srefss="ode=reqalloc_commo               326;
 326   ste_ 46> 347
EI68rypt_remain_done(85BUSY<71                 retur8"+code7==8sref">6ine" name="L350">83504240ass=codeetmplee_in"l href="+240ass=codeetmplhref=L469ne" nrequest *(!<"  r=code"e_areq 352      8     85"sref723amp;<" c4243est" clasode=rdecs="l" id="43de=gckzal_done" class="sref">gcm_hshrecodeeode=rdecs="l" id="4315" class="codeeode=rkzals65                 retur8"r7so8f="+co6e=EINPROGRESS" cl8ss="s85 href72code=d" c4243est" clas=gcsee_in"l href="+=gcsnca__done" class="sref">gcm_hshre=gcsee_in"l href="+240ass==gcskzals9ne" nrequest *6a 8ref="+6ode=EBUSY" class=8sref"85  *83548rr6a 8lass="6/gcm.c#L355" id="8355" 85 href71                 retur8;r6=f8_remai6_done" class="sre8">__g85_hash69lass="(rfc4106esetkeodverify href="c">gcm_hrfc4106esetkeokzallo pto/g321">4241
req)para hct_a" c" id="43para hte_ req)u8ct_a" c" id="43u8n"lincapto/">req)keodverify href="ckeokzals9ne" nrequest *46class="sref">req<8a>, <85f">EI70;&  = 6);8 *c86ode=r73&4241
req);
(areq8 int 862de=r73&4241
req)chilcst_a" c" id="431hilchref=L400" class="line"" name eqctx( *gcm_hash_assoc_done="4325" class="lin8r
areq8><86ode=r67code=err" class="sref"8rr6a 8ref="+6h_crypt_done" cla8s="sr86  382 keolec_commo         keolec=gct < 4d=!=316=req = req<8a>, <86de=cr72n(6a 86=f8_remai6code=aead_request8 clas86"sref66ROGRESS |5"> 355="4325" class="lin8"+code7="8337">46ss="sref">req8 int 86href=65code=data" class="srememcpodverify href="cmemcponca_gcmpto/gcm.c#L32"" name eqctx( |5"> 355="4325" class="lin8plete<6+c8de=pct6" class="sref">pc8x87BUSY<71                 retur8p+code7==8_async6e=gctx" class="sr8f">gc87ode=r73& 326code=gcTFM_REQE_AHASH_MASK href="+code=gcTFM_REQE_AHAte_ s43_done" class="srefhref=8p name6p"871"> 361         326co" cla d="4gL40ss="li_flagsc#4322" co" cla d="4gL40ss="lnca_gcmpto/gcm.c#L32para hct_a" c" id="43para hte_ s id="L3_done" class="srefhref=8p name6 n8quest<6f="crypto/gcm.c#L872" i87="sre73>req,        eL326"> 326code=gcTFM_REQE_AHASH_MASK href="+code=gcTFM_REQE_AHAte_ s43_done" class="srefhref=8p
gcm_h d="4"L4keodverify href="c">gcm_h d="4"L4keonca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchref< eL326"> 326keodverify href="ckeokzalsa hrs_done" claskeolec_commo         keolec=gctd43_done" class="srefhref=8pr6a 8ref="+6err" class="sref"8err |5"> 355 326co" cla d="4gL40ss="li_flagsc#4322" co" cla d="4gL40ss="lnca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchrefs id="L3_done" class="srefhref=8p name7a 8lass="6m_remain" class="8ref">87de=cr72n(6=f8_remai6line" name="L377"8 377<87     70=remaisref">e=err" one" class="sref">gcm_hash_assoc_done="4325" class="lin8rr6pd8te6EI68rypt_remain_done(-8gt;rfc4106esetine" cleuthsiza href="+code=gcrfc4106esetine" clekzallo pto/g321">4241
req)para hct_a" c" id="43para hte_ <71                 retur8h name6p"8ref="+6ode=EBUSY" class=8sref"88>    7                                     unsigned="( = 8381 *4241
req);
(6a 8383"> 683
 382 ine" cleuthsiza href="+ine" clekzald469ne" nrequest *6=;8req, :err" class="sref"8rr6"p8_remai6_done" class="sre8">__g888    73ne" nacase 12sso:err" class="sref"8rr6pd8te6class="sref">req<8a>, <889    73ne" nacase 16sso:err" class="sref"8err(:err" class="sref"8e name6p"8ref="+6m.c#L391" id="L398" cla89>    7               ="+code=err" ossoclen" class="sreVALlen);
="4325" class="lin8elete<6+r8lass="6                 8 int 86 href69>req( * 6s="sref">areq8><89 e=err" one" class="sref d="4"L4ine" cleuthsiza href="+code=gc d="4"L4ine" clenca_gcmpto/gcm.c#L32"" name eqctx( 326ine" cleuthsiza href="+ine" clekzaldVAL="4325" class="lin8e name7a 8gcm_ha6_done" class="sre8">__g89">__g68rypt_remain_done(6=;8req<8a>, <89 href71                 retur8" name6);8req);x" clarfc4106e"x" cnca_gcm_ghash_ctx" clarfc4106e"x" ckzallo pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req = 6code=aead_request8 clas89href=69ne" nrequest *req9 int 90">__g740" id=o pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)subss=d="in"l href="+subss=href=L400" class="line d="4ss="e i4"linca_gcm_ghash_c d="4ss="e i4"linca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin9" name7e19eq" cl7s_done(struct94241
req)f  cst_a" c" id="43f  cn"linL400" class="line" name= d="4ss=" exinetfpm.c#4321" id="4 d="4ss=" enca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin9"2name7e19eef="+6m.c#L391" id="L399c#L40902de=r73&4241
req);
(="4325" class="lin9"3name7e19eass="6                 9 int 90_hash71>reqerrreq)chilcst_a" c" id="431hilchref=L400" class="line"" name eqctx( 402
req)ivct_a" c" id="43ivhref=L400" class="line">gcALIGNct_a" c" id="43">gcALIGN_commgcmpto/gcm.c#L32u8ct_a" c" id="43u8n"linc)84" 2"> 382 subss=d="in"l href="+subss=href=+ 1) +SS |5"> 355<" id="4 d="4ss= cleuthsiza href="+code=gc d="4ss= clenca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchrefs<71                 retur9"57am9=83"> 6s="sref">areq9><97gcm_r704" id=lasssssssssssssssssS |5"> 355<" id="4 d="4fpdalg_nlgcmmaskm.c#4321" id="4 d="4fpdalg_nlnca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchrefs +to/g) - 1re" class="sref">co9"67am9=cm_ha6_done" class="sre9">__g90m_rem67code=err" class="sref"9L77am9=a hre6class="sref">req<9a>, <90L365"66ne" name="L355"> 355 326("crypto/gcm.c#L396" id90"sref66ROGRESS |5"> 355 326ss=d="in"l href="+ss=kzal=L400" uct  3269079L326"> 326ss=d="in"l href="+ss=kzal=L400" uct  326ss=d="in"l href="+ss=kzal=L400" uct     7                                 eL326"> 326ss=d="in"l href="+ss=kzal=L400" uct __g91lass=663amp; 326ss=d="in"l href="+ss=kzal=L400" uct  326ss=d="in"l href="+ss=kzal=L400" uct  326ss=d="in"l href="+ss=kzal=L400" uct L326"> 3266vct_a" c" id="43ivhrefsVAL="4325" class="lin9;r7am9="L4027class="sref">req<9a>, <91 href62code=data" class="sre d="4ss="e i4"L407cl=rdecs="l" id="43dd="4ss="e i4"L407cl=rnca_gcmpto/gcm.c#L32subss=d="in"l href="+subss=href< eL326"> 326ss=d="in"l href="+ss=kzal=L400" uct  326ss=d="in"l href="+ss=kzal=L400" uct c91">__g68      sref">e=err" one" classubss=d="in"l href="+subss=hrefVAL="4325" class="lin9;77am9="L4027s="sref">areq9 int 91L365"68rypt_remain_done( *req = areq9><91a> &a68lass="(rfc4106e"nlass=    s="sref">BU">gcm_hrfc4106e"nlass=kzallo pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req =  *req<9a>, <92ode=r73&e=err" one" class="sref d="4"nlass=    s="sref">BU">gcm_h d="4"nlass=kzallcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin9+r7am9e=req"7ss="sref">req9 int 97 href68rypt_remain_done(pc9x92 &3_done" class="srefhref"9err4275        rfc4106ef="+coddecs="l" id="4315" clarfc4106ef="+codkzallo pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req = 7am9="L4027f="crypto/gcm.c#4926" i97"432669ne" nrequest * |5"> 355err92a> &a72code=err" class="sref"9erre=err" one" class="sref d="4f="+coddecs="l" id="4315" cla d="4f="+codkzallcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin9ecode=7= 9sref">7omplete = (rfc4106ef="+cod"linetfpm.c#4321" id="4rfc4106ef="+cod"kzallo pto/g321">4241
<" id="4od"linetfpm.c#4321" id="4od"kzalgcmpto/">req)od"linetfpm.c#4321od"kzald=!=316=req = 7so9e=req"7f="+code=asson" c9ass="93 href69ne" nrequest *4241
cin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gci=L4("line*)mpto/">req)od"linetfpm.c#4321od"kzal=L400" uct __g68      err" class="sref">errreq)spawc_commo         spawcnca_gL400" class="line" name="L400">"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcin"l9err93354241
req);
(9e
__g68      err" class="sref">errreq)f  cst_a" c" id="43f  cn"li"l9e name7ar9337">4797
4241
< pdalst_a" c" id="43fpdaln"li"l9"+code7=_9gcm_ha7h_assoc_done" cla9s="sr94BUSY<71                 retur9"code=7= 9sref">7">req, 9" name7="9class=7"s42tne" class="s9ef">_94>    7       "L384" 2"> 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L32f  cst_a" c" id="43f  cn"lidd=!=316=req = 7e=err" one" clasremain"PTR_ERRss="sref">gcm_hPTR_ERRpto/gcm.c#L32f  cst_a" c" id="43f  cn"lidVAL="4325" class="lin9rr7so9eq" cl6ss="sref">req9 int 94ode=r67code=err" class="sref"9rde=cr7pc9de=pct6" class="sref">pc9x94  |5"> 355(9" name7a 9ref="+6e=gctx" class="sr9f">gc94m_rem67code=err" class="sref"9"rr 355< pdalst_a" c" id="43fpdaln"li=L400" class="line" name= d="4fpdalg_nlgcmmaskm.c#4321" id="4 d="4fpdalg_nlnca_gcmpto/gcm.c#L32f  cst_a" c" id="43f  cn"lidVAL="4325" class="lin9r
 |5"> 355< pdalst_a" c" id="43fpdaln"li=id="L= ~gcmpto/gcm.c#L32"x" claod"e"li4fpdalga hct_a" c" id="43"x" claod"e"li4fpdalga hnca_g) -to/g) - 1re" class="sref">co9"+code7="9337">46> 347
4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_) +) - 1re" class="sref">co9" name6="9code=g6m_remain" class="9ref">95 href60ain(4241
6ine" name="L350">9350(4241
<"x" claod"e"li4fpdalga hct_a" c" id="43"x" claod"e"li4fpdalga hnca_g)) +) - 1re" class="sref">co9" name7="9class=6/a>(    7                               S |5"> 355< pdalst_a" c" id="43fpdaln"li=+ 16g) - 1re" class="sref">co9" name6 n9me="L362"> 352      9     95     65                 retur9"r7so9f="+co6e=EINPROGRESS" cl9ss="s95 href72code=dsref">e0g) - 1re" class="sref">co9"de=cr7pc9ref="+6ode=EBUSY" class=9sref"95 (93546a 9lass="6/gcm.c#L355" id="9355" 95"432669lass="line" name="4320">4240rfc4106e"x"+cod"linetfpm.c#4321" id="4rfc4106e"x"+cod"kzallo pto/g321">4241
<" id="4od"linetfpm.c#4321" id="4od"kzalgcmpto/">req)od"linetfpm.c#4321od"kzald=!=316=req = 6=f9_remai6_done" class="sre9">__g95ode=r69ne" nrequest *46class="sref">req<9a>, <95f">EI70;&o pto/g321">4241
req);
(9rr6);9c96ode=r73&(9r name7="9class=6s="sref">areq9 int 962de=r68rypt_remain_done( *areq9><96ode=r69lass="line" to_gcm_reqctx" class="sref">cin"linca href="+code=gcms="linin"lincapto/">req);
4241
>req);
 *req<9a>, <96">__g68      err" class="sref">errreq)flgid="in"l href="+ lgin"li"l9"r6a 94241
cin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gci"l9"r6=f9_remai6code=aead_request9 clas968>__g68      err" class="sref">errreq)spawc_commo         spawcnca_"l9"+code7="9337">46ss="sref">req9 int 96f">EI70;&o pto/g321">4241
req)flgd="in"l href="+ lgnca_"l9plete<6+c9de=pct6" class="sref">pc9x97gcm_r73f="+co       con"l char">req);cm>   ste_    snca_"l9p+code7==9_async6e=gctx" class="sr9f">gc97ode=r73&<"(gcm_hash_assoc_done="4325" class="lin9p name6p"971"> 361        gcm_hsL407in etypeuthsiza href="+code=gcsL407in etypenca_gcmpto/gcm.c#L32o
gcm_hPTR_ERRpto/gcm.c#L32flgid="in"l href="+ lgin"lidone="4325" class="lin9pr6a 9ref="+6err" class="sref"9err 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L32flgid="in"l href="+ lgin"lidd=!=316=req = 97de=cr72n(6=f9_remai6line" name="L377"9 377<97     70=remai"L38ERRpto/gcm.c#L32flgid="in"l href="+ lgin"li=L400" uct 6EI70;& -9gt;   ste_    snca_>(!t   ste_ t   sERR_PTRpto/gcm.c#L32;
datas="sref">BUG_ON(!gcm_hPTR_ERRpto/gcm.c#L326cm>   ste_    snca_s43_done" class="srefhref=9h name6 n9lass="6ine" name="L381">9381 382        IS_ERRss="sref">gcm_hIS_ERRpto/gcm.c#L326cm>   ste_    snca_sd=!=316=req =  683
__g68         complein;in"l href="+code=gci=L4   complekzode=rdecs="l" id="43kzode=rkzallocleoflcapto/">req)in;in"l href="+code=gcis +tocleoflcapto/">req)spawc_commo         spawcnca_d< eL326"> 326GFP_KERNE="sreVALlen)GFP_KERNE=ss="s43_done" class="srefhref=93r6a 9req, req)in;in"l href="+code=gcis3_done" class="srefhref=93r6=f9_remai6_done" class="sre9">__g988    73ne" na 6class="sref">req<9a>, <98a> &a72code=err" class="sref"9err"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcin"l9err(struct9L326"> 3266" id="in"l href="+code=gcin"l9e name6p"9ref="+6m.c#L391" id="L399" cla992de=r73&datas="sref">BUG_ON(!L326"> 3266cm>   ste_    snca_, 0<71                 retur9elete<6+r9lass="6                 9 int 99="sre73>req,  apto/">req);
L326"> 326ilgid="in"l href="+ lgin"li=L400" uct 9elete<6"r9"crypt6a> * 382 6" id="href=lete" class="sl9er6a 9383"> 6s="sref">areq9><99gcm_r704" id=lassssssgoto eL326"> 326out"=gcs=6" id="in"l href="+out"=gcs=6" ioc_done="4325" class="lin9e name7a 9gcm_ha6_done" class="sre9">__g99m_rem67code=err" class="sref"9"r6=;9req<9a>, <99L365"66ne" name="L355"> 355< pgd="in"l href="+ lgnca__done" class="sref">gcm_h d="4"pawc"fss="sralg" id="43class=""d="4"pawc"fssnca_gcmpto/gcm.c#L32spawc_commo         spawcnca_n"l9er6=f9req = 6code=aead_request9 clas99href=65code=data" class="sref">datas="sref">BUG_ON(!=err" ossoclen" class="sreVALlen);
="4325" class="lin10" name7e=10" naa>6code=aead_request10" n>10" ss="73/pre>6codedoead_me7e88/64/8c38bae7dfa2272722b182631cfe22454a8a_3/10" n>L="4325" class="lin10"1name7e=10"="+co6n_done(struct10"=">10"ode=r73&/* We only support 16-byte be=rks. */e_areq="4325" class="lin10"2name7e=10"ef="+6m.c#L391" id="L3910"ef>10">    7       "L384" 2"> 382  pgd="in"l href="+ lgnca_=L400" uct 10"3name7e=10"ass="6                 10"as>10"="sre73>req, L326"> 326out"drop"fss="sralg" id="43out"drop"fssref=VAL="4325" class="lin10"4name7e=10"crypt6a> *10"ode=r67code=err" class="sref"10"5name7e=10"83"> 6s="sref">areq10"83>10"5de=r73&/* Not a;o peam cipher? */e_areq="4325" class="lin10"6name7e=10"cm_ha6_done" class="sre10"cm>10"">__g68      me="L352"> 382  pgd="in"l href="+ lgnca_=L400" uct 10"7name7e=10"a hre6class="sref">req<10"a >10"     73ne" naL326"> 326out"drop"fss="sralg" id="43out"drop"fssref=VAL="4325" class="lin10"8name7e=10"a hre6="crypto/gcm.c#L310"a >10"ass="73ref">req = 6code=aead_request10"e<>10"href=65code=data" class="sref">datas="sref">BUG_ON(!=err" ossoclen" clAMETOOLON   ADMSG href="+clAMETOOLON put_VAL="4325" class="lin101 name7e=10ref="+7ode=EBUSY" class=10ref>10re>__g68      me="L352"> 382 snprintaq 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gct,AL="4325" class="lin1011name7e=10lass="7ine" name="4309">10las>10r="+co69ain" class/a>("rfc4106(%s)"e_areq 355< pgd="in"l href="+ lgnca_=L400" uct ="4325" class="lin1012name7e=10"crypt7/gcm.c#4310" id="10"cr>10r>    7           L352"> 382 snprintaq   ste_    sll_ < eL326"> 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gct,AL="4325" class="lin1013name7e=10a>);
<7_done" class="sre10a>)>10r="sre73>req, "rfc4106(%s)"e_areq 355< pgd="in"l href="+ lgnca_=L400" uct    ste_    sll_ s te="4325" class="lin1014name7e=10="L4027class="sref">req<10="L>10rhref=66code=dL326"> 326code=gcMAXcCRYPlAMESH_MASK href="+code=gcMAXcCRYPlAME=gctsl1015name7e=10="L4027="crypto/gcm.c#4310="L>10rgcm_r704" id=lassssssgoto eL326"> 326out"drop"fss="sralg" id="43out"drop"fssref=VAL="4325" class="lin1016name7e=10_async7request" class="s10_as>10rm_rem67code=err" class="sref"10r7name7e=10="L4027s="sref">areq10="L>10rL365"66ne" name="L355"> 355<6" id="in"l href="+code=gci=L400" uct ="4325" class="lin1018name7e=10quest<7a> * |5"> 355<6" id="in"l href="+code=gci=L400" uct ="4325" class="lin1019name7e=10q" cla7s="sref">areq10q" >10rhref=65code=data" class="sre6" id="in"l href="+code=gci=L400" uct a=prioritonca__done" class="sref pgd="in"l href="+ lgnca_=L400" uct a=prioritonca_VAL="4325" class="lin102 name7e=10gcm_ha7h_assoc_done" cla10gcm>10gcref=65code=data" class="sre6" id="in"l href="+code=gci=L400" uct req<10las>10gode=r73&="4325" class="lin1022name7e=10gcm_hniv"d="4typeuthsiza href="+code=gcniv"d="4typenca_VAL="4325" class="lin1023name7e=10_remai7code=aead_request10_re>10g     65                 retur10g4name7e=10e=req"7ss="sref">req10e=r>10g href62code=data" class="sre6" id="in"l href="+code=gci=L400" uct pc10="L>10g  |5"> 355<6" id="in"l href="+code=gci=L400" uct co10g6name7e=1025">4275        10gm_rem67code=err" class="sref"1027name7e=10="L4027f="crypto/gcm.c#410="L>10gL365"66ne" name="L355"> 355<6" id="in"l href="+code=gci=L400" uct 4241
10g8name7e=10quest<7 unsigned int 10gass="73ref">req = 10ghref=65code=data" class="sre6" id="in"l href="+code=gci=L400" uct gcm_hrfc4106ef="+cod"linetfpm.c#4321" id="4rfc4106ef="+cod"kzal"l103 name7e=10"+code7gcm_remain" class10"+c>10"+ref=65code=data" class="sre6" id="in"l href="+code=gci=L400" uct gcm_hrfc4106e"x"+cod"linetfpm.c#4321" id="4rfc4106e"x"+cod"kzal"l1031name7e=10sref">7omplete = 10"1ss="73ref">req = 10"2de=r73&gcm_hrfc4106e"L4keodverify href="c">gcm_hrfc4106e"L4keokzal"l1033name7e=10_remai7gcm_hrfc4106e"L4ine" cleuthsiza href="+code=gcrfc4106esetine" clekzal"l1034name7e=10e=req"7f="+code=asson" c10e=r>10" href62code=data" class="sre6" id="in"l href="+code=gci=L400" uct BU"nlass=kzal_done" class="sref">gcm_hrfc4106e"nlass=    s="sref">BU">gcm_hrfc4106e"nlass=kzal"l1035name7e=10de=pct7e=EINPROGRESS" cl10de=>10"  |5"> 355<6" id="in"l href="+code=gci=L400" uct gcm_hrfc4106ef="+coddecs="l" id="4315" clarfc4106ef="+codkzal"l1036name7e=10ref="+7ode=EBUSY" class=10ref>10"m_rem67code=err" class="sref"1037name7e=10lass="7ine" name="4335">10las>10"L365"66ne" name="L355"> 355<6" id="in"l href="+code=gci=L400" uct "seqiv"e_areq<"l1038name7e=10quest<7/gcm.c#4336" id="10que>10"ass="73ref">req = 4797
L326"> 326out="sralg" id="43outref=sso:err" class="sref"104 name7e=10gcm_ha7h_assoc_done" cla10gcm>10gc365"66ne" na"+code==err" one" clasin;in"l href="+code=gci"l10g1name7e=10sref">7">req, 10g1ss="73ref">req =  326out"drop"fss="sralg" id="43out"drop"fssref=sso:err" class="sref"1043name7e=10href="7code=aead_request10hre>10glass=663amp;10g4name7e=10eq" cl6ss="sref">req10eq">10g4ref=eL326"> 326out"=gcs=6" id="in"l href="+out"=gcs=6" ioc_dsso:err" class="sref"1045name7e=10de=pct6" class="sref">pc10de=>10g  |5"> 35510g6name7e=10ref="+6e=gctx" class="sr10ref>10g">__g68         complein;in"l href="+code=gci=L4   comples="srefERR_PTRc#4322" id="432ERR_PTRpto/gcm.c#L326" id="href=lete" class="s43_done" class="srefhref=10g7name7e=10lass="6 href="crypto/gcm10las>10gL365"66ne" nagoto eL326"> 326out="sralg" id="43outref=43_done" class="srefhref=10g8name7e=10"crypt6     unsigned int10"cr>10gass="68rypt_remain_done(46> 347
10ga> &a72code=err" class="sref"105 name7e=10code=g6m_remain" class="10cod>10co> &a69lass="line" name="4320">4240rfc4106e=gcsd="in"l href="+240rfc4106e=gcsERR_Po pto/g321">4241
cin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gcisl1051name7e=10sref">6ine" name="L350">10sre>10c1ss="69ne" nrequest *("l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcins43_done" class="srefhref=1053name7e=10me="L362"> 352      10me=>10class=663amp;1054name7e=10f="+co6e=EINPROGRESS" cl10f=">10c href68rypt_remain_done(10c &3_done" class="srefhref"10c6name7e=10lass="6ine" name="L354">10las>10cm_rem68lass=o pto/g321">4241
<" id="4oemplatin"linca href="+c id="4oemplatiass=6" name="4320">4240rfc4106etmpld="in"l href="+240rfc4106etmpl=gci=L469ne" nrequest *(!<"rfc4106"e_areq *gcm_hrfc4106eode=rdecs="l" id="4315" clarfc4106eode=rkzals9ne" nrequest *46class="sref">req<10337>10c9365"66ne" na" c4243est" clas=gcsd="in"l href="+=gcsnca__done" class="sref">gcm_hrfc4106e=gcsd="in"l href="+240rfc4106e=gcsERR_s9ne" nrequest * *1062name7e=10class=6s="sref">areq10cla>10 *4241
req)tx" clarfc4543areq"linca_gcm_ghash_ctx" clarfc4543areq"linca_g7401" class="line" name=10<4name7e=10q" cla6s="sref">areq10q" >10< href62code=do pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req = 10<  *req<10las>10<">__g68      unsigned=longg321">4241
< pdalst_a" c" id="43fpdaln"li=L400" class="line" name= d="4fpdalg_nlgcmmaskm.c#4321" id="4 d="4fpdalg_nlnca_gcmpto/gcm.c#L32" id="4 d="4ss=" exinetfpm.c#4321" id="4 d="4ss=" enca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldn"l1067name7e=10req)">gcALIGNct_a" c" id="43">gcALIGN_commgcmpto/gcm.c#L32u8ct_a" c" id="43u8n"linc)321">4241
< d="4ss="e i4"linca_gcm_ghash_c d="4ss="e i4"linca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldsame="L355"> 355< pdalst_a" c" id="43fpdaln"li=+ 1n"l1069name7e=10337">46ss="sref">req10337>10<9href68rypt_remain_done(pc10de=>10dehref71                 retur1071name7e=10_async6e=gctx" class="sr10_as>10d1    68lass="(rfc4543a"L4keodverify href="c">gcm_hrfc4543a"L4keoERR_Po pto/g321">4241
req)para hct_a" c" id="43para hERR_so      cmpto/gcm.c#L32u8ct_a" c" id="43u8n"linca href="+code=pkeodverify href="ckeoERR_s9ne" nrequest * 361        10d>    7                                unsigned="( = 10d3 *10d href62code=do pto/g321">4241
<">gcm_hrfc4543a"linca_gcm_ghash_ctx" clarfc4543a"linca_gcmpto/">req);
(1075name7e=10ref="+6err" class="sref"10ref>10d 4241
req)+hilcst_a" c" id="431hilchref=L400" class="line"" name eqctx(1076name7e=10lass="6m_remain" class="10las>10d">__g68      m(gcm_hash_assoc_done="4325" class="lin10d7name7e=10 = 10d href71                 retur1078name7e=10_remai6line" name="L377"10_re>10d     70=remai"L38 hrs_done" claskeolec_commo         keoleckzal < 4d=!=316=req = 6EI70;& 10gthref71                 retur1081name7e=10f="+co6e=EINPROGRESS" cl10f=">10gode=r73&10g2de=r73&(="4325" class="lin1083name7e=10lass="6ine" name="L381">10las>10g     65                 retur1084name7e=10"crypt6/gcm.c#L382" id="10"cr>10g href62code=data" class="sretx" cla d="4"lear=ss="li_flagsc#4322" co" cla d="4"lear=ss="lnca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchref< eL326"> 326code=gcTFM_REQ_MASKst_a" c" id="43code=gcTFM_REQ_MASKERR_n"l1085name7e=10383"> 683
 355 326co" cla d="4gL40ss="li_flagsc#4322" co" cla d="4gL40ss="lnca_gcmpto/gcm.c#L32para hct_a" c" id="43para hERR_n_id="Ll1086name7e=10gcm_ha6h_crypt_done" cla10gcm>10gde=cr72n(L326"> 326code=gcTFM_REQ_MASKst_a" c" id="43code=gcTFM_REQ_MASKERR_n"l1087name7e=10req, 10gL365"66ne" name="L355"> 355datas="sref">BUG_ON(!gcm_h d="4"L4keonca_gcmpto/gcm.c#L32"hilcst_a" c" id="431hilchref< eL326"> 326keodverify href="ckeoERR_sa hrs_done" claskeolec_commo         keoleckzald"l1088name7e=10_remai6_done" class="sre10_re>10g"sref66ROGRESS |5"> 355 326co" cla d="4gL40ss="li_flagsc#4322" co" cla d="4gL40ss="lnca_gcmpto/gcm.c#L32+hilcst_a" c" id="431hilchrefd_id="Ll1089name7e=10te6class="sref">req<10te<>10gf">EI70;& L326"> 326code=gcTFM_RES_MASKst_a" c" id="43code=gcTFM_RES_MASKERR_n"l109 name7e=10(struct10f=">10gcm_hash_assoc_done="4325" class="lin1092name7e=10ref="+6m.c#L391" id="L3910ref>10<2de=r68rypt_remain_done(10<     65                 retur1094name7e=10"crypt6a> *10rfc4543a"L4ine" cleuthsiza href="+code=gcrfc4543a"L4ine" cleERR_Po pto/g321">4241
req)para hct_a" c" id="43para hERR_s65                 retur1095name7e=10383"> 6s="sref">areq10383>10 =  *req<1010<     73ne" nao pto/g321">4241
req);
(1098name7e=10req = 6code=aead_request10te<>10EI70;&me="L352"> 382  ne" cleuthsiza href="+ine" cleERR_7!= 16sl11" name7e=11" naa>6code=aead_request11" n>110 href60ain((struct11"=">1101ss="73ref">req = 11">    7       sref">e=err" one" class="sref d="4"L4ine" cleuthsiza href="+code=gc d="4"L4ine" clenca_gcmpto/gcm.c#L32"" name eqctx( 326ine" cleuthsiza href="+ine" cleERR_dVAL="4325" class="lin11"3name7e=11"ass="6                 11"as>11"="sre68rypt_remain_done( *11"ode=r67code=err" class="sref"11"5name7e=11"83"> 6s="sref">areq11"83>11"5de=r68lass=o pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)tx" clarfc4543a"x" cnca_gcm_ghash_ctx" clarfc4543a"x" cERR_Po pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzals65                 retur11"6name7e=11"cm_ha6_done" class="sre11"cm>110de=cr72n(11"7name7e=11"a hre6class="sref">req<11"a >11"     69ne" nrequest *1108>__g68      err" class="sref">errreq)f  cst_a" c" id="43f  cn"li=L400" class="line" name= d="4ss=" exinetfpm.c#4321" id="4 d="4ss=" enca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin11"9name7e=11"e6code=aead_request11"e<>110f">EI70;&o pto/g321">4241
req);
(="4325" class="lin111 name7e=11ref="+7ode=EBUSY" class=11ref>11re>__g68      o pto/g321">4241
req)r"linca_gcm_ghash_cr11las>11r="+co69ain" co pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)subss=d="in"l href="+subss=href=L4id="Lne" class="srefr"linca_gcm_ghash_cr11r>    7       o pto/g321">4241
req)d id="in"l href="+dde=gci=L4   compless=d="in"l href="+ss=kzal=L400" uct req4241
req)ciphernca_gcm_ghash_ctipher=gci=L4   comples"linca_gcm_ghash_crreq<11="L>111 href62code=do pto/g321">4241
req)paylo cst_a" c" id="43paylo c=gci=L4   comples"linca_gcm_ghash_cr111 4241
req)n"l=rdecs="l" id="43o"l=r=gci=L4   comples"linca_gcm_ghash_cr="4325" class="lin1116name7e=11_async7request" class="s11_as>111">__g68      unsigned="(="4325" class="lin1117name7e=11="L4027s="sref">areq11="L>11rL365"66ne" naunsigned="(compless=d="in"l href="+ss=kzal=L400" uct ="4325" class="lin1118name7e=11quest<7a> *errreq)d ipd="in"l href="+ddep=gciVAL="4325" class="lin1119name7e=11q" cla7s="sref">areq11q" >11rhref=65code=data" class="sreu8ct_a" c" id="43u8n"linca href="+code=pvd id="in"l href="+vdde=gciVAL="4325" class="lin112 name7e=11gcm_ha7h_assoc_done" cla11gcm>11gcref=65code=data" class="sreu8ct_a" c" id="43u8n"linca href="+code=p6vct_a" c" id="436vkzal_don href="+code=p">gcALIGNct_a" c" id="43">gcALIGN_commgcmpto/gcm.c#L32u8ct_a" c" id="43u8n"linc)gcmpto/gcm.c#L32s"linca_gcm_ghash_cr(req<11las>112="+co69ain" class/a>((1122name7e=11112lass=663amp; 326c" name eqctx(req11e=r>11g href62code=data" class="srememcpodverify href="cmemcponca_gcmpto/gcm.c#L326vct_a" c" id="436vkzal=+ 4soeL326"> 326ss=d="in"l href="+ss=kzal=L400" uct pc11="L>112 &3_done" class="srefhref"11g6name7e=1125">4275        112">__g68       /*      r" cltipher/pla"(="4325" class="lin1127name7e=11="L4027f="crypto/gcm.c#411="L>11gL365"66ne" na"L384" 2"> 382 6nrdecs="l" id="43enrhIS_sl11g8name7e=11quest<7 unsigned int 1128    73ne" na L326"> 326ine" cleuthsiza href="+ine" cleERR_dVAL="4325" class="lin1129name7e=11q" cla7e=err" class="sre11q" >11ghref=65code=delseAL="4325" class="lin113 name7e=11"+code7gcm_remain" class11"+c>113 href60ain(4241
7omplete = 113="+co69ain" class/a>((4241
L326"> 326ine" cleuthsiza href="+ine" cleERR_s65                 retur1132name7e=11class=7line" name="4331"11cla>113>    7                                >(4241
="4325" class="lin1133name7e=11_remai711" href62code=data" class="sresgef="+co hre"in"l href="+sgef="+co hnca_gcmpto/gcm.c#L32"iphernca_gcm_ghash_ctipher=gcisoeL326"> 326s"linca_gcm_ghash_cr="4325" class="lin1135name7e=11de=pct7e=EINPROGRESS" cl11de=>113 &3_done" class="srefhref"1136name7e=11ref="+7ode=EBUSY" class=11ref>113">__g68       /*      r" clthe aad */e_areq="4325" class="lin1137name7e=11lass="7ine" name="4335">11las>11"L365"66ne" name="L355"> 355 |5"> 355)NUL==gci_:lass="sref">err4797
114gcm_r73f="+code=cryphref="+csgef="+ctableuthsiza href="+sgef="+ctablenca_gcmpto/gcm.c#L32paylo cst_a" c" id="43paylo c=gci, 2dVAL="4325" class="lin11g1name7e=11sref">7">req, 114ode=r73& 326ss=d="in"l href="+ss=kzal=L400" uct  326d id="in"l href="+dde=gcisSS |5"> 355compless=d="in"l href="+ss=kzal=L400" uct 11glass=663amp; 382 6nrdecs="l" id="43enrhIS_ ?o0_:lass="sref">err="4325" class="lin11g4name7e=11eq" cl6ss="sref">req11eq">114ode=r67code=err" class="sref"1145name7e=11de=pct6" class="sref">pc11de=>11g  |5"> 355="4325" class="lin11g6name7e=11ref="+6e=gctx" class="sr11ref>11g">__g68         complesge"L40pageuthsiza href="+sge"L40pagenca_gcmpto/gcm.c#L32n"l=rdecs="l" id="43o"l=r=gci, n href="+code=psgepageuthsiza href="+sgepagenca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzal=L400" uct  355(4241
114"sref66ROGRESS |5"> 35546> 347
11ga> &a72code=err" class="sref"115 name7e=11code=g6m_remain" class="11cod>115gcm_r73f="+code=cryphref="+c d="4ss="e i4"L40" exinetfpm.c#4321 d="4ss="e i4"L40" enca_gcmpto/gcm.c#L32subss=d="in"l href="+subss=hrefsoeL326"> 326c" name eqctx(6ine" name="L350">11sre>115ode=r73& 326ss=d="in"l href="+ss=kzal=L400" uct  326ss=d="in"l href="+ss=kzal=L400" uct 115>    7                                >eL326"> 326ss=d="in"l href="+ss=kzal=L400" uct  352      11me=>11class=663amp; 326ciphernca_gcm_ghash_ctipher=gcisoeL326"> 326ciphernca_gcm_ghash_ctipher=gcisoeL326"> 3266nrdecs="l" id="43enrhIS_ ?o0_:lass="sref">errL326"> 3266vct_a" c" id="436vkzal)VAL="4325" class="lin1154name7e=11f="+co6e=EINPROGRESS" cl11f=">115 href62code=data" class="sre d="4ss="e i4"L40n"l=rdecs="l" id="43od="4ss="e i4"L40n"l=rnca_gcmpto/gcm.c#L32subss=d="in"l href="+subss=hrefsoeL326"> 326n"l=rdecs="l" id="43o"l=r=gci, n href="+code=pi"l=rlec_commo         i"l=rlec=gci)VAL="4325" class="lin1155name7e=11ref="+6ode=EBUSY" class=11ref>11c &3_done" class="srefhref"11c6name7e=11lass="6ine" name="L354">11las>115">__g68      sref">e=err" one" classubss=d="in"l href="+subss=hrefVAL="4325" class="lin11c7name7e=11lass="6/gcm.c#L355" id="11las>11cL365"68rypt_remain_done(req = 46class="sref">req<11337>11c9365"69lass="(rfc4543a"nlass=    s="sref">BU">gcm_hrfc4543a"nlass=nca_go pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req =  *4241
req)f  cst_a" c" id="43f  cn"li=L400" class="line" name= d="4ss=" exinetfpm.c#4321" id="4 d="4ss=" enca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin1162name7e=11class=6s="sref">areq11cla>116>    7       o pto/g321">4241
req)r"linca_gcm_ghash_cr116="sre73>req4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)subss=d="in"l href="+subss=hrefVAL="4325" class="lin11<4name7e=11q" cla6s="sref">areq11q" >11< href62code=dm(gcm_hash_assoc_done="4325" class="lin11<5name7e=11ref="+6h_crypt_done" cla11ref>116 &3_done" class="srefhref"11<6name7e=11lass="6class="sref">req<11las>116">__g68         complesubss=d="in"l href="+subss=href=L400" class="line" name=rfc4543a"x" cnca_gcm_ghash_ctx" clarfc4543a"x" cERR_Pcmpto/gcm.c#L32ss=d="in"l href="+ss=kzal, 1n"l1167name7e=11 355datas="sref">BUG_ON(!BU">gcm_h d="4"nlass=nca_gcmpto/gcm.c#L32subss=d="in"l href="+subss=hrefn"l1168name7e=11_remai6code=aead_request11_re>11<8365"66ne" na"L384" 2"> 382 6" id="href=lete" class="sl1169name7e=11337">46ss="sref">req11337>116f">EI70;& gcm_hash_assoc_done="4325" class="lin117 name7e=11de=pct6" class="sref">pc11de=>11dehref71                 retur1171name7e=11_async6e=gctx" class="sr11_as>117ode=r73& 361        11d>    7                                1173name7e=11quest<6f="crypto/gcm.c#L11que>117     65                 retur1174name7e=11q" cla6 unsigned int 11d href62code=d"+code=0"l1175name7e=11ref="+6err" class="sref"11ref>11d ( = 11d href69lass="(rfc4543af="+coddecs="l" id="4315" clarfc4543af="+codnca_go pto/g321">4241
< d="4ss="e id="in"l href="+ d="4ss="e inca_gcmpto/">req)ss=d="in"l href="+ss=kzald=!=316=req = 11d     69ne" nrequest *611gthref71                 retur1181name7e=11f="+co6e=EINPROGRESS" cl11f=">11gode=r73&e=err" one" class="sref d="4f="+coddecs="l" id="4315" cla d="4f="+codnca_gcmpto/gcm.c#L32ss=d="in"l href="+ss=kzaldVAL="4325" class="lin1182name7e=11ref="+6ode=EBUSY" class=11ref>1182de=r68rypt_remain_done(11las>11g     65                 retur1184name7e=11"crypt6/gcm.c#L382" id="11"cr>118ode=r69lass="(rfc4543af="+cod"linetfpm.c#4321" id="4rfc4543af="+cod"nca_go pto/g321">4241
<" id="4od"linetfpm.c#4321" id="4od"nca_gcmpto/">req)od"linetfpm.c#4321od"nca_d=!=316=req =  683
 *11gde=cr72n(o pto/g321">4241
cin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gci=L4("line*)mpto/">req)od"linetfpm.c#4321od"nca_=L400" uct ="4325" class="lin1187name7e=11req, 118     73ne" nao pto/g321">4241
req)spawc_commo         spawcnca_=L400" class="line" name="L400">"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcinone="4325" class="lin1188name7e=11_remai6_done" class="sre11_re>1188>__g68      err" class="sref">errreq);
(="4325" class="lin1189name7e=11te6class="sref">req<11te<>118f">EI70;&o pto/g321">4241
req)f  cst_a" c" id="43f  cn"lione="4325" class="lin119 name7e=114241
< pdalst_a" c" id="43fpdaln"lione="4325" class="lin1191name7e=11f="+co6n_done(struct11f=">1191ss="73ref">req = 11<3name7e=11lass="6                 11las>119="sre73>req 382 IS_ERfERR_PTRc#4322" IS_ERfnca_gcmpto/gcm.c#L32f  cst_a" c" id="43f  cn"lidd=!=316=req =  *119 href62code=d73&e=err" one" clas">gcERfERR_PTRc#4322" ">gcERfnca_gcmpto/gcm.c#L32f  cst_a" c" id="43f  cn"lid"l11<5name7e=11383"> 6s="sref">areq11383>119 &3_done" class="srefhref"1196name7e=11gcm_ha6_done" class="sre11gcm>119">__g68         complec" name eqctx(="4325" class="lin1197name7e=11req<11119 href71                 retur1198name7e=11 |5"> 355< pdalst_a" c" id="43fpdaln"li=L400" class="line" name= d="4fpdalg_nlgcmmaskm.c#4321" id="4 d="4fpdalg_nlnca_gcmpto/gcm.c#L32f  cst_a" c" id="43f  cn"lid"l11<9name7e=11te6code=aead_request11te<>119href=65code=data" class="sre pdalst_a" c" id="43fpdaln"li=id="L= ~gcmpto/gcm.c#L32" id="4od"a"li4fpdalga hct_a" c" id="43" id="4od"a"li4fpdalga hnca_g) - 1n"l12" name7e=12" naa>6code=aead_request12" n>120gcm_r73f="+code=cryphref="+cod"linetfpm.c#4321od"nca_=L400" uct 4241
<" id="4rfc4543areqe"linca_gcm_ghash_ctx" clarfc4543areqe"lin"li) +l12"1name7e=12"="+co6n_done(struct12"=">120="+co69ain" class/a>(4241
12"2name7e=12"ef="+6m.c#L391" id="L3912"ef>120>    7                                >(12"3name7e=12"ass="6                 12"as>1203"+co69ain" class/a>(4241
< pdalst_a" c" id="43fpdaln"li=+ 16"l12"4name7e=12"crypt6a> *12"ode=r67code=err" class="sref"12"5name7e=12"83"> 6s="sref">areq12"83>120 12"6name7e=12"cm_ha6_done" class="sre12"cm>120de=cr68rypt_remain_done(req<12"a >120 href71                 retur12"8name7e=12"a hre6="crypto/gcm.c#L312"a >1208>__g69lass="line" name="4320">4240rfc4543a"x"+cod"linetfpm.c#4321" id="4rfc4543a"x"+cod"nca_go pto/g321">4241
<" id="4od"linetfpm.c#4321" id="4od"nca_gcmpto/">req)od"linetfpm.c#4321od"nca_d=!=316=req = 6code=aead_request12"e<>120f">EI69ne" nrequest *12re>__g68      o pto/g321">4241
req);
(="4325" class="lin1211name7e=12lass="7ine" name="4309">12las>1211ss="73ref">req = 1212de=r73&((req<12="L>121ode=r67code=err" class="sref"1215name7e=12="L4027="crypto/gcm.c#4312="L>1215de=r68lass=o pto/g321">4241
cin"linca href="+code=gcms="linin"lincapto/">req)tx" clarfc4543aode=rdecs="l" id="4315" clarfc4543aode=rnca_go pto/g321">4241
gcm_hash_r8lat"n"linccmpto/">req)oblinetfpm.c#4321obnca_d=!=316=req =  *areq12="L>121     73ne" nao pto/g321">4241
req)flgid="in"l href="+ lgin"lione="4325" class="lin1218name7e=12quest<7a> *errcin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gcione="4325" class="lin1219name7e=12q" cla7s="sref">areq12q" >121f">EI70;&o pto/g321">4241
req)spawc_commo         spawcnca_one="4325" class="lin122 name7e=12gcm_ha7h_assoc_done" cla12gcm>122e>__g68      o pto/g321">4241
req)flgd="in"l href="+ lgnca_one="4325" class="lin1221name7e=12lass="7class="sref">req<12las>122="+co69ain" c      charncapto/">req)tcm_f">r="sralg" id="43ccm_f">rnca_one="4325" class="lin1222name7e=12req11e=r>112 href22code=data" class="srememcpodin"l href="+ lgin"lioneclass="line" name=od"a"li"lncpeuthsiza href="+code=gc at"_ty"lncpeuthsizapto/gcm.c#L32od"linetpm.c#4321obnca_d=!=316=176name7e=1inea> *pc11="L>112 &225OGRESS |5"> 355BUG_ON(!gcERfnca_gcmpto/gcm.c#L32f  cst_an"l href="+ lgin"lione=176name7e=1inea> *        112">__g28        382 IS_ERfERR_PTRc#4322" IS_ERfnca_gcmpto/gcm.c#L32f  cst_an"l href="+ lgin"lione==req = 112L365"22ne" nan(gcERfgcm_nca href="+ lgin"lgcm_ncapto/gcm.c#L32f  cst_href=lete" class="sl *1128    22ref">req = 112href=22;&me="L352"> gcm.c#L32f  cst_an"l href="+ lgin"lioneuct gcERfTFM_RESALG_TYPE_AEAD href="+code=gcTFM_RESALG_TYPE_AEADluct 112 href20ain(42=err" one" clas">gcERfgcm_nca href="+ lgin"lgcm_ncapto/gssoclen" class="sreVALlen);
e176name7e=1inea> *2omplete = 112="+co23ref">req = 112>    23&rnca_oneclass="line" name= d="4fpdeuthionsralg" id="43ccm_f">rd="4fpdeuthionsralgpto/gcm.c#L32od"linetpm.c#4321obnca_d=!=316[1]e176name7e=1inea> *BUG_ON(!gcERfnca_gcmpto/gcm.c#L32f  cst_=="sralg" id="43ccm_f">rnca_onee176name7e=1inea> *112 href22code=data" cl2"> 382 IS_ERfERR_PTRc#4322" IS_ERfnca_gcmpto/gcm.c#L32f  cst_=="sralg" id="43ccm_f">rnca_onee=req = 112 &234" id=lasssssssssssss=err" one" clas">gcERfgcm_nca href="+ lgin"lgcm_ncapto/gcm.c#L32f  cst_href=lete" class="sl *112">__g23code=err" class="sref"11d7name2e=11lass="2ine" name="4335">11las>112L365"26ne" name="L355"> 355 355);
 * !req)in;in"l href="+code=gcioner76name7e=1inea> *
 *112gcm_r24                 retur1181name2e=11sref">2">req, 112ode=r23&"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcinone="4325" class="lin1188name2e=11class=2"s42tne" class="s11cla>1122de=r23& 3266vct_a" n"l href="+code=gcinone="4325" class="lin1188name2e76name7e=2code=aead_request11hre>112lass=263amp;BUG_ON(! 3266vct_a"=="sralg" id="43ccm_f">rnca_oneVAL<"4325" class="lin1188name2e=11e=req"2ss="sref">req11eq">112ode=r24code=d73&eeeeeeeeeeeeeeeereq)tx" clarfc4543aequires_sy"l" id="43enrhIS_rfc4543aequires_sy"lpto/gcm.c#L32f  cst_an"l href="+ lgin"lioneuct uct pc11de=>112  |2"> 382 6" id="href=lete" class="sl1169name2e=11ref="+2e=gctx" class="sr11ref>112">__g24n( *112"sref26ROGRESS |5"> 355="4325" class="lin1188name2e=11q" cla2> 347
112a> &a22code=err" class="sref"115 name2e=11code=g2m_remain" class="11cod>112gcm_r23f="+code=cryphref="+c d="4sss="sref">BUG_ON(!2ine" name="L350">11sre>112ode=r25ref">req = ( 352      11me=>112lass=25>req 382 IS_ERfEn"l href="+ lgnca_oneuct 11" name2e=11f="+co2e=EINPROGRESS" cl11f=">112 href25code=d73&egoto="+code=pi"l=rleout dropa_lg" id="43class="out dropa_lg="4325" class="lin11"1name2e=12="L4027ode=EBUSY" class=11ref>112 &2_done" class="srefhref"11c6name2e=11lass="2ine" name="L354">11las>112">__g25       /*      r"Not ag321eam/pla"(="4325" class="lin1137name2e=11lass="2/gcm.c#L355" id="11las>112L365"25ne" na"L384" 2"> 382 6nrdecsn"l href="+ lgnca_oneuct 11" name2e=11"crypt2_done" class="sre11_re>112ass="25ne" na ="4325" class="lin11"1name2e=11q" cla2class="sref">req<11337>1129365"25code=err" class="sref"115 name2e=11BUG_ON(!="4325" class="lin11"1name2e=11_async2request" class="s11_as>112="+co29ain" co pto/g2"> 382 6nrdecssnprintf" class=sge"L40bnprintfpto/gcm.c#L326" id="in"l href="+code=gcinonerdaa_oneVAne" clas">gcERfTFM_RESMAXSALG_NAME href="+code=gcTFM_RESMAXSALG_NAMEV"4325" class="lin11"1name2e=11class=2s="sref">areq11cla>112>    26                          "aode=rn(%s)"AL=f="+code=pi"l=rlecn" href="+ lgnca_oneuct rdaa_one) ct  *( 6nrdecssnprintf" class=sge"L40bnprintfpto/gcm.c#L326" id="in"l href="+code=gcinonerdaadriver_ralgVAne" clas">gcERfTFM_RESMAXSALG_NAME href="+code=gcTFM_RESMAXSALG_NAMEV"4325" class="lin11"1name2e=11f="+co2s="sref">areq11q" >112 href26code=d73&eeeeee"aode=rn(%s)"AL=f="+code=pi"l=rlecn" href="+ lgnca_oneuct rdaadriver_ralg) ct 112 &264" id=lasssssssssne" clas">gcERfTFM_RESMAXSALG_NAME href="+code=gcTFM_RESMAXSALG_NAMEerr" class="sref">11" name2e=11lass="2class="sref">req<11las>112">__g26n(="4325" class="lin11"1name2e=111128365"26ROGRESS |5"> 355req11337>112f">EI26code=data" class="sre pdalstin"l href="+code=gcinonepc11de=>112ehref27f="+code=cryphref="+c d="4ssin"l href="+code=gcinone        112>    27&112     273amp;112 href27code=err" class="sref"1215name7e=11ref="+2err" class="sref"11ref>112  |5"> 355complec" namein"l href="+code=gcinone12"4name7e=11 = 112 href27                 retur12"8name7e=11_remai2line" name="L377"11_re>112     27ROGRESS |5"> 3554241
<" id="4rfc4543areqe"ligcm_ghash_ctx" clarfc4543a"linca_gcmpto/>="4325" class="lin1188name2e=11te2112thref28f="+code=cryphref="+c d="4ssin"l href="+code=gcinoneref="+code=code=gc d="4"Laf="+cod"linetfpm.c#4321" id="4rfc4543af="+cod"nca_go pto/="4325" class="lin1188name2e=11f="+co2e=EINPROGRESS" cl11f=">112ode=r28&ref="+code=code=gc d="4"Laf="+cod"linetfpm.c#4321" id="4rfc4543a"x"+cod"nca_go pto/="4325" class="lin1188name2e=11class=2ode=EBUSY" class=11ref>1122de=r2801" class="line" name=1123name2e=11lass="2ine" name="L381">11las>112     283amp;112ode=r28code=data" class="srememcpodin"l href="+code=gcinone
 355BU">gcm_hnca_gcmpto/ref="+code=code=gc d="4"Laf="+cod"   s="sref">BU">gcm_hrfc4543a"nlass=nca_go pto/="4325" class="lin1188name2e=11lass="2h_crypt_done" cla11gcm>112de=cr28         complec" namein"l href="+code=gcinonereq, 112     28                 retur12"8name7e=11_remai2_done" class="sre11_re>1128>__g28ROGRESS |5"> 355"seqiv"AL=="4325" class="lin1188name2e=11te2class="sref">req<11te<>112f">EI28code=err" class="sref"115 name2e=11(struct11f=">1121ss="29&e=err" one" class="srefin"l href="+code=gcione="4325" class="lin1219name7e=11ref="+2m.c#L391" id="L3911ref>1122de=r2901" class="line" name=1123name2e=11lass="2                 11las>112="sre23>req<"+code=pi"l=rleout dropa_lg" id="43class="out dropa_lg:err" class="sref"115 name2e=11f="+co2a> *112 href29code=data" class="srememcpodrfc4543dropa_" c" id="4315ass="=gcs"f dropa_" cpto/gcm.c#L326" id="bmmo         spawcnca_=L400" >="4325" class="lin1188name2e=11383"> 2s="sref">areq11383>112 &2_done""+code=pi"l=rleout  c_co n"l href="+code=gcout  c_co n"l2__g28         complec" namek c_c href="+code=gck c_cpto/gcm.c#L326" id="in"l href="+code=gcinone="4325" class="lin1188name2e=11req<11112 href29ne" name="L355"> 355 355112"sref26ROGRESS |goto="+code=pi"l=rleout" id="43class="out="+c176name7e=1inea> *2code=aead_request11te<>112href=25code=remain_done(3code=aead_request12" n>123gcm_r30                 retur1181name3e=12"="+co3n_done(struct12"=">123="+co39ain" "line" name="4320">4240rfc4543a"x"+cod c_c href="+code=gcrfc4543a"x"+cod c_cpto/gass="sref">errcin"linca href="+code=gcms="linin"lincapto/">req)in;in"l href="+code=gcioneerr" class="sref">11" name3e=12"ef="+3m.c#L391" id="L3912"ef>123>    3      request *1233"+co303amp;"l"linca_gcm_ghash_ctx" cla"L400">"l"linca_gcmpto/gcm.c#L326" id="in"l href="+code=gcinonee176name7e=1inea> * *123ode=r30code=data" class="srememcpodk c_c href="+code=gck c_cpto/gcm.c#L326" id="in"l href="+code=gcinone="4325" class="lin1188name3e=12"83"> 3s="sref">areq12"83>123 (123de=cr30code=err" class="sref"11d7name3e=12"a hre3class="sref">req<12"a >123 href30lass="(4241
<" id="4od"linetemplaca href="+calpletid"linetemplacaode=d"4320">4240rfc4543a"x"+codtmpl href="+code=gcrfc4543a"x"+codtmpl("line*request *1138>__g30ROGRESS |est" classs= cleralg" id="43ccm_f">_oneclasspan/qalla h321ing">"aode=rn"AL=fequest *113f">EI309OGRESS |est" classs= clecs="l" id="4315" clacs="lpto/ref="+code=code=gc d="4"Laf="+codcs="l" id="4315" clarfc4543aode=rnca_go pto/fequest *123e>__g38      o pto/gest" clas=s="li_fc_c href="+code=gc c_cpto/ref="+code=code=gc d="4"Laf="+cod c_c href="+code=gcrfc4543a"x"+cod c_cpto/fequest *12las>1231ss="311     o pto/gest" clas=s="li_moduza href="+sgef="+moduzapto/ref="+code=code=gcTHIS_MODULE href="+code=gcTHIS_MODULEpto/fequest *1232de=r33&}="4325" class="lin1188name3e=12a>);
<3_done" class="sre12a>)>123="sre31                 retur1184name3e=12="L4023class="sref">req<12="L>123ode=r31lass="(__"nca href="+code=gc__"ncar="+code=code=gc d="4"L118_moduza_"nca href="+code=gc d="4"L118_moduza_"ncapto/gnameerr" class="sref">11" name3e=12="L4023="crypto/gcm.c#4312="L>1235de=r31ne" nrequest *areq12="L>123     31                 retur12"8name3e=12quest<3a> * 355);
 *areq12q" >123f">EI31;&me="L352"> !req)in;118_zeroesc#4322" ss="lnc118_zeroespto/err" class="sref">11" name3e=12gcm_ha3h_assoc_done" cla12gcm>123e>__g32ain(42=err" ossoclen" class="sNOMEM href="+ lgin"lgNOMEMa h=176name7e=1inea> *req<12las>123="+co32ref">req = BUG_ON(! *113lass=32>req 382 IS_ERfEhref=lete" class="sl1169name3e=11e=req"3ss="sref">req11e=r>113 href32code=data" clSS |goto="+code=pi"l=rleout" id="43class="out="+c176name7e=1inea> *pc11="L>113 &32done" class="srefhref"11c6name31=12_async35        113">__g32         complec" names="sref">BUG_ON(!113L365"32ne" nan(<2"> 382 IS_ERfEhref=lete" class="sl1169name3e=12quest<3 unsigned int 1138    32ne" na  *113href=32code=err" class="sref"115 name3e=11"+code3gcm_remain" class11"+c>113 href33f="+code=cryphref="+c d="4sss="sref">BUG_ON(! *3omplete = 113="+co33ain" co pto/g2"> 382 6nrdecshref=lete" class="sl1169name3e=11class=3line" name="4331"11cla>113>    33                     goto="+code=pi"l=rleout undo_116 href="+basekzaout undo_116="+c176name7e=1inea> *113 href33code=data" class="srememcpods="sref">BUG_ON(! *113 &334" id=lasssss2"> 382 6nrdecshref=lete" class="sl1169name3e=12_async3ode=EBUSY" class=11ref>113">__g33n(11las>113L365"33                 retur12"8name3e=12quest<3/gcm.c#4336" id="11que>113"sref33ne" na"L384" 0"l12"6name3e=11q" cla397
113gcm_r34f="+c"+code=pi"l=rleout undo_a"x"106 href="+basekzaout undo_a"x"106="+c:err" class="sref"115 name3e=11sref">3">req, 113ode=r33& *113lass=363amp;req11eq">113ode=r34code="+code=pi"l=rleout undo_siza href="+basekzaout undo_siza="+c:err" class="sref"115 name3e=12="L4023" class="sref">pc11de=>113  |"+code=pi"l=rlerfc4543unregisteretemplaca href="+calpletid"lineunregisteretemplacapto/g~gcmp="+code=code=gc d="4"L118_l" cdtmpl href="+code=gcrfc4543118_l" cdtmpla h=e176name7e=1inea> *__g34n"+code=pi"l=rleout" id="43class="out="+c:err" class="sref"115 name3e=11lass="3 href="crypto/gcm11las>113L365"34ne" name="L355"> 355113"sref34ne" na"L384" 0"l 347
113a> &a34code=remain_done(3ine" name="L350">11sre>113ode=r35ain" "line" name="4320">4240__"nca href="+code=gc__"ncar="+code=code=gc d="4"L118_moduza_"nca href="+code=gc d="4"L118_moduza_"ncapto/gnameerr" class="sref">11" name3e=11class=3/a>( 352      11me=>113lass=353amp; *113 &355OGRESS |"+code=pi"l=rlerfc4543unregisteretemplaca href="+calpletid"lineunregisteretemplacapto/g~gcmp="+code=code=gc d="4"La"x"106dtmpl href="+code=gcrfc4543a"x"106dtmpla h=e176name7e=1inea> *11las>113">__g35         complec" name fc4543unregisteretemplaca href="+calpletid"lineunregisteretemplacapto/g~gcmp="+code=code=gc d="4"L118_tmpl href="+code=gcrfc4543118_tmpla h=e176name7e=1inea> * 355 *(req<11337>1139365"35code=err" class="sref"115 name3e=11 * *areq11cla>113>    3601" class="line" name=1123name3e=11me="L33a> *req<"+code=pi"l=rleMODULE_LICENSE href="+code=gcMODULE_LICENSEpto/g=span/qalla h321ing">"GPL"AL=e176name7e=1inea> *areq11q" >113 href36code="+code=pi"l=rleMODULE_DESCRIPTIOc" id="43ALIGN_cMODULE_DESCRIPTIOcpto/g=span/qalla h321ing">"Galois/Counter M=rl"AL=e176name7e=1inea> *113 &36done""+code=pi"l=rleMODULE_AUTHOa href="+ lgin"lMODULE_AUTHOapto/g=span/qalla h321ing">"Mikko H hranen <mh1@iki.fict <"AL=e176name7e=1inea> *req<11las>113">__g36n"+code=pi"l=rleMODULE_ALIAS href="+ lgin"lMODULE_ALIASpto/g=span/qalla h321ing">"118_l" c"AL=e176name7e=1inea> *113L365"36     "+code=pi"l=rleMODULE_ALIAS href="+ lgin"lMODULE_ALIASpto/g=span/qalla h321ing">"a"x"106"AL=e176name7e=1inea> *1138365"36ROGRE"+code=pi"l=rleMODULE_ALIAS href="+ lgin"lMODULE_ALIASpto/g=span/qalla h321ing">"a"x"=rn"AL=e176name7e=1inea> *req11337>113f">EI36code=


rfooter"> The original LXR software by the 6name7e=1http://sourceforge.net/projects/lxr">LXR c>/*unity, this experi* al version by 6name7e=1mailto:lxr@eqlxr@eq.
rsubfooter"> lxr.eqRedpill Lq