2N/A/* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */ 2N/A * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. 2N/A * Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved 2N/A * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 2N/A * Openvision retains the copyright to derivative works of 2N/A * this source code. Do *NOT* create a derivative of this 2N/A * source code before consulting with your legal department. 2N/A * Do *NOT* integrate *ANY* of this source code into another 2N/A * product before consulting with your legal department. 2N/A * For further information, read the top-level Openvision 2N/A * copyright which is contained in the top-level MIT Kerberos 2N/A * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 2N/A * Function: xdr_ui_4 2N/A * Purpose: XDR function which serves as a wrapper for xdr_u_int, 2N/A * to prevent compiler warnings about type clashes between u_int32 2N/A /* Assumes that krb5_ui_4 and u_int32 are both four bytes long. 2N/A This should not be a harmful assumption. */ 2N/A * Function: xdr_nullstring 2N/A * Purpose: XDR function for "strings" that are either NULL-terminated 2N/A * Function: xdr_nulltype 2N/A * Purpose: XDR function for arbitrary pointer types that are either 2N/A * NULL or contain data. 2N/A /* This assumes that int32 and krb5_timestamp are the same size. 2N/A This shouldn't be a problem, since we've got a unit test which 2N/A tmp =
'\0';
/* for purify, else xdr_u_char performs a umr */ 2N/A /* This assumes that int32 and krb5_deltat are the same size. 2N/A This shouldn't be a problem, since we've got a unit test which 2N/A /* This assumes that int32 and krb5_flags are the same size. 2N/A This shouldn't be a problem, since we've got a unit test which 2N/A * Function: xdr_krb5_ui_2 2N/A * Purpose: XDR function which serves as a wrapper for xdr_u_int, 2N/A * to prevent compiler warnings about type clashes between u_int 2N/A * Note that this function intentionally DOES NOT tranfer key 2N/A * length or contents! xdr_krb5_key_data in adb_xdr.c does, but 2N/A * that is only for use within the server-side library. 2N/A * kadm5_get_principal on the server side allocates and returns 2N/A * key contents when asked. Even though this function refuses to 2N/A * transmit that data, it still has to *free* the data at the 2N/A * appropriate time to avoid a memory leak. 2N/A /* these all used to be u_int32, but it's stupid for sized types 2N/A to be exposed at the api, and they're the same as longs on the 2N/A /* Solaris Kerberos */ 2N/A /* using a static context here is ugly, but should work 2N/A ok, and the other solutions are even uglier */ 2N/A * This used to be xdr_krb5_keytype, but keytypes and enctypes have 2N/A * been merged into only enctypes. However, randkey_principal 2N/A * already ensures that only a key of ENCTYPE_DES_CBC_CRC will be 2N/A * returned to v1 clients, and ENCTYPE_DES_CBC_CRC has the same 2N/A * value as KEYTYPE_DES used too, which is what all v1 clients 2N/A * expect. Therefore, IMHO, just encoding whatever enctype we get 2N/A /* XXX This only works because free_keyblock assumes ->contents 2N/A is allocated by malloc() */