2N/A/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2N/A * Copyright 1990,1991,2007,2008 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 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2N/A/* Solaris Kerberos */ 2N/A parses a KRB_SAFE message from inbuf, placing the integrity-protected user 2N/A key specifies the key to be used for decryption of the message. 2N/A sender_addr and recv_addr specify the full addresses (host and port) of 2N/A the sender and receiver. 2N/A outbuf points to allocated storage which the caller should free when finished. 2N/A returns system errors, integrity errors 2N/A /* Solaris Kerberos */ 2N/A /* verify the checksum */ 2N/A * In order to recreate what was checksummed, we regenerate the message 2N/A * without checksum and then have the cryptographic subsystem verify 2N/A * the checksum for us. This is because some checksum methods have 2N/A * a confounder encrypted as part of the checksum. 2N/A * Checksum over only the KRB-SAFE-BODY, like RFC 1510 says, in 2N/A * case someone actually implements it correctly. 2N/A /* Need a better error */ 2N/A /* everything is ok - return data to the user */