.TH "selabel_digest" "3" "16 Sept 2015" "" "SELinux API documentation" .SH "NAME" selabel_digest \- Return digest of specfiles and list of files used . .SH "SYNOPSIS" .B #include .br .B #include .sp .BI "int selabel_digest(struct selabel_handle *" hnd , .in +\w'int selabel_digest('u .BI "unsigned char **" digest , .BI "size_t *" digest_len , .br .BI "char ***" specfiles, .BI "size_t *" num_specfiles ");" .in . .SH "DESCRIPTION" .BR selabel_digest () performs an operation on the handle .IR hnd , returning the results of the SHA1 digest pointed to by .IR digest , whose length will be .IR digest_len . The list of specfiles used in the SHA1 digest calculation is returned in .I specfiles with the number of entries in .IR num_specfiles . .sp To enable .BR selabel_digest () to return this information the .B SELABEL_OPT_DIGEST option must be enable in .BR selabel_open (3). .sp The result of .BR selabel_digest () must not be used after .BR selabel_close (3). . .SH "RETURN VALUE" On success, zero is returned. On error, \-1 is returned and .I errno is set appropriately. . .SH "ERRORS" .TP .B EINVAL No digest available (returned if .B SELABEL_OPT_DIGEST option not enabled). .TP .B ENOMEM An attempt to allocate memory failed. . .SH "SEE ALSO" .BR selabel_open (3), .BR selinux (8)