« Back to documentation index 
    
md.c File Reference 
Generic message digest wrapper for mbed TLS.  
More... 
Go to the source code of this file. 
const int *  md_list  (void)  Returns the list of digests supported by the generic digest module.   const md_info_t  *  md_info_from_string  (const char *md_name)  Returns the message digest information associated with the given digest name.   const md_info_t  *  md_info_from_type  (md_type_t md_type)  Returns the message digest information associated with the given digest type.   void  md_init  (md_context_t  *ctx)  Initialize a md_context (as NONE)   void  md_free  (md_context_t  *ctx)  Free and clear the message-specific context of ctx.   int  md_init_ctx  (md_context_t  *ctx, const md_info_t  *md_info)  Initialises and fills the message digest context structure with the appropriate values.   int  md_free_ctx  (md_context_t  *ctx)  Free the message-specific context of ctx.   int  md_starts  (md_context_t  *ctx)  Set-up the given context for a new message digest.   int  md_update  (md_context_t  *ctx, const unsigned char *input, size_t ilen)  Generic message digest process buffer.   int  md_finish  (md_context_t  *ctx, unsigned char *output)  Generic message digest final digest.   int  md  (const md_info_t  *md_info, const unsigned char *input, size_t ilen, unsigned char *output)  Output = message_digest( input buffer )   int  md_file  (const md_info_t  *md_info, const char *path, unsigned char *output)  Output = message_digest( file contents )   int  md_hmac_starts  (md_context_t  *ctx, const unsigned char *key, size_t keylen)  Generic HMAC context setup.   int  md_hmac_update  (md_context_t  *ctx, const unsigned char *input, size_t ilen)  Generic HMAC process buffer.   int  md_hmac_finish  (md_context_t  *ctx, unsigned char *output)  Generic HMAC final digest.   int  md_hmac_reset  (md_context_t  *ctx)  Generic HMAC context reset.   int  md_hmac  (const md_info_t  *md_info, const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char *output)  Output = Generic_HMAC( hmac key, input buffer )   
Detailed Description 
Generic message digest wrapper for mbed TLS. 
Author: Adriaan de Jong <dejong@fox-it.com > Copyright (C) 2006-2014, ARM Limited, All Rights Reserved
This file is part of mbed TLS (https://tls.mbed.org )
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 
Definition in file md.c .
Function Documentation 
      
        
          int md  
          ( 
          const md_info_t  *  
           md_info ,  
         
        
          const unsigned char *  
           input ,  
         
        
          size_t  
           ilen ,  
         
        
          unsigned char *  
           output   
         
        
          ) 
           
      
 
Output = message_digest( input buffer ) 
Parameters: 
  
    md_info message digest info  input buffer holding the data  ilen length of the input data  output Generic message digest checksum result 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 245  of file md.c .
 
 
      
        
          int md_file  
          ( 
          const md_info_t  *  
           md_info ,  
         
        
          const char *  
           path ,  
         
        
          unsigned char *  
           output   
         
        
          ) 
           
      
 
Output = message_digest( file contents ) 
Parameters: 
  
    md_info message digest info  path input file name  output generic message digest checksum result 
   
Returns: 0 if successful, POLARSSL_ERR_MD_FILE_OPEN_FAILED if fopen failed, POLARSSL_ERR_MD_FILE_READ_FAILED if fread failed, POLARSSL_ERR_MD_BAD_INPUT_DATA if md_info was NULL.  Definition at line 256  of file md.c .
 
 
      
        
          int md_finish  
          ( 
          md_context_t  *  ctx ,  
         
        
          unsigned char *  
           output   
         
        
          ) 
           
      
 
Generic message digest final digest. 
Parameters: 
  
    ctx Generic message digest context  output Generic message digest checksum result 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 235  of file md.c .
 
 
Free and clear the message-specific context of ctx. 
Freeing ctx itself remains the responsibility of the caller. 
Definition at line 178  of file md.c .
 
 
Free the message-specific context of ctx. 
Freeing ctx itself remains the responsibility of the caller.
Parameters: 
  
    ctx Free the message-specific context 
   
Returns: 0  Definition at line 207  of file md.c .
 
 
      
        
          int md_hmac  
          ( 
          const md_info_t  *  
           md_info ,  
         
        
          const unsigned char *  
           key ,  
         
        
          size_t  
           keylen ,  
         
        
          const unsigned char *  
           input ,  
         
        
          size_t  
           ilen ,  
         
        
          unsigned char *  
           output   
         
        
          ) 
           
      
 
Output = Generic_HMAC( hmac key, input buffer ) 
Parameters: 
  
    md_info message digest info  key HMAC secret key  keylen length of the HMAC key  input buffer holding the data  ilen length of the input data  output Generic HMAC-result 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 319  of file md.c .
 
 
      
        
          int md_hmac_finish  
          ( 
          md_context_t  *  ctx ,  
         
        
          unsigned char *  
           output   
         
        
          ) 
           
      
 
Generic HMAC final digest. 
Parameters: 
  
    ctx HMAC context  output Generic HMAC checksum result 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 299  of file md.c .
 
 
Generic HMAC context reset. 
Parameters: 
  
    ctx HMAC context to be reset 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 309  of file md.c .
 
 
      
        
          int md_hmac_starts  
          ( 
          md_context_t  *  ctx ,  
         
        
          const unsigned char *  
           key ,  
         
        
          size_t  
           keylen   
         
        
          ) 
           
      
 
Generic HMAC context setup. 
Parameters: 
  
    ctx HMAC context to be initialized  key HMAC secret key  keylen length of the HMAC key 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 279  of file md.c .
 
 
      
        
          int md_hmac_update  
          ( 
          md_context_t  *  ctx ,  
         
        
          const unsigned char *  
           input ,  
         
        
          size_t  
           ilen   
         
        
          ) 
           
      
 
Generic HMAC process buffer. 
Parameters: 
  
    ctx HMAC context  input buffer holding the data  ilen length of the input data 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 289  of file md.c .
 
 
      
        
          const md_info_t * md_info_from_string  
          ( 
          const char *  
           md_name  ) 
           
      
 
Returns the message digest information associated with the given digest name. 
Parameters: 
  
    md_name Name of the digest to search for. 
   
Returns: The message digest information associated with md_name or NULL if not found.  Definition at line 91  of file md.c .
 
 
      
        
          const md_info_t * md_info_from_type  
          ( 
          md_type_t  
           md_type  ) 
           
      
 
Returns the message digest information associated with the given digest type. 
Parameters: 
  
    md_type type of digest to search for. 
   
Returns: The message digest information associated with md_type or NULL if not found.  Definition at line 132  of file md.c .
 
 
Initialize a md_context (as NONE) 
Definition at line 173  of file md.c .
 
 
Initialises and fills the message digest context structure with the appropriate values. 
Note: Currently also clears structure. In future versions you will be required to call md_init()  on the structure first. Parameters: 
  
    ctx context to initialise. May not be NULL. The digest-specific context (ctx->md_ctx) must be NULL. It will be allocated, and must be freed using md_free_ctx()  later.  md_info message digest to use. 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA on parameter failure, POLARSSL_ERR_MD_ALLOC_FAILED if allocation of the digest-specific context failed. Definition at line 189  of file md.c .
 
 
      
        
          const int* md_list  
          ( 
          void  
           ) 
           
      
 
Returns the list of digests supported by the generic digest module. 
Returns: a statically allocated array of digests, the last entry is 0.  Definition at line 86  of file md.c .
 
 
Set-up the given context for a new message digest. 
Parameters: 
  
    ctx generic message digest context. 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 215  of file md.c .
 
 
      
        
          int md_update  
          ( 
          md_context_t  *  ctx ,  
         
        
          const unsigned char *  
           input ,  
         
        
          size_t  
           ilen   
         
        
          ) 
           
      
 
Generic message digest process buffer. 
Parameters: 
  
    ctx Generic message digest context  input buffer holding the datal  ilen length of the input data 
   
Returns: 0 on success, POLARSSL_ERR_MD_BAD_INPUT_DATA if parameter verification fails.  Definition at line 225  of file md.c .