Logo Search packages:      
Sourcecode: libtomcrypt version File versions  Download package

int xcbc_file ( int  cipher,
const unsigned char *  key,
unsigned long  keylen,
const char *  filename,
unsigned char *  out,
unsigned long *  outlen 

XCBC a file

cipherThe index of the cipher desired
keyThe secret key
keylenThe length of the secret key (octets)
filenameThe name of the file you wish to XCBC
out[out] Where the authentication tag is to be stored
outlen[in/out] The max size and resulting size of the authentication tag
CRYPT_OK if successful, CRYPT_NOP if file support has been disabled

Definition at line 30 of file xcbc_file.c.

References xcbc_done(), xcbc_init(), xcbc_process(), and zeromem().

#ifdef LTC_NO_FILE
   return CRYPT_NOP;
   int err, x;
   xcbc_state xcbc;
   FILE *in;
   unsigned char buf[512];

   LTC_ARGCHK(key      != NULL);
   LTC_ARGCHK(filename != NULL);
   LTC_ARGCHK(out      != NULL);
   LTC_ARGCHK(outlen   != NULL);

   in = fopen(filename, "rb");
   if (in == NULL) {

   if ((err = xcbc_init(&xcbc, cipher, key, keylen)) != CRYPT_OK) {
      return err;

   do {
      x = fread(buf, 1, sizeof(buf), in);
      if ((err = xcbc_process(&xcbc, buf, x)) != CRYPT_OK) {
         return err;
   } while (x == sizeof(buf));

   if ((err = xcbc_done(&xcbc, out, outlen)) != CRYPT_OK) {
      return err;

   zeromem(buf, sizeof(buf));

   return CRYPT_OK;

Here is the call graph for this function:

Generated by  Doxygen 1.6.0   Back to index