LCOV - code coverage report
Current view: top level - source4/heimdal/lib/gssapi/spnego - external.c (source / functions) Hit Total Coverage
Test: coverage report for abartlet/fix-coverage dd10fb34 Lines: 2 2 100.0 %
Date: 2021-09-23 10:06:22 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright (c) 2004, PADL Software Pty Ltd.
       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             :  *
       9             :  * 1. Redistributions of source code must retain the above copyright
      10             :  *    notice, this list of conditions and the following disclaimer.
      11             :  *
      12             :  * 2. Redistributions in binary form must reproduce the above copyright
      13             :  *    notice, this list of conditions and the following disclaimer in the
      14             :  *    documentation and/or other materials provided with the distribution.
      15             :  *
      16             :  * 3. Neither the name of PADL Software nor the names of its contributors
      17             :  *    may be used to endorse or promote products derived from this software
      18             :  *    without specific prior written permission.
      19             :  *
      20             :  * THIS SOFTWARE IS PROVIDED BY PADL SOFTWARE AND CONTRIBUTORS ``AS IS'' AND
      21             :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      22             :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      23             :  * ARE DISCLAIMED.  IN NO EVENT SHALL PADL SOFTWARE OR CONTRIBUTORS BE LIABLE
      24             :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      25             :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      26             :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      27             :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      28             :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      29             :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      30             :  * SUCH DAMAGE.
      31             :  */
      32             : 
      33             : #include "spnego_locl.h"
      34             : #include <gssapi_mech.h>
      35             : 
      36             : /*
      37             :  * RFC2478, SPNEGO:
      38             :  *  The security mechanism of the initial
      39             :  *  negotiation token is identified by the Object Identifier
      40             :  *  iso.org.dod.internet.security.mechanism.snego (1.3.6.1.5.5.2).
      41             :  */
      42             : static gss_mo_desc spnego_mo[] = {
      43             :     {
      44             :         GSS_C_MA_SASL_MECH_NAME,
      45             :         GSS_MO_MA,
      46             :         "SASL mech name",
      47             :         rk_UNCONST("SPNEGO"),
      48             :         _gss_mo_get_ctx_as_string,
      49             :         NULL
      50             :     },
      51             :     {
      52             :         GSS_C_MA_MECH_NAME,
      53             :         GSS_MO_MA,
      54             :         "Mechanism name",
      55             :         rk_UNCONST("SPNEGO"),
      56             :         _gss_mo_get_ctx_as_string,
      57             :         NULL
      58             :     },
      59             :     {
      60             :         GSS_C_MA_MECH_DESCRIPTION,
      61             :         GSS_MO_MA,
      62             :         "Mechanism description",
      63             :         rk_UNCONST("Heimdal SPNEGO Mechanism"),
      64             :         _gss_mo_get_ctx_as_string,
      65             :         NULL
      66             :     },
      67             :     {
      68             :         GSS_C_MA_MECH_NEGO,
      69             :         GSS_MO_MA
      70             :     },
      71             :     {
      72             :         GSS_C_MA_MECH_PSEUDO,
      73             :         GSS_MO_MA
      74             :     }
      75             : };
      76             : 
      77             : static gssapi_mech_interface_desc spnego_mech = {
      78             :     GMI_VERSION,
      79             :     "spnego",
      80             :     {6, rk_UNCONST("\x2b\x06\x01\x05\x05\x02") },
      81             :     0,
      82             :     _gss_spnego_acquire_cred,
      83             :     _gss_spnego_release_cred,
      84             :     _gss_spnego_init_sec_context,
      85             :     _gss_spnego_accept_sec_context,
      86             :     _gss_spnego_process_context_token,
      87             :     _gss_spnego_internal_delete_sec_context,
      88             :     _gss_spnego_context_time,
      89             :     _gss_spnego_get_mic,
      90             :     _gss_spnego_verify_mic,
      91             :     _gss_spnego_wrap,
      92             :     _gss_spnego_unwrap,
      93             :     NULL, /* gm_display_status */
      94             :     NULL, /* gm_indicate_mechs */
      95             :     _gss_spnego_compare_name,
      96             :     _gss_spnego_display_name,
      97             :     _gss_spnego_import_name,
      98             :     _gss_spnego_export_name,
      99             :     _gss_spnego_release_name,
     100             :     _gss_spnego_inquire_cred,
     101             :     _gss_spnego_inquire_context,
     102             :     _gss_spnego_wrap_size_limit,
     103             :     gss_add_cred,
     104             :     _gss_spnego_inquire_cred_by_mech,
     105             :     _gss_spnego_export_sec_context,
     106             :     _gss_spnego_import_sec_context,
     107             :     NULL /* _gss_spnego_inquire_names_for_mech */,
     108             :     _gss_spnego_inquire_mechs_for_name,
     109             :     _gss_spnego_canonicalize_name,
     110             :     _gss_spnego_duplicate_name,
     111             :     _gss_spnego_inquire_sec_context_by_oid,
     112             :     _gss_spnego_inquire_cred_by_oid,
     113             :     _gss_spnego_set_sec_context_option,
     114             :     _gss_spnego_set_cred_option,
     115             :     _gss_spnego_pseudo_random,
     116             :     _gss_spnego_wrap_iov,
     117             :     _gss_spnego_unwrap_iov,
     118             :     _gss_spnego_wrap_iov_length,
     119             :     NULL,
     120             :     _gss_spnego_export_cred,
     121             :     _gss_spnego_import_cred,
     122             :     NULL,
     123             :     NULL,
     124             :     NULL,
     125             :     NULL,
     126             :     NULL,
     127             :     NULL,
     128             :     NULL,
     129             :     spnego_mo,
     130             :     sizeof(spnego_mo) / sizeof(spnego_mo[0]),
     131             :     NULL,
     132             :     NULL,
     133             :     NULL,
     134             :     NULL,
     135             :     NULL,
     136             :     NULL,
     137             : };
     138             : 
     139             : gssapi_mech_interface
     140       19358 : __gss_spnego_initialize(void)
     141             : {
     142       19358 :         return &spnego_mech;
     143             : }

Generated by: LCOV version 1.13