File Index
Files and directories
Sign in
FILE

rfc3962_aes.c

File preview with syntax highlighting.

linux-6.19.14/crypto/krb5/rfc3962_aes.c C
  1// SPDX-License-Identifier: BSD-3-Clause
  2/* rfc3962 Advanced Encryption Standard (AES) Encryption for Kerberos 5
  3 *
  4 * Parts borrowed from net/sunrpc/auth_gss/.
  5 */
  6/*
  7 * COPYRIGHT (c) 2008
  8 * The Regents of the University of Michigan
  9 * ALL RIGHTS RESERVED
 10 *
 11 * Permission is granted to use, copy, create derivative works
 12 * and redistribute this software and such derivative works
 13 * for any purpose, so long as the name of The University of
 14 * Michigan is not used in any advertising or publicity
 15 * pertaining to the use of distribution of this software
 16 * without specific, written prior authorization.  If the
 17 * above copyright notice or any other identification of the
 18 * University of Michigan is included in any copy of any
 19 * portion of this software, then the disclaimer below must
 20 * also be included.
 21 *
 22 * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION
 23 * FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY
 24 * PURPOSE, AND WITHOUT WARRANTY BY THE UNIVERSITY OF
 25 * MICHIGAN OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
 26 * WITHOUT LIMITATION THE IMPLIED WARRANTIES OF
 27 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
 28 * REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE
 29 * FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR
 30 * CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING
 31 * OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN
 32 * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF
 33 * SUCH DAMAGES.
 34 */
 35
 36/*
 37 * Copyright (C) 1998 by the FundsXpress, INC.
 38 *
 39 * All rights reserved.
 40 *
 41 * Export of this software from the United States of America may require
 42 * a specific license from the United States Government.  It is the
 43 * responsibility of any person or organization contemplating export to
 44 * obtain such a license before exporting.
 45 *
 46 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
 47 * distribute this software and its documentation for any purpose and
 48 * without fee is hereby granted, provided that the above copyright
 49 * notice appear in all copies and that both that copyright notice and
 50 * this permission notice appear in supporting documentation, and that
 51 * the name of FundsXpress. not be used in advertising or publicity pertaining
 52 * to distribution of the software without specific, written prior
 53 * permission.  FundsXpress makes no representations about the suitability of
 54 * this software for any purpose.  It is provided "as is" without express
 55 * or implied warranty.
 56 *
 57 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 58 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 59 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 60 */
 61
 62/*
 63 * Copyright (C) 2025 Red Hat, Inc. All Rights Reserved.
 64 * Written by David Howells (dhowells@redhat.com)
 65 */
 66
 67#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 68
 69#include "internal.h"
 70
 71const struct krb5_enctype krb5_aes128_cts_hmac_sha1_96 = {
 72	.etype		= KRB5_ENCTYPE_AES128_CTS_HMAC_SHA1_96,
 73	.ctype		= KRB5_CKSUMTYPE_HMAC_SHA1_96_AES128,
 74	.name		= "aes128-cts-hmac-sha1-96",
 75	.encrypt_name	= "krb5enc(hmac(sha1),cts(cbc(aes)))",
 76	.cksum_name	= "hmac(sha1)",
 77	.hash_name	= "sha1",
 78	.derivation_enc	= "cts(cbc(aes))",
 79	.key_bytes	= 16,
 80	.key_len	= 16,
 81	.Kc_len		= 16,
 82	.Ke_len		= 16,
 83	.Ki_len		= 16,
 84	.block_len	= 16,
 85	.conf_len	= 16,
 86	.cksum_len	= 12,
 87	.hash_len	= 20,
 88	.prf_len	= 16,
 89	.keyed_cksum	= true,
 90	.random_to_key	= NULL, /* Identity */
 91	.profile	= &rfc3961_simplified_profile,
 92};
 93
 94const struct krb5_enctype krb5_aes256_cts_hmac_sha1_96 = {
 95	.etype		= KRB5_ENCTYPE_AES256_CTS_HMAC_SHA1_96,
 96	.ctype		= KRB5_CKSUMTYPE_HMAC_SHA1_96_AES256,
 97	.name		= "aes256-cts-hmac-sha1-96",
 98	.encrypt_name	= "krb5enc(hmac(sha1),cts(cbc(aes)))",
 99	.cksum_name	= "hmac(sha1)",
100	.hash_name	= "sha1",
101	.derivation_enc	= "cts(cbc(aes))",
102	.key_bytes	= 32,
103	.key_len	= 32,
104	.Kc_len		= 32,
105	.Ke_len		= 32,
106	.Ki_len		= 32,
107	.block_len	= 16,
108	.conf_len	= 16,
109	.cksum_len	= 12,
110	.hash_len	= 20,
111	.prf_len	= 16,
112	.keyed_cksum	= true,
113	.random_to_key	= NULL, /* Identity */
114	.profile	= &rfc3961_simplified_profile,
115};
~/ Read-only file preview.