# libgsasl.supp -- Valgrind suppression file for Libgsasl          -*- text -*-
#
# Copyright (C) 2010-2026 Simon Josefsson
#
# This file is part of GNU SASL.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# The simplest way to use this file is to put the following in ~/.valgrindrc:
# --suppressions=/path/to/gsasl/tests/libgsasl.supp
#
# The memory leaks that are hidden here are those from external
# libraries that we we can do nothing about.

{
   glibc getaddrinfo leak on debian12
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:generate_addrinfo
   fun:gaih_inet
   fun:getaddrinfo
   fun:main
}

{
   glibc getaddrinfo leak on debian 11 & ubuntu 20.04
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gaih_inet.constprop.0
   fun:getaddrinfo
   fun:main
}

{
   libgsasl-gssglue
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:UnknownInlinedFun
   fun:UnknownInlinedFun
   fun:krb5_gss_inquire_names_for_mech
   fun:gss_inquire_names_for_mech
   obj:/usr/lib/x86_64-linux-gnu/libgssglue.so.1.0.0
   fun:gss_import_name
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:main
}

{
   libgsasl-gcrypt1
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_module_add
   fun:pk_register_default
   fun:_gcry_pk_init
   fun:global_init
   fun:_gcry_vcontrol
   fun:gcry_control
   fun:gc_init
   fun:gsasl_init
}

{
   libgsasl-gcrypt2
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_module_add
   fun:md_register_default
   fun:_gcry_md_init
   fun:global_init
   fun:_gcry_vcontrol
   fun:gcry_control
   fun:gc_init
   fun:gsasl_init
}

{
   libgsasl-gcrypt3
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_module_add
   fun:cipher_register_default
   fun:_gcry_cipher_init
   fun:global_init
   fun:_gcry_vcontrol
   fun:gcry_control
   fun:gc_init
   fun:gsasl_init
}

{
   libgsasl-gcrypt4
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:cram_md5_challenge
   fun:_gsasl_cram_md5_server_start
   fun:start
   fun:gsasl_server_start
}

{
   libgsasl-gcrypt5
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:cram_md5_challenge
   fun:_gsasl_cram_md5_server_start
   fun:start
   fun:gsasl_server_start
}

{
   libgsasl-gcrypt6
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:gsasl_nonce
   fun:_gsasl_digest_md5_client_start
   fun:start
   fun:gsasl_client_start
   fun:_gsasl_listmech
   fun:gsasl_client_mechlist
}

{
   libgsasl-gcrypt7
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:gsasl_nonce
   fun:_gsasl_digest_md5_server_start
   fun:start
   fun:gsasl_server_start
}

{
   libgsasl-gcrypt8
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:gsasl_nonce
}

{
   gsasl-libgcrypt9
   Memcheck:Leak
   fun:malloc
   fun:_gcry_private_malloc
   fun:do_malloc
   fun:_gcry_malloc
   fun:_gcry_xmalloc
   fun:_gcry_xcalloc
   fun:initialize
   fun:_gcry_rngcsprng_create_nonce
   fun:_gcry_create_nonce
   fun:gcry_create_nonce
   fun:gc_nonce
   fun:gsasl_nonce
}

{
   gsasl-mit-krb5-gss
   Memcheck:Addr1
   fun:__libc_res_nquerydomain
   fun:__libc_res_nsearch
   fun:__GI__nss_dns_gethostbyname3_r.constprop.3
   fun:gethostbyname2_r@@GLIBC_2.2.5
   fun:gaih_inet
   fun:getaddrinfo
   fun:krb5_sname_to_principal
   fun:krb5_gss_import_name
   fun:gssint_import_internal_name
   fun:gss_add_cred
   fun:gss_acquire_cred
   fun:_gsasl_gssapi_server_start
}

{
   gsasl-mit-krb5-gss2
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:krb5int_setspecific
   obj:/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
   obj:/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
   obj:/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
   obj:/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
   obj:/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2
   fun:gss_add_cred_from
   fun:gss_acquire_cred_from
   fun:gss_acquire_cred
   fun:_gsasl_gssapi_server_start
   fun:setup
   fun:start
   fun:gsasl_server_start
}

# Shishi/GSS leaks for 'gssapi' (debug these later)

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:base64_encode_alloc
   fun:gsasl_base64_to
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_des_cbc_mac
   fun:gss_des_checksum
   fun:shishi_checksum
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_des_cbc_mac
   fun:gss_des_checksum
   fun:shishi_checksum
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:base64_decode_alloc_ctx
   fun:shishi_key_parse
   fun:shishi_keys_for_serverrealm_in_file
   fun:acquire_cred1
   fun:gss_krb5_acquire_cred
   fun:gss_acquire_cred
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_des_cbc_mac
   fun:gss_des_checksum
   fun:shishi_checksum
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_des_cbc_mac
   fun:gss_des_checksum
   fun:shishi_checksum
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:base64_decode_alloc_ctx
   fun:shishi_key_parse
   fun:shishi_keys_for_serverrealm_in_file
   fun:acquire_cred1
   fun:gss_krb5_acquire_cred
   fun:gss_acquire_cred
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_asn1_read_bitstring
   fun:shishi_apreq_mutual_required_p
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}
{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_krb5_wrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}
{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_decapsulate_token
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}
{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_krb5_wrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_decapsulate_token
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_asn1_read_bitstring
   fun:shishi_apreq_mutual_required_p
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_krb5_wrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_decapsulate_token
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_krb5_wrap
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_decapsulate_token
   fun:gss_krb5_unwrap
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_key_from_value
   fun:shishi_encticketpart_get_key
   fun:shishi_ap_req_process_keyusage
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_to_der_field
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_key_from_value
   fun:shishi_encticketpart_get_key
   fun:shishi_ap_req_process_keyusage
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}
{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_to_der_field
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:libgcrypt_dencrypt.constprop.0
   fun:shishi_des
   fun:_shishi_simplified_dencrypt
   fun:_shishi_simplified_decrypt
   fun:des_decrypt_verify.isra.2
   fun:shishi_decrypt_ivupdate_etype
   fun:shishi_decrypt
   fun:shishi_aprep_decrypt
   fun:shishi_ap_rep_verify
   fun:init_reply
   fun:gss_krb5_init_sec_context
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_key_from_value
   fun:shishi_encticketpart_get_key
   fun:shishi_aprep_enc_part_add
   fun:shishi_aprep_enc_part_make
   fun:shishi_ap_rep_build
   fun:shishi_ap_rep_asn1
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:libgcrypt_dencrypt.constprop.0
   fun:shishi_des
   fun:_shishi_simplified_dencrypt
   fun:_shishi_simplified_decrypt
   fun:des_decrypt_verify.isra.2
   fun:shishi_decrypt_ivupdate_etype
   fun:shishi_decrypt
   fun:shishi_ticket_decrypt
   fun:shishi_tkt_decrypt
   fun:shishi_ap_req_process_keyusage
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:libgcrypt_dencrypt.constprop.0
   fun:shishi_des
   fun:_shishi_simplified_dencrypt
   fun:_shishi_simplified_encrypt
   fun:des_encrypt_checksum.isra.3
   fun:shishi_encrypt_ivupdate_etype
   fun:shishi_encrypt
   fun:shishi_apreq_add_authenticator
   fun:shishi_ap_req_build
   fun:shishi_ap_req_der
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:libgcrypt_dencrypt.constprop.0
   fun:shishi_des
   fun:_shishi_simplified_dencrypt
   fun:_shishi_simplified_decrypt
   fun:des_decrypt_verify.isra.2
   fun:shishi_decrypt_ivupdate_etype
   fun:shishi_decrypt
   fun:shishi_apreq_decrypt
   fun:shishi_ap_req_process_keyusage
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_encapreppart
   fun:shishi_ap_nosubkey
   fun:shishi_ap_etype
   fun:shishi_ap_tktoptionsraw
   fun:init_request
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_aprep
   fun:shishi_ap_nosubkey
   fun:shishi_ap_etype
   fun:shishi_ap_tktoptionsraw
   fun:init_request
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_apreq
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_authenticator
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt2
   fun:shishi_tkts_new
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_apreq
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_authenticator
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt2
   fun:shishi_tkts_new
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
   fun:doit
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_encticketpart
   fun:shishi_tkt
   fun:shishi_ap_req_decode
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:der2asn1.isra.1
   fun:_shishi_kdcrep_input
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:der2asn1.isra.1
   fun:_shishi_kdcrep_input
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt
   fun:shishi_ap_req_decode
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:der2asn1.isra.1
   fun:_shishi_enckdcreppart_input
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gssapi_client_step
   fun:gsasl_step64
}

{
  <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt
   fun:shishi_ap_req_decode
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gssapi_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

# Shishi/GSS leaks for 'gs2-krb5' (debug these later)

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:gss_display_name
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:base64_decode_alloc_ctx
   fun:shishi_key_parse
   fun:shishi_keys_for_serverrealm_in_file
   fun:acquire_cred1
   fun:gss_krb5_acquire_cred
   fun:gss_acquire_cred
   fun:gs2_get_cred
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_read
   fun:shishi_asn1_read_bitstring
   fun:shishi_apreq_mutual_required_p
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_key_from_value
   fun:shishi_encticketpart_get_key
   fun:shishi_ap_req_process_keyusage
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_authenticator_get_subkey
   fun:shishi_ap_key
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_key
   fun:shishi_key_from_value
   fun:shishi_encticketpart_get_key
   fun:shishi_aprep_enc_part_add
   fun:shishi_aprep_enc_part_make
   fun:shishi_ap_rep_build
   fun:shishi_ap_rep_asn1
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:xmalloc
   fun:shishi_asn1_to_der_field
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt2
   fun:shishi_tkts_new
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt2
   fun:shishi_tkts_new
   fun:shishi_tkts_read
   fun:shishi_tkts_from_file
   fun:init_read
   fun:gss_krb5_init_sec_context
   fun:gss_init_sec_context
   fun:_gsasl_gs2_client_step
   fun:gsasl_step64
   fun:doit
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_apreq
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:_asn1_add_single_node
   fun:_asn1_copy_structure3
   fun:_asn1_copy_structure2
   fun:asn1_create_element
   fun:asn1_new.isra.0
   fun:shishi_authenticator
   fun:shishi_ap_nosubkey
   fun:shishi_ap
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:xcalloc
   fun:shishi_tkt
   fun:shishi_ap_req_decode
   fun:shishi_ap_req_process_keyusage
   fun:gss_krb5_accept_sec_context
   fun:gss_accept_sec_context
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}

{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: definite
   fun:calloc
   fun:gss_acquire_cred
   fun:gs2_get_cred
   fun:_gsasl_gs2_server_step
   fun:gsasl_step64
   fun:doit
   fun:main
}
