text: // SPDX-License-Identifier: BSD-2-Clause
  /*
   * Copyright (c) 2001-2007, Tom St Denis
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *
   * 1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright notice,
   * this list of conditions and the following disclaimer in the documentation
   * and/or other materials provided with the distribution.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   */
  
  /* LibTomCrypt, modular cryptographic library -- Tom St Denis
   *
   * LibTomCrypt is a library that provides various cryptographic
   * algorithms in a highly modular and flexible manner.
   *
   * The library is free for all purposes without any express
   * guarantee it works.
   *
   * Tom St Denis, tomstdenis@gmail.com, http://libtom.org
   */
  
  /**
     @file gcm_reset.c
     GCM implementation, reset a used state so it can accept IV data, by Tom St Denis
  */
  #include "tomcrypt.h"
  
  #ifdef LTC_GCM_MODE
  
  /**
    Reset a GCM state to as if you just called gcm_init().  This saves the initialization time.
    @param gcm   The GCM state to reset
    @return CRYPT_OK on success
  */
  int gcm_reset(gcm_state *gcm)
  {
     LTC_ARGCHK(gcm != NULL);
  
     zeromem(gcm->buf, sizeof(gcm->buf));
     zeromem(gcm->X,   sizeof(gcm->X));
     gcm->mode     = LTC_GCM_MODE_IV;
     gcm->ivmode   = 0;
     gcm->buflen   = 0;
     gcm->totlen   = 0;
     gcm->pttotlen = 0;
    
     return CRYPT_OK;
  }
  
  #endif
  
  /* $Source: /cvs/libtom/libtomcrypt/src/encauth/gcm/gcm_reset.c,v $ */
  /* $Revision: 1.6 $ */
  /* $Date: 2007/05/12 14:32:35 $ */
  