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

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

PMAC a file

cipherThe index of the cipher desired
keyThe secret key
keylenThe length of the secret key (octets)
filenameThe name of the file to send through PMAC
out[out] Destination for the authentication tag
outlen[in/out] 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 pmac_file.c.

References pmac_init(), pmac_process(), and zeromem().

#ifdef LTC_NO_FILE
   return CRYPT_NOP;
   int err, x;
   pmac_state pmac;
   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 = pmac_init(&pmac, cipher, key, keylen)) != CRYPT_OK) {
      return err;

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

   if ((err = pmac_done(&pmac, 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