s4:heimdal: import lorikeet-heimdal-202201172009 (commit 5a0b45cd723628b3690ea848548b...
[samba.git] / source4 / heimdal / lib / gssapi / mech / utils.h
1 /*-
2  * Copyright (c) 2005 Doug Rabson
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24  * SUCH DAMAGE.
25  *
26  *      $FreeBSD: src/lib/libgssapi/utils.h,v 1.1 2005/12/29 14:40:20 dfr Exp $
27  *      $Id$
28  */
29
30 OM_uint32 _gss_free_oid(OM_uint32 *, gss_OID);
31 OM_uint32 _gss_intern_oid(OM_uint32 *, gss_const_OID, gss_OID *);
32 OM_uint32 _gss_copy_buffer(OM_uint32 *minor_status,
33     const gss_buffer_t from_buf, gss_buffer_t to_buf);
34 OM_uint32 _gss_secure_release_buffer(OM_uint32 *minor_status,
35                                      gss_buffer_t buffer);
36 OM_uint32 _gss_secure_release_buffer_set(OM_uint32 *minor_status,
37                                          gss_buffer_set_t *buffer_set);
38
39 void _gss_mg_encode_le_uint32(uint32_t n, uint8_t *p);
40 void _gss_mg_decode_le_uint32(const void *ptr, uint32_t *n);
41 void _gss_mg_encode_be_uint32(uint32_t n, uint8_t *p);
42 void _gss_mg_decode_be_uint32(const void *ptr, uint32_t *n);
43
44 void _gss_mg_encode_le_uint16(uint16_t n, uint8_t *p);
45 void _gss_mg_decode_le_uint16(const void *ptr, uint16_t *n);
46 void _gss_mg_encode_be_uint16(uint16_t n, uint8_t *p);
47 void _gss_mg_decode_be_uint16(const void *ptr, uint16_t *n);
48
49 OM_uint32
50 _gss_mg_import_rfc4121_context(OM_uint32 *minor,
51                                uint8_t initiator_flag,
52                                OM_uint32 gss_flags,
53                                int32_t rfc3961_enctype,
54                                gss_const_buffer_t session_key,
55                                gss_ctx_id_t *rfc4121_context_handle);
56
57 #include <krb5.h>
58
59 /*
60  * Note: functions below support zero-length OIDs and buffers and will
61  * return NULL values. Callers should handle accordingly.
62  */
63
64 OM_uint32
65 _gss_mg_ret_oid(OM_uint32 *minor,
66                 krb5_storage *sp,
67                 gss_OID *oidp);
68
69 OM_uint32
70 _gss_mg_store_oid(OM_uint32 *minor,
71                   krb5_storage *sp,
72                   gss_const_OID oid);
73
74 OM_uint32
75 _gss_mg_ret_buffer(OM_uint32 *minor,
76                    krb5_storage *sp,
77                    gss_buffer_t buffer);
78
79 OM_uint32
80 _gss_mg_store_buffer(OM_uint32 *minor,
81                      krb5_storage *sp,
82                      gss_const_buffer_t buffer);