1+ use std:: vec:: Vec ;
2+
3+ const H0 : u32 = 0x6a09e667 ;
4+ const H1 : u32 = 0xbb67ae85 ;
5+ const H2 : u32 = 0x3c6ef372 ;
6+ const H3 : u32 = 0xa54ff53a ;
7+ const H4 : u32 = 0x510e527f ;
8+ const H5 : u32 = 0x9b05688c ;
9+ const H6 : u32 = 0x1f83d9ab ;
10+ const H7 : u32 = 0x5be0cd19 ;
11+
12+ const K : [ u32 ; 64 ] = [
13+ 0x428a2f98 , 0x71374491 , 0xb5c0fbcf , 0xe9b5dba5 , 0x3956c25b , 0x59f111f1 , 0x923f82a4 , 0xab1c5ed5 ,
14+ 0xd807aa98 , 0x12835b01 , 0x243185be , 0x550c7dc3 , 0x72be5d74 , 0x80deb1fe , 0x9bdc06a7 , 0xc19bf174 ,
15+ 0xe49b69c1 , 0xefbe4786 , 0x0fc19dc6 , 0x240ca1cc , 0x2de92c6f , 0x4a7484aa , 0x5cb0a9dc , 0x76f988da ,
16+ 0x983e5152 , 0xa831c66d , 0xb00327c8 , 0xbf597fc7 , 0xc6e00bf3 , 0xd5a79147 , 0x06ca6351 , 0x14292967 ,
17+ 0x27b70a85 , 0x2e1b2138 , 0x4d2c6dfc , 0x53380d13 , 0x650a7354 , 0x766a0abb , 0x81c2c92e , 0x92722c85 ,
18+ 0xa2bfe8a1 , 0xa81a664b , 0xc24b8b70 , 0xc76c51a3 , 0xd192e819 , 0xd6990624 , 0xf40e3585 , 0x106aa070 ,
19+ 0x19a4c116 , 0x1e376c08 , 0x2748774c , 0x34b0bcb5 , 0x391c0cb3 , 0x4ed8aa4a , 0x5b9cca4f , 0x682e6ff3 ,
20+ 0x748f82ee , 0x78a5636f , 0x84c87814 , 0x8cc70208 , 0x90befffa , 0xa4506ceb , 0xbef9a3f7 , 0xc67178f2 ,
21+ ] ;
22+
23+
24+ fn pre_process ( mut input : Vec < u8 > ) -> Vec < u8 > {
25+ return input;
26+ }
27+
28+
29+ fn get_chunks ( padded_input : Vec < u8 > ) -> Vec < [ u8 ; 512 ] > {
30+ return Vec :: new ( ) ;
31+ }
32+
33+
34+ pub fn sha_256 ( input : String ) -> String {
35+ let padded = pre_process ( input. bytes ( ) . collect :: < Vec < u8 > > ( ) ) ;
36+ let chunks = get_chunks ( padded) ;
37+
38+ return String :: new ( ) ;
39+ }
40+
41+
42+ #[ cfg( test) ]
43+ mod tests {
44+ use super :: sha_256;
45+ }
0 commit comments