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;
}