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

int register_cipher ( const struct ltc_cipher_descriptor cipher  ) 

Register a cipher with the descriptor table

Parameters:
cipher The cipher you wish to register
Returns:
value >= 0 if successfully added (or already present), -1 if unsuccessful

Definition at line 23 of file crypt_register_cipher.c.

References ltc_cipher_descriptor::ID, and ltc_prng_descriptor::name.

{
   int x;

   LTC_ARGCHK(cipher != NULL);

   /* is it already registered? */
   LTC_MUTEX_LOCK(&ltc_cipher_mutex);
   for (x = 0; x < TAB_SIZE; x++) {
       if (cipher_descriptor[x].name != NULL && cipher_descriptor[x].ID == cipher->ID) {
          LTC_MUTEX_UNLOCK(&ltc_cipher_mutex);
          return x;
       }
   }

   /* find a blank spot */
   for (x = 0; x < TAB_SIZE; x++) {
       if (cipher_descriptor[x].name == NULL) {
          XMEMCPY(&cipher_descriptor[x], cipher, sizeof(struct ltc_cipher_descriptor));
          LTC_MUTEX_UNLOCK(&ltc_cipher_mutex);
          return x;
       }
   }

   /* no spot */
   LTC_MUTEX_UNLOCK(&ltc_cipher_mutex);
   return -1;
}


Generated by  Doxygen 1.6.0   Back to index