2N/A * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A * Copyright 2003 by the Massachusetts Institute of Technology. 2N/A * All Rights Reserved. 2N/A * Export of this software from the United States of America may 2N/A * require a specific license from the United States Government. 2N/A * It is the responsibility of any person or organization contemplating 2N/A * export to obtain such a license before exporting. 2N/A * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 2N/A * distribute this software and its documentation for any purpose and 2N/A * without fee is hereby granted, provided that the above copyright 2N/A * notice appear in all copies and that both that copyright notice and 2N/A * this permission notice appear in supporting documentation, and that 2N/A * the name of M.I.T. not be used in advertising or publicity pertaining 2N/A * to distribution of the software without specific, written prior 2N/A * permission. Furthermore if you modify this software you must label 2N/A * your software as modified software and not distribute it in such a 2N/A * fashion that it might be confused with the original M.I.T. software. 2N/A * M.I.T. makes no representations about the suitability of 2N/A * this software for any purpose. It is provided "as is" without express 2N/A * or implied warranty. 2N/A * krb5int_aes_string_to_key 2N/A /* Solaris Kerberos */ 2N/A /* The first two need casts in case 'int' is 16 bits. */ 2N/A | ((
unsigned long)p[
1] <<
16)
2N/A iter_count = (1L << 16) << 16; 2N/A if (((iter_count >> 16) >> 16) != 1) 2N/A return KRB5_ERR_BAD_S2K_PARAMS; 2N/A /* This is not a protocol specification constraint; this is an 2N/A implementation limit, which should eventually be controlled by 2N/A * Dense key space, no parity bits or anything, so take a shortcut 2N/A * and use the key contents buffer for the generated bytes. 2N/A /* Solaris Kerberos */ 2N/A /* Solaris Kerberos */ 2N/A * The derive key operation below will not work correctly 2N/A * if the input and output key pointers are to the same 2N/A * data. This is because the key object handle (PKCS#11) 2N/A * gets out-of-sync with the original key when the contents 2N/A * are modified. We copy the original key here for use 2N/A * below in the derive_key step, then we free this key