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 ocb_done_encrypt.c
14f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   OCB implementation, terminate encryption, 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 OCB_MODE
19f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
20f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/**
21f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   Terminate an encryption OCB state
22f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param ocb       The OCB state
23f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param pt        Remaining plaintext (if any)
24f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param ptlen     The length of the plaintext (octets)
25f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param ct        [out] The ciphertext (if any)
26f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param tag       [out] The tag for the OCB stream
27f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @param taglen    [in/out] The max size and resulting size of the tag
28f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   @return CRYPT_OK if successful
29f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project*/
30f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectint ocb_done_encrypt(ocb_state *ocb, const unsigned char *pt, unsigned long ptlen,
31f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project                     unsigned char *ct, unsigned char *tag, unsigned long *taglen)
32f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project{
33f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   LTC_ARGCHK(ocb    != NULL);
34f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   LTC_ARGCHK(pt     != NULL);
35f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   LTC_ARGCHK(ct     != NULL);
36f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   LTC_ARGCHK(tag    != NULL);
37f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   LTC_ARGCHK(taglen != NULL);
38f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   return s_ocb_done(ocb, pt, ptlen, ct, tag, taglen, 0);
39f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project}
40f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
41f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project#endif
42f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
43f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
44f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Source: /cvs/libtom/libtomcrypt/src/encauth/ocb/ocb_done_encrypt.c,v $ */
45f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Revision: 1.4 $ */
46f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project/* $Date: 2006/03/31 14:15:35 $ */
47