/* \classmethod \constructor(]) initial data must be given if block_size wants to be passed  */
STATIC mp_obj_t hash_make_new(mp_obj_t type_in, size_t n_args, size_t n_kw, const mp_obj_t *args)
/* \classmethod \constructor(]) initial data must be given if block_size wants to be passed  */
STATIC mp_obj_t hash_make_new(mp_obj_t type_in, size_t n_args, size_t n_kw, const mp_obj_t *args)
{
        self->algo = SHAMD5_ALGO_SHA1;
        self->h_size = 20;
    } else {
        self->algo = SHAMD5_ALGO_SHA256;
        self->h_size = 32;
    }
    if (n_args) {
        if (n_args > 1) {
            self->fixedlen = true;
            self->b_size = mp_obj_get_int(args[1]);
            hash_update_internal(self, args[0], true);
        } else {
            hash_update_internal(self, args[0], false);
        }
    }
    return self;
}