adding sha support and generation code