replace sha implementation
add sha2 family