1f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* LibTomCrypt, modular cryptographic library -- Tom St Denis 2f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * 3f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * LibTomCrypt is a library that provides various cryptographic 4f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * algorithms in a highly modular and flexible manner. 5f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * 6f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * The library is free for all purposes without any express 7f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * guarantee it works. 8f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * 9f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project * Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.com 10f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project */ 11f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 12f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/** 13f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project @file gcm_reset.c 14f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project GCM implementation, reset a used state so it can accept IV data, by Tom St Denis 15f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project*/ 16f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#include "tomcrypt.h" 17f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 18f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#ifdef GCM_MODE 19f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 20f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/** 21f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project Reset a GCM state to as if you just called gcm_init(). This saves the initialization time. 22f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project @param gcm The GCM state to reset 23f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project @return CRYPT_OK on success 24f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project*/ 25f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectint gcm_reset(gcm_state *gcm) 26f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project{ 27f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project LTC_ARGCHK(gcm != NULL); 28f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 29f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project zeromem(gcm->buf, sizeof(gcm->buf)); 30f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project zeromem(gcm->X, sizeof(gcm->X)); 31f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project gcm->mode = GCM_MODE_IV; 32f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project gcm->ivmode = 0; 33f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project gcm->buflen = 0; 34f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project gcm->totlen = 0; 35f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project gcm->pttotlen = 0; 36f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 37f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project return CRYPT_OK; 38f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project} 39f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 40f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#endif 41f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project 42f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Source: /cvs/libtom/libtomcrypt/src/encauth/gcm/gcm_reset.c,v $ */ 43f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Revision: 1.4 $ */ 44f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Date: 2006/03/31 14:15:35 $ */ 45