diff --git a/inc/decrypt.h b/inc/decrypt.h index 224d6bf..bceeb47 100644 --- a/inc/decrypt.h +++ b/inc/decrypt.h @@ -5,6 +5,7 @@ extern char * (*decrypt_data) (uint8_t *data, uint32_t size, struct ldb_table table, uint8_t *key, uint8_t *subkey); extern void (*decrypt_mz) (uint8_t *data, uint32_t len); +extern void (*encoder_version) (char * version); char * standalone_decrypt_data(uint8_t *data, uint32_t size,struct ldb_table table, uint8_t *key, uint8_t *subkey); diff --git a/src/decrypt.c b/src/decrypt.c index 16e2027..a91372d 100644 --- a/src/decrypt.c +++ b/src/decrypt.c @@ -37,6 +37,7 @@ char * (*decrypt_data) (uint8_t *data, uint32_t size, struct ldb_table table, uint8_t *key, uint8_t *subkey); void (*decrypt_mz) (uint8_t *data, uint32_t len); +void (*encoder_version) (char * version); /** * @brief Decrypt data function pointer. Will be executed for the ldb_fetch_recordset function in each iteration. See LDB documentation for more details. * @param data //TODO diff --git a/src/main.c b/src/main.c index 1043df0..43d9850 100644 --- a/src/main.c +++ b/src/main.c @@ -229,9 +229,10 @@ bool lib_encoder_load() scanlog("Lib scanoss-enocder present\n"); decrypt_data = dlsym(lib_encoder_handle, "scanoss_decode_table"); decrypt_mz = dlsym(lib_encoder_handle, "scanoss_decode_mz"); + encoder_version = dlsym(lib_encoder_handle, "scanoss_encoder_version"); if ((err = dlerror())) { - printf("%s\n", err); + printf("%s - You may need to update libscanoss_encoder.so\n", err); exit(EXIT_FAILURE); } return true; @@ -377,7 +378,11 @@ int main(int argc, char **argv) quiet = true; scanlog("Quiet mode enabled. Displaying only debugging info via STDERR.\n"); if (lib_encoder_present) - scanlog("Lib encoder present.\n"); + { + char version[32] = "\0"; + encoder_version(version); + scanlog("Lib encoder present - version %s\n", version); + } break; case 'd':