1/* 2 * Modifications for Lustre 3 * 4 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 5 * 6 * Author: Eric Mei <ericm@clusterfs.com> 7 */ 8 9/* 10 * minimal asn1 for generic encoding/decoding of gss tokens 11 * 12 * Adapted from MIT Kerberos 5-1.2.1 lib/include/krb5.h, 13 * lib/gssapi/krb5/gssapiP_krb5.h, and others 14 * 15 * Copyright (c) 2000 The Regents of the University of Michigan. 16 * All rights reserved. 17 * 18 * Andy Adamson <andros@umich.edu> 19 */ 20 21/* 22 * Copyright 1995 by the Massachusetts Institute of Technology. 23 * All Rights Reserved. 24 * 25 * Export of this software from the United States of America may 26 * require a specific license from the United States Government. 27 * It is the responsibility of any person or organization contemplating 28 * export to obtain such a license before exporting. 29 * 30 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 31 * distribute this software and its documentation for any purpose and 32 * without fee is hereby granted, provided that the above copyright 33 * notice appear in all copies and that both that copyright notice and 34 * this permission notice appear in supporting documentation, and that 35 * the name of M.I.T. not be used in advertising or publicity pertaining 36 * to distribution of the software without specific, written prior 37 * permission. Furthermore if you modify this software you must label 38 * your software as modified software and not distribute it in such a 39 * fashion that it might be confused with the original M.I.T. software. 40 * M.I.T. makes no representations about the suitability of 41 * this software for any purpose. It is provided "as is" without express 42 * or implied warranty. 43 * 44 */ 45 46#define SIZEOF_INT 4 47 48/* from gssapi_err_generic.h */ 49#define G_BAD_SERVICE_NAME (-2045022976L) 50#define G_BAD_STRING_UID (-2045022975L) 51#define G_NOUSER (-2045022974L) 52#define G_VALIDATE_FAILED (-2045022973L) 53#define G_BUFFER_ALLOC (-2045022972L) 54#define G_BAD_MSG_CTX (-2045022971L) 55#define G_WRONG_SIZE (-2045022970L) 56#define G_BAD_USAGE (-2045022969L) 57#define G_UNKNOWN_QOP (-2045022968L) 58#define G_NO_HOSTNAME (-2045022967L) 59#define G_BAD_HOSTNAME (-2045022966L) 60#define G_WRONG_MECH (-2045022965L) 61#define G_BAD_TOK_HEADER (-2045022964L) 62#define G_BAD_DIRECTION (-2045022963L) 63#define G_TOK_TRUNC (-2045022962L) 64#define G_REFLECT (-2045022961L) 65#define G_WRONG_TOKID (-2045022960L) 66 67#define g_OID_equal(o1,o2) \ 68 (((o1)->len == (o2)->len) && \ 69 (memcmp((o1)->data,(o2)->data,(int) (o1)->len) == 0)) 70 71__u32 g_verify_token_header(rawobj_t *mech, 72 int *body_size, 73 unsigned char **buf_in, 74 int toksize); 75 76__u32 g_get_mech_oid(rawobj_t *mech, 77 rawobj_t *in_buf); 78 79int g_token_size(rawobj_t *mech, 80 unsigned int body_size); 81 82void g_make_token_header(rawobj_t *mech, 83 int body_size, 84 unsigned char **buf); 85