return False; \
}
+/* If lead format changes, this needs to be changed */
+int PUBLIC get_min_download_size() {
+ /* Lead + hash type + hash digest + header size */
+ return 5 + MAX_COMP_SIZE*2 + get_max_hash_size();
+}
+
int PUBLIC zck_set_ioption(zckCtx *zck, zck_ioption option, ssize_t value) {
/* Set hash type */
if(option == ZCK_HASH_FULL_TYPE) {
if(zck == NULL)
return NULL;
+ if(!zck_read_lead(zck)) {
+ zck_free(&zck);
+ return NULL;
+ }
if(!zck_read_header(zck)) {
zck_free(&zck);
return NULL;
return zck->hash_type.type;
}
+ssize_t PUBLIC zck_get_full_digest_size(zckCtx *zck) {
+ if(zck == NULL)
+ return -1;
+ return zck->hash_type.digest_size;
+}
+
int PUBLIC zck_get_chunk_hash_type(zckCtx *zck) {
if(zck == NULL)
return -1;
return zck->index.hash_type;
}
+ssize_t PUBLIC zck_get_chunk_digest_size(zckCtx *zck) {
+ if(zck == NULL)
+ return -1;
+ return zck->index.digest_size;
+}
+
ssize_t PUBLIC zck_get_index_count(zckCtx *zck) {
if(zck == NULL)
return -1;
ssize_t PUBLIC zck_get_header_length(zckCtx *zck) {
if(zck == NULL)
return -1;
- return zck->data_offset;
+ return zck->lead_size + zck->header_length;
+}
+
+ssize_t PUBLIC zck_get_lead_length(zckCtx *zck) {
+ if(zck == NULL)
+ return -1;
+ return zck->lead_size;
}
ssize_t PUBLIC zck_get_data_length(zckCtx *zck) {
return valid_file;
}
+
+int PUBLIC zck_get_fd(zckCtx *zck) {
+ return zck->fd;
+}