extern int CG21_hash_set_X()

in src/cg21/cg21_utilities.c [552:576]


extern int CG21_hash_set_X(hash256 *sha, octet *X_packed, octet *j_packed, int n, int m){

    int indices[n];

    char x_[n][m];
    octet X[n];
    init_octets((char *)x_,  X,  m, n);

    // unpack X_packed into X and return sorted indices based on j_packed
    int rc = CG21_unpack_and_sort(X, X_packed,j_packed,n,m,indices);
    if (rc != CG21_OK){
        return rc;
    }

    // process X[i] into sha based on the indices
    for (int i=0;i<n;i++){
        HASH_UTILS_hash_oct(sha, &X[indices[i]]);
    }

    for (int i=0;i<n;i++) {
        OCT_clear(&X[i]);
    }

    return CG21_OK;
}