add c hash primitive interface