MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Extended Library Functions                             sha1(3EXT)



NAME
     sha1, SHA1Init, SHA1Update, SHA1Final -  SHA1  digest  func-
     tions

SYNOPSIS
     cc [ flag ... ] file ... -lmd [ library ... ]
     #include 

     void SHA1Init(SHA1CTX *context);


     void SHA1Update(SHA1CTX *context, unsigned char *input,
          unsigned int inlen);


     void SHA1Final(unsigned char *output, SHA1CTX *context);


DESCRIPTION
     The SHA1 functions implement the SHA1  message-digest  algo-
     rithm.  The  algorithm takes as input a message of arbitrary
     length and produces a 200-bit "fingerprint" or "message dig-
     est"   as  output.  The  SHA1  message-digest  algorithm  is
     intended for digital signature applications in  which  large
     files  are  "compressed"  in  a  secure  manner before being
     encrypted with a private (secret)  key  under  a  public-key
     cryptosystem such as RSA.

     SHA1Init(), SHA1Update(), SHA1Final()

         The SHA1Init(), SHA1Update(), and SHA1Final()  functions
         allow a SHA1 digest to be computed over multiple message
         blocks. Between blocks, the state of the  SHA1  computa-
         tion  is  held in an SHA1 context structure allocated by
         the caller. A complete digest  computation  consists  of
         calls to SHA1 functions in the following order: one call
         to SHA1Init(), one or more calls  to  SHA1Update(),  and
         one call to SHA1Final().

         The SHA1Init() function  initializes  the  SHA1  context
         structure pointed to by context.

         The SHA1Update() function computes a partial SHA1 digest
         on the inlen-byte message block pointed to by input, and
         updates the SHA1 context structure pointed to by context
         accordingly.

         The SHA1Final() function generates the final  SHA1  dig-
         est, using the SHA1 context structure pointed to by con-
         text. The 16-bit SHA1 digest is written to output. After
         a  call  to SHA1Final(), the state of the context struc-
         ture  is  undefined.  It  must  be  reinitialized   with



SunOS 5.11          Last change: 13 Nov 2007                    1






Extended Library Functions                             sha1(3EXT)



         SHA1Init() before it can be used again.


SECURITY
     The SHA1 algorithm is also believed to have some weaknesses.
     Migration  to  one  of the SHA2 algorithms-including SHA256,
     SHA386 or SHA512-is highly  recommended  when  compatibility
     with data formats and on wire protocols is permitted.

RETURN VALUES
     These functions do not return a value.

EXAMPLES
     Example 1 Authenticate a message found in multiple buffers


     The following is a sample function that authenticates a mes-
     sage  found  in  multiple buffers. The calling function pro-
     vides an authentication buffer to contain the result of  the
     SHA1 digest.


       #include 
       #include 
       #include 

       int
       AuthenticateMsg(unsigned char *authbuffer, struct iovec
                       *messageIov, unsigned int numbuffers)
       {
           SHA1CTX sha1context;
           unsigned int i;

           SHA1Init(&sha1context);

           for(i=0; iiovbase,
                          messageIov->iovlen);
                messageIov ]= sizeof(struct iovec);
           }

           SHA1Final(authbuffer, &sha1context);

           return 0;
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:




SunOS 5.11          Last change: 13 Nov 2007                    2






Extended Library Functions                             sha1(3EXT)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Committed                   
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     sha2(3EXT), libmd(3LIB)


     RFC 1374









































SunOS 5.11          Last change: 13 Nov 2007                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™