     [ [ bitand ] [ bitor ] 2bi ] dip bitand bitor ;
 
 : prepare-message-schedule ( seq -- w-seq )
-    word-size get <sliced-groups> [ be> ] map block-size get 0 pad-tail
+    sha2 get word-size>> <sliced-groups> [ be> ] map sha2 get block-size>> 0 pad-tail
     16 64 [a,b) over '[ _ process-M-256 ] each ;
 
 : slice3 ( n seq -- a b c )


: byte-array>sha2 ( byte-array -- string )
    pad-initial-bytes
    block-size get <sliced-groups>
    [
        prepare-message-schedule
        block-size get H get clone process-chunk
    ] each
    H get 4 seq>byte-array ;

PRIVATE>


            [ T2 ]
            [ update-H ] tri 
        ] with each
    ] keep sha2 get H>> [ w+ ] 2map sha2 get (>>H) ;

: pad-initial-bytes ( string -- padded-string )
    dup [
