hmac 394 drivers/char/tpm/tpm2-cmd.c const u8 *hmac, u16 hmac_len) hmac 406 drivers/char/tpm/tpm2-cmd.c if (hmac && hmac_len) hmac 407 drivers/char/tpm/tpm2-cmd.c tpm_buf_append(buf, hmac, hmac_len); hmac 1756 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1761 drivers/crypto/atmel-sha.c hmac->resume = resume; hmac 1793 drivers/crypto/atmel-sha.c if (likely(!atmel_sha_hmac_key_get(&hmac->hkey, &key, &keylen))) hmac 1801 drivers/crypto/atmel-sha.c memcpy((u8 *)hmac->ipad, key, keylen); hmac 1802 drivers/crypto/atmel-sha.c memset((u8 *)hmac->ipad + keylen, 0, bs - keylen); hmac 1817 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1825 drivers/crypto/atmel-sha.c hmac->ipad[i] = atmel_sha_read(dd, SHA_REG_DIGEST(i)); hmac 1826 drivers/crypto/atmel-sha.c memset((u8 *)hmac->ipad + ds, 0, bs - ds); hmac 1834 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1839 drivers/crypto/atmel-sha.c memcpy(hmac->opad, hmac->ipad, bs); hmac 1841 drivers/crypto/atmel-sha.c hmac->ipad[i] ^= 0x36363636; hmac 1842 drivers/crypto/atmel-sha.c hmac->opad[i] ^= 0x5c5c5c5c; hmac 1845 drivers/crypto/atmel-sha.c return atmel_sha_cpu_hash(dd, hmac->ipad, bs, false, hmac 1853 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1860 drivers/crypto/atmel-sha.c hmac->ipad[i] = atmel_sha_read(dd, SHA_REG_DIGEST(i)); hmac 1861 drivers/crypto/atmel-sha.c return atmel_sha_cpu_hash(dd, hmac->opad, bs, false, hmac 1869 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1875 drivers/crypto/atmel-sha.c hmac->opad[i] = atmel_sha_read(dd, SHA_REG_DIGEST(i)); hmac 1876 drivers/crypto/atmel-sha.c atmel_sha_hmac_key_release(&hmac->hkey); hmac 1877 drivers/crypto/atmel-sha.c return hmac->resume(dd); hmac 1919 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1921 drivers/crypto/atmel-sha.c return atmel_sha_hmac_key_set(&hmac->hkey, key, keylen); hmac 1940 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1948 drivers/crypto/atmel-sha.c memcpy(ctx->digest, hmac->ipad, hs); hmac 1957 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 1974 drivers/crypto/atmel-sha.c atmel_sha_write(dd, SHA_REG_DIN(i), hmac->opad[i]); hmac 2016 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 2034 drivers/crypto/atmel-sha.c atmel_sha_write(dd, SHA_REG_DIN(i), hmac->ipad[i]); hmac 2038 drivers/crypto/atmel-sha.c atmel_sha_write(dd, SHA_REG_DIN(i), hmac->opad[i]); hmac 2065 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_tfm_ctx(tfm); hmac 2069 drivers/crypto/atmel-sha.c hmac->base.start = atmel_sha_hmac_start; hmac 2070 drivers/crypto/atmel-sha.c atmel_sha_hmac_key_init(&hmac->hkey); hmac 2077 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_tfm_ctx(tfm); hmac 2079 drivers/crypto/atmel-sha.c atmel_sha_hmac_key_release(&hmac->hkey); hmac 2400 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 2412 drivers/crypto/atmel-sha.c ctx->flags = hmac->base.flags; hmac 2423 drivers/crypto/atmel-sha.c struct atmel_sha_hmac_ctx *hmac = crypto_ahash_ctx(tfm); hmac 2430 drivers/crypto/atmel-sha.c atmel_sha_write(dd, SHA_REG_DIN(i), hmac->ipad[i]); hmac 2434 drivers/crypto/atmel-sha.c atmel_sha_write(dd, SHA_REG_DIN(i), hmac->opad[i]); hmac 2267 drivers/crypto/axis/artpec6_crypto.c artpec6_crypto_init_hash(struct ahash_request *req, u8 type, int hmac) hmac 2277 drivers/crypto/axis/artpec6_crypto.c if (hmac) hmac 2282 drivers/crypto/axis/artpec6_crypto.c oper = hmac ? regk_crypto_hmac_sha1 : regk_crypto_sha1; hmac 2285 drivers/crypto/axis/artpec6_crypto.c oper = hmac ? regk_crypto_hmac_sha256 : regk_crypto_sha256; hmac 95 drivers/crypto/cavium/cpt/cptvf_algs.h struct fchmac_context hmac; hmac 51 drivers/crypto/ccree/cc_aead.c struct cc_hmac_s hmac; hmac 99 drivers/crypto/ccree/cc_aead.c struct cc_hmac_s *hmac = &ctx->auth_state.hmac; hmac 101 drivers/crypto/ccree/cc_aead.c if (hmac->ipad_opad) { hmac 103 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad, hmac 104 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad_dma_addr); hmac 106 drivers/crypto/ccree/cc_aead.c &hmac->ipad_opad_dma_addr); hmac 107 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad_dma_addr = 0; hmac 108 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad = NULL; hmac 110 drivers/crypto/ccree/cc_aead.c if (hmac->padded_authkey) { hmac 112 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey, hmac 113 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey_dma_addr); hmac 115 drivers/crypto/ccree/cc_aead.c &hmac->padded_authkey_dma_addr); hmac 116 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey_dma_addr = 0; hmac 117 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey = NULL; hmac 173 drivers/crypto/ccree/cc_aead.c struct cc_hmac_s *hmac = &ctx->auth_state.hmac; hmac 175 drivers/crypto/ccree/cc_aead.c dma_addr_t *pkey_dma = &hmac->padded_authkey_dma_addr; hmac 178 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad = dma_alloc_coherent(dev, digest_size, hmac 179 drivers/crypto/ccree/cc_aead.c &hmac->ipad_opad_dma_addr, hmac 182 drivers/crypto/ccree/cc_aead.c if (!hmac->ipad_opad) { hmac 188 drivers/crypto/ccree/cc_aead.c hmac->ipad_opad); hmac 190 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey = dma_alloc_coherent(dev, hmac 195 drivers/crypto/ccree/cc_aead.c if (!hmac->padded_authkey) { hmac 200 drivers/crypto/ccree/cc_aead.c ctx->auth_state.hmac.ipad_opad = NULL; hmac 201 drivers/crypto/ccree/cc_aead.c ctx->auth_state.hmac.padded_authkey = NULL; hmac 304 drivers/crypto/ccree/cc_aead.c struct cc_hmac_s *hmac = &ctx->auth_state.hmac; hmac 341 drivers/crypto/ccree/cc_aead.c hmac->padded_authkey_dma_addr, hmac 352 drivers/crypto/ccree/cc_aead.c (hmac->ipad_opad_dma_addr + digest_ofs), hmac 429 drivers/crypto/ccree/cc_aead.c ctx->auth_state.hmac.padded_authkey_dma_addr; hmac 1013 drivers/crypto/ccree/cc_aead.c ctx->auth_state.hmac.ipad_opad_dma_addr, digest_size, hmac 1142 drivers/crypto/ccree/cc_aead.c (ctx->auth_state.hmac.ipad_opad_dma_addr + digest_size), hmac 30 drivers/crypto/inside-secure/safexcel_hash.c bool hmac; hmac 220 drivers/crypto/inside-secure/safexcel_hash.c if (sreq->hmac && hmac 231 drivers/crypto/inside-secure/safexcel_hash.c sreq->hmac = 0; hmac 696 drivers/crypto/inside-secure/safexcel_hash.c } else if (unlikely(req->hmac && hmac 730 drivers/crypto/inside-secure/safexcel_hash.c } else if (req->hmac) { hmac 893 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 992 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1252 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1322 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1502 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1572 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1691 drivers/crypto/inside-secure/safexcel_hash.c req->hmac = true; hmac 1349 drivers/crypto/n2_core.c struct n2_hmac_alg *hmac, *hmac_tmp; hmac 1356 drivers/crypto/n2_core.c list_for_each_entry_safe(hmac, hmac_tmp, &hmac_algs, derived.entry) { hmac 1357 drivers/crypto/n2_core.c crypto_unregister_ahash(&hmac->derived.alg); hmac 1358 drivers/crypto/n2_core.c list_del(&hmac->derived.entry); hmac 1359 drivers/crypto/n2_core.c kfree(hmac); hmac 170 drivers/crypto/qce/sha.c const u32 *state, const u8 *buffer, bool hmac) hmac 191 drivers/crypto/qce/sha.c if (hmac) hmac 208 drivers/crypto/qce/sha.c bool hmac = IS_SHA_HMAC(flags); hmac 215 drivers/crypto/qce/sha.c state->buffer, hmac); hmac 220 drivers/crypto/qce/sha.c state->buf, hmac); hmac 1346 drivers/net/ethernet/3com/typhoon.c u32 hmac; hmac 1382 drivers/net/ethernet/3com/typhoon.c hmac = le32_to_cpu(fHdr->hmacDigest[0]); hmac 1383 drivers/net/ethernet/3com/typhoon.c iowrite32(hmac, ioaddr + TYPHOON_REG_DOWNLOAD_HMAC_0); hmac 1384 drivers/net/ethernet/3com/typhoon.c hmac = le32_to_cpu(fHdr->hmacDigest[1]); hmac 1385 drivers/net/ethernet/3com/typhoon.c iowrite32(hmac, ioaddr + TYPHOON_REG_DOWNLOAD_HMAC_1); hmac 1386 drivers/net/ethernet/3com/typhoon.c hmac = le32_to_cpu(fHdr->hmacDigest[2]); hmac 1387 drivers/net/ethernet/3com/typhoon.c iowrite32(hmac, ioaddr + TYPHOON_REG_DOWNLOAD_HMAC_2); hmac 1388 drivers/net/ethernet/3com/typhoon.c hmac = le32_to_cpu(fHdr->hmacDigest[3]); hmac 1389 drivers/net/ethernet/3com/typhoon.c iowrite32(hmac, ioaddr + TYPHOON_REG_DOWNLOAD_HMAC_3); hmac 1390 drivers/net/ethernet/3com/typhoon.c hmac = le32_to_cpu(fHdr->hmacDigest[4]); hmac 1391 drivers/net/ethernet/3com/typhoon.c iowrite32(hmac, ioaddr + TYPHOON_REG_DOWNLOAD_HMAC_4); hmac 646 drivers/thunderbolt/domain.c u8 hmac[TB_SWITCH_KEY_SIZE]; hmac 682 drivers/thunderbolt/domain.c memset(hmac, 0, sizeof(hmac)); hmac 683 drivers/thunderbolt/domain.c ret = crypto_shash_digest(shash, challenge, sizeof(hmac), hmac); hmac 688 drivers/thunderbolt/domain.c if (memcmp(response, hmac, sizeof(hmac))) { hmac 54 fs/ubifs/auth.c u8 *hmac) hmac 61 fs/ubifs/auth.c err = crypto_shash_digest(shash, hash, c->hash_len, hmac); hmac 96 fs/ubifs/auth.c err = ubifs_hash_calc_hmac(c, hash, auth->hmac); hmac 402 fs/ubifs/auth.c int len, int ofs_hmac, void *hmac) hmac 430 fs/ubifs/auth.c return crypto_shash_final(shash, hmac); hmac 465 fs/ubifs/auth.c u8 *hmac; hmac 468 fs/ubifs/auth.c hmac = kmalloc(hmac_len, GFP_NOFS); hmac 469 fs/ubifs/auth.c if (!hmac) hmac 472 fs/ubifs/auth.c err = ubifs_node_calc_hmac(c, node, len, ofs_hmac, hmac); hmac 474 fs/ubifs/auth.c kfree(hmac); hmac 478 fs/ubifs/auth.c err = crypto_memneq(hmac, node + ofs_hmac, hmac_len); hmac 480 fs/ubifs/auth.c kfree(hmac); hmac 522 fs/ubifs/auth.c int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac) hmac 542 fs/ubifs/auth.c err = crypto_shash_final(shash, hmac); hmac 556 fs/ubifs/auth.c bool ubifs_hmac_zero(struct ubifs_info *c, const u8 *hmac) hmac 558 fs/ubifs/auth.c return !memchr_inv(hmac, 0, c->hmac_desc_len); hmac 28 fs/ubifs/master.c int hmac_offs = offsetof(struct ubifs_mst_node, hmac); hmac 138 fs/ubifs/master.c if (ubifs_hmac_zero(c, c->mst_node->hmac)) { hmac 146 fs/ubifs/master.c offsetof(struct ubifs_mst_node, hmac)); hmac 461 fs/ubifs/master.c offsetof(struct ubifs_mst_node, hmac)); hmac 473 fs/ubifs/master.c offsetof(struct ubifs_mst_node, hmac)); hmac 204 fs/ubifs/recovery.c offsetof(struct ubifs_mst_node, hmac), 1); hmac 572 fs/ubifs/replay.c static int authenticate_sleb_hmac(struct ubifs_info *c, u8 *hash, u8 *hmac) hmac 578 fs/ubifs/replay.c return crypto_shash_digest(hmac_desc, hash, c->hash_len, hmac); hmac 605 fs/ubifs/replay.c u8 hmac[UBIFS_HMAC_ARR_SZ]; hmac 621 fs/ubifs/replay.c err = authenticate_sleb_hmac(c, hash, hmac); hmac 625 fs/ubifs/replay.c err = ubifs_check_hmac(c, auth->hmac, hmac); hmac 322 fs/ubifs/sb.c offsetof(struct ubifs_sb_node, hmac)); hmac 342 fs/ubifs/sb.c offsetof(struct ubifs_mst_node, hmac)); hmac 347 fs/ubifs/sb.c 0, offsetof(struct ubifs_mst_node, hmac)); hmac 586 fs/ubifs/sb.c if (ubifs_hmac_zero(c, sup->hmac)) { hmac 598 fs/ubifs/sb.c hmac)); hmac 620 fs/ubifs/sb.c offsetof(struct ubifs_sb_node, hmac), 1); hmac 1386 fs/ubifs/super.c if (ubifs_authenticated(c) && ubifs_hmac_zero(c, c->sup_node->hmac)) { hmac 678 fs/ubifs/ubifs-media.h __u8 hmac[UBIFS_MAX_HMAC_LEN]; hmac 754 fs/ubifs/ubifs-media.h __u8 hmac[UBIFS_MAX_HMAC_LEN]; hmac 781 fs/ubifs/ubifs-media.h __u8 hmac[]; hmac 1684 fs/ubifs/ubifs.h bool ubifs_hmac_zero(struct ubifs_info *c, const u8 *hmac); hmac 1686 fs/ubifs/ubifs.h int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac); hmac 721 include/linux/sctp.h __u8 hmac[0]; hmac 159 include/net/sctp/structs.h struct crypto_shash *hmac; hmac 15 include/uapi/linux/seg6_hmac.h __u8 hmac[SEG6_HMAC_FIELD_LEN]; hmac 274 net/ipv6/seg6_hmac.c if (memcmp(hmac_output, tlv->hmac, SEG6_HMAC_FIELD_LEN) != 0) hmac 344 net/ipv6/seg6_hmac.c memset(tlv->hmac, 0, SEG6_HMAC_FIELD_LEN); hmac 345 net/ipv6/seg6_hmac.c err = seg6_hmac_compute(hinfo, srh, saddr, tlv->hmac); hmac 740 net/sctp/auth.c digest = auth->auth_hdr.hmac; hmac 1672 net/sctp/sm_make_chunk.c if (sctp_sk(ep->base.sk)->hmac) { hmac 1673 net/sctp/sm_make_chunk.c SHASH_DESC_ON_STACK(desc, sctp_sk(ep->base.sk)->hmac); hmac 1677 net/sctp/sm_make_chunk.c desc->tfm = sctp_sk(ep->base.sk)->hmac; hmac 1739 net/sctp/sm_make_chunk.c if (!sctp_sk(ep->base.sk)->hmac) hmac 1744 net/sctp/sm_make_chunk.c SHASH_DESC_ON_STACK(desc, sctp_sk(ep->base.sk)->hmac); hmac 1747 net/sctp/sm_make_chunk.c desc->tfm = sctp_sk(ep->base.sk)->hmac; hmac 4209 net/sctp/sm_statefuns.c struct sctp_hmac *hmac; hmac 4239 net/sctp/sm_statefuns.c hmac = sctp_auth_get_hmac(ntohs(auth_hdr->hmac_id)); hmac 4240 net/sctp/sm_statefuns.c if (sig_len != hmac->hmac_len) hmac 4250 net/sctp/sm_statefuns.c digest = auth_hdr->hmac; hmac 5108 net/sctp/socket.c sp->hmac = NULL; hmac 5170 net/sctp/socket.c crypto_free_shash(sp->hmac); hmac 8361 net/sctp/socket.c if (!sp->hmac && sp->sctp_hmac_alg) { hmac 8369 net/sctp/socket.c sctp_sk(sk)->hmac = tfm; hmac 9382 net/sctp/socket.c newsp->hmac = NULL; hmac 737 net/sunrpc/auth_gss/gss_krb5_crypto.c struct xdr_netobj hmac; hmac 783 net/sunrpc/auth_gss/gss_krb5_crypto.c hmac.len = GSS_KRB5_MAX_CKSUM_LEN; hmac 784 net/sunrpc/auth_gss/gss_krb5_crypto.c hmac.data = buf->tail[0].iov_base + buf->tail[0].iov_len; hmac 798 net/sunrpc/auth_gss/gss_krb5_crypto.c cksumkey, usage, &hmac); hmac 955 net/sunrpc/auth_gss/gss_krb5_crypto.c struct crypto_shash *hmac; hmac 963 net/sunrpc/auth_gss/gss_krb5_crypto.c hmac = crypto_alloc_shash(kctx->gk5e->cksum_name, 0, 0); hmac 964 net/sunrpc/auth_gss/gss_krb5_crypto.c if (IS_ERR(hmac)) { hmac 966 net/sunrpc/auth_gss/gss_krb5_crypto.c __func__, PTR_ERR(hmac), kctx->gk5e->cksum_name); hmac 967 net/sunrpc/auth_gss/gss_krb5_crypto.c return PTR_ERR(hmac); hmac 970 net/sunrpc/auth_gss/gss_krb5_crypto.c desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), hmac 975 net/sunrpc/auth_gss/gss_krb5_crypto.c crypto_free_shash(hmac); hmac 979 net/sunrpc/auth_gss/gss_krb5_crypto.c desc->tfm = hmac; hmac 982 net/sunrpc/auth_gss/gss_krb5_crypto.c err = crypto_shash_setkey(hmac, kctx->Ksess, kctx->gk5e->keylength); hmac 991 net/sunrpc/auth_gss/gss_krb5_crypto.c err = crypto_shash_setkey(hmac, Kseq, kctx->gk5e->keylength); hmac 1007 net/sunrpc/auth_gss/gss_krb5_crypto.c crypto_free_shash(hmac); hmac 1021 net/sunrpc/auth_gss/gss_krb5_crypto.c struct crypto_shash *hmac; hmac 1030 net/sunrpc/auth_gss/gss_krb5_crypto.c hmac = crypto_alloc_shash(kctx->gk5e->cksum_name, 0, 0); hmac 1031 net/sunrpc/auth_gss/gss_krb5_crypto.c if (IS_ERR(hmac)) { hmac 1033 net/sunrpc/auth_gss/gss_krb5_crypto.c __func__, PTR_ERR(hmac), kctx->gk5e->cksum_name); hmac 1034 net/sunrpc/auth_gss/gss_krb5_crypto.c return PTR_ERR(hmac); hmac 1037 net/sunrpc/auth_gss/gss_krb5_crypto.c desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), hmac 1042 net/sunrpc/auth_gss/gss_krb5_crypto.c crypto_free_shash(hmac); hmac 1046 net/sunrpc/auth_gss/gss_krb5_crypto.c desc->tfm = hmac; hmac 1052 net/sunrpc/auth_gss/gss_krb5_crypto.c err = crypto_shash_setkey(hmac, Kcrypt, kctx->gk5e->keylength); hmac 1061 net/sunrpc/auth_gss/gss_krb5_crypto.c err = crypto_shash_setkey(hmac, Kcrypt, kctx->gk5e->keylength); hmac 1083 net/sunrpc/auth_gss/gss_krb5_crypto.c crypto_free_shash(hmac); hmac 409 net/sunrpc/auth_gss/gss_krb5_mech.c struct crypto_shash *hmac; hmac 419 net/sunrpc/auth_gss/gss_krb5_mech.c hmac = crypto_alloc_shash(ctx->gk5e->cksum_name, 0, 0); hmac 420 net/sunrpc/auth_gss/gss_krb5_mech.c if (IS_ERR(hmac)) { hmac 422 net/sunrpc/auth_gss/gss_krb5_mech.c __func__, PTR_ERR(hmac), ctx->gk5e->cksum_name); hmac 423 net/sunrpc/auth_gss/gss_krb5_mech.c err = PTR_ERR(hmac); hmac 427 net/sunrpc/auth_gss/gss_krb5_mech.c err = crypto_shash_setkey(hmac, ctx->Ksess, ctx->gk5e->keylength); hmac 432 net/sunrpc/auth_gss/gss_krb5_mech.c desc = kmalloc(sizeof(*desc) + crypto_shash_descsize(hmac), GFP_NOFS); hmac 440 net/sunrpc/auth_gss/gss_krb5_mech.c desc->tfm = hmac; hmac 467 net/sunrpc/auth_gss/gss_krb5_mech.c crypto_free_shash(hmac); hmac 673 security/keys/encrypted-keys/encrypted.c u8 *hmac; hmac 694 security/keys/encrypted-keys/encrypted.c hmac = epayload->format + epayload->datablob_len; hmac 695 security/keys/encrypted-keys/encrypted.c ret = hex2bin(hmac, hex_encoded_data + (encrypted_datalen * 2),