$ od -c -N 50000 [_CDCSL_93-16_]<1>Cedar>release>SHS>SHSTest.c
0000000    /   *      \n       *       C   o   p   y   r   i   g   h   t
0000020      323       1   9   9   2       b   y       X   e   r   o   x
0000040        C   o   r   p   o   r   a   t   i   o   n   .           A
0000060    l   l       r   i   g   h   t   s       r   e   s   e   r   v
0000100    e   d   .  \n       *       S   e   p   t   e   m   b   e   r
0000120        3   0   ,       1   9   9   2  \n       *       R   u   n
0000140    s       t   h   e       t   h   r   e   e       t   e   s   t
0000160    s       f   r   o   m       t   h   e       S   H   S       d
0000200    o   c   u   m   e   n   t  \n       *  \n       *   /  \n    
0000220   \n      \n   #   i   n   c   l   u   d   e       <   s   t   d
0000240    i   o   .   h   >  \n   #   i   n   c   l   u   d   e       "
0000260    S   H   S   .   h   "  \n  \n  \n   v   o   i   d       o   n
0000300    e   f   i   l   e   (   f   )      \n                   F   I
0000320    L   E       *   f   ;  \n   {  \n  \n                   S   H
0000340    S   _   C   T   X       *   c   t   x       =       (   S   H
0000360    S   _   C   T   X       *   )       m   a   l   l   o   c   (
0000400        s   i   z   e   o   f   (   S   H   S   _   C   T   X   )
0000420        )   ;  \n                   u   n   s   i   g   n   e   d
0000440        c   h   a   r       h   a   s   h   [   2   0   ]   ;  \n
0000460                    i   n   t       j   ;  \n                  \n
0000500                    S   H   S   I   n   i   t   (   c   t   x   )
0000520    ;  \n                   w   h   i   l   e       (   1   )    
0000540    {  \n                                   c   h   a   r       b
0000560    u   f   [   5   2   0   ]   ;  \n                            
0000600        i   n   t       n   r   e   a   d       =       f   r   e
0000620    a   d   (   b   u   f   ,       1   ,       5   2   0   ,    
0000640    f   )   ;  \n                                   i   f       (
0000660    n   r   e   a   d   =   =   0   )       b   r   e   a   k   ;
0000700   \n                                   S   H   S   U   p   d   a
0000720    t   e   (       c   t   x   ,       b   u   f   ,       n   r
0000740    e   a   d       )   ;  \n                   }   ;  \n        
0000760            S   H   S   F   i   n   a   l   (       h   a   s   h
0001000    ,       c   t   x       )   ;  \n                   p   r   i
0001020    n   t   f   (   "   t   e   s   t       i   n   t   s   :    
0001040        %   0   8   X       %   0   8   X       %   0   8   X    
0001060    %   0   8   X       %   0   8   X   \   n   "   ,       c   t
0001100    x   -   >   s   t   a   t   e   [   0   ]   ,       c   t   x
0001120    -   >   s   t   a   t   e   [   1   ]   ,       c   t   x   -
0001140    >   s   t   a   t   e   [   2   ]   ,       c   t   x   -   >
0001160    s   t   a   t   e   [   3   ]   ,       c   t   x   -   >   s
0001200    t   a   t   e   [   4   ]       )   ;  \n                   p
0001220    r   i   n   t   f   (   "   t   e   s   t       c   h   a   r
0001240    s   :       "   )   ;  \n                   f   o   r       (
0001260    j   =   0   ;       j   <   2   0   ;       j   +   +   )    
0001300    {  \n                                   p   r   i   n   t   f
0001320    (   "   %   0   2   X   "   ,       h   a   s   h   [   j   ]
0001340    )   ;  \n                                   i   f       (   j
0001360    %   4   =   =   3   )       p   r   i   n   t   f   (   "    
0001400    "   )   ;  \n                   }   ;  \n                   p
0001420    r   i   n   t   f   (   "   \   n   "   )   ;  \n   }  \n  \n
0001440    v   o   i   d       m   i   l   l   i   o   n   A   s   (   )
0001460       \n   {  \n  \n                   S   H   S   _   C   T   X
0001500        *   c   t   x       =       (   S   H   S   _   C   T   X
0001520        *   )       m   a   l   l   o   c   (       s   i   z   e
0001540    o   f   (   S   H   S   _   C   T   X   )       )   ;  \n    
0001560                u   n   s   i   g   n   e   d       c   h   a   r
0001600        h   a   s   h   [   2   0   ]   ;  \n                   c
0001620    h   a   r       *   a       =       "   a   "   ;  \n        
0001640            i   n   t       j   ;  \n                  \n        
0001660            S   H   S   I   n   i   t   (   c   t   x   )   ;  \n
0001700                    f   o   r       (   j   =   0   ;       j   <
0001720    1   0   0   0   0   0   0   ;       j   +   +   )       {  \n
0001740                                    S   H   S   U   p   d   a   t
0001760    e   (       c   t   x   ,       a   ,       1       )   ;  \n
0002000                    }   ;  \n                   S   H   S   F   i
0002020    n   a   l   (       h   a   s   h   ,       c   t   x       )
0002040    ;  \n                   p   r   i   n   t   f   (   "   t   e
0002060    s   t       i   n   t   s   :           %   0   8   X       %
0002100    0   8   X       %   0   8   X       %   0   8   X       %   0
0002120    8   X   \   n   "   ,       c   t   x   -   >   s   t   a   t
0002140    e   [   0   ]   ,       c   t   x   -   >   s   t   a   t   e
0002160    [   1   ]   ,       c   t   x   -   >   s   t   a   t   e   [
0002200    2   ]   ,       c   t   x   -   >   s   t   a   t   e   [   3
0002220    ]   ,       c   t   x   -   >   s   t   a   t   e   [   4   ]
0002240        )   ;  \n                   p   r   i   n   t   f   (   "
0002260    t   e   s   t       c   h   a   r   s   :       "   )   ;  \n
0002300                    f   o   r       (   j   =   0   ;       j   <
0002320    2   0   ;       j   +   +   )       {  \n                    
0002340                p   r   i   n   t   f   (   "   %   0   2   X   "
0002360    ,       h   a   s   h   [   j   ]   )   ;  \n                
0002400                    i   f       (   j   %   4   =   =   3   )    
0002420    p   r   i   n   t   f   (   "       "   )   ;  \n            
0002440        }   ;  \n                   p   r   i   n   t   f   (   "
0002460    \   n   "   )   ;  \n   }  \n  \n   m   a   i   n   (   )    
0002500   \n   {  \n                   F   I   L   E       *   f       =
0002520        f   o   p   e   n   (   "   t   e   s   t   2   "   ,    
0002540    "   r   "   )   ;  \n                   p   r   i   n   t   f
0002560    (   "   c   o   r   r   e   c   t   :                   %   0
0002600    8   X       %   0   8   X       %   0   8   X       %   0   8
0002620    X       %   0   8   X   \   n   "   ,       0   x   1   6   4
0002640    B   8   A   9   ,       0   x   1   4   C   D   2   A   5   E
0002660    ,       0   x   7   4   C   4   F   7   F   F   ,       0   x
0002700    8   2   C   4   D   9   7   ,       0   x   F   1   E   D   F
0002720    8   8   0       )   ;  \n                   o   n   e   f   i
0002740    l   e   (   f   )   ;  \n                   f   c   l   o   s
0002760    e   (   f   )   ;  \n                   f       =       f   o
0003000    p   e   n   (   "   t   e   s   t   3   "   ,       "   r   "
0003020    )   ;  \n                   p   r   i   n   t   f   (   "   c
0003040    o   r   r   e   c   t   :                   %   0   8   X    
0003060    %   0   8   X       %   0   8   X       %   0   8   X       %
0003100    0   8   X   \   n   "   ,       0   x   D   2   5   1   6   E
0003120    E   1   ,       0   x   A   C   F   A   5   B   A   F   ,    
0003140    0   x   3   3   D   F   C   1   C   4   ,       0   x   7   1
0003160    E   4   3   8   4   4   ,       0   x   9   E   F   1   3   4
0003200    C   8       )   ;  \n                   o   n   e   f   i   l
0003220    e   (   f   )   ;  \n                   f   c   l   o   s   e
0003240    (   f   )   ;  \n                   p   r   i   n   t   f   (
0003260    "   c   o   r   r   e   c   t   :                   %   0   8
0003300    X       %   0   8   X       %   0   8   X       %   0   8   X
0003320        %   0   8   X   \   n   "   ,       0   x   3   2   3   2
0003340    A   F   F   A   ,       0   x   4   8   6   2   8   A   2   6
0003360    ,       0   x   6   5   3   B   5   A   A   A   ,       0   x
0003400    4   4   5   4   1   F   D   9   ,       0   x   D   6   9   0
0003420    6   0   3       )   ;  \n                   m   i   l   l   i
0003440    o   n   A   s   (   )   ;  \n   }                            
0003451