From c7d17df7f8eb282500adb0f6f5bc7ce42240fa30 Mon Sep 17 00:00:00 2001 From: PartialVolume <22084881+PartialVolume@users.noreply.github.com> Date: Tue, 28 Feb 2023 00:02:01 +0000 Subject: [PATCH] HPA_DCO_002 - Add HPA, DCO capability 1. Further work was completed, putting the HPA status and HPA size into the report/certificate. 2. Moved some general functions that may be used throughout nwipe into miscellaneous.c These tend to be string processing functions. 3. Tested certificate HPA status. There are three possible states of the HPA i. Enabled and HPA size is displayed on the certificate ii. Disabled, the drive reports it's real size to the O.S. iii. Unknown. Nwipe could not determine whether there is a HPA or not. This may be caused by the use of a USB adapter or could be a bad drive, or finally a change in hdparms format when displaying HPA information. More code to follow, next on the list is to add the HPA status into the drive selection screen in the GUI, so when you select the drive you can see the status of HPA and choose to disable it. --- src/context.h | 8 +-- src/create_pdf.c | 156 +++++++++++++++++++++++++++++--------------- src/create_pdf.h | 15 +---- src/device.c | 3 +- src/gui.c | 13 +--- src/gui.h | 12 ++++ src/hpa_dco.c | 47 ++++++------- src/hpa_dco.h | 5 +- src/logging.c | 103 +---------------------------- src/logging.h | 3 - src/miscellaneous.c | 115 ++++++++++++++++++++++++++++++++ src/miscellaneous.h | 17 +++++ src/nwipe.c | 1 + src/redcross.jpg | Bin 0 -> 60331 bytes src/te.jpg | Bin 0 -> 54896 bytes 15 files changed, 284 insertions(+), 214 deletions(-) create mode 100644 src/redcross.jpg create mode 100644 src/te.jpg diff --git a/src/context.h b/src/context.h index c26d2be..15e3aac 100644 --- a/src/context.h +++ b/src/context.h @@ -157,13 +157,13 @@ typedef struct nwipe_context_t_ time_t end_time; // End time of wipe u64 fsyncdata_errors; // The number of fsyncdata errors across all passes. char PDF_filename[256]; // The filename of the PDF certificate/report. - int HPA_pre_erase_status; // 0 = No HPA found/disabled, 1 = HPA detected, 2 = Unknown, unable to checked - int HPA_post_erase_status; // 0 = No HPA found/disabled, 1 = HPA detected, 2 = Unknown, unable to checked + int HPA_status; // 0 = No HPA found/disabled, 1 = HPA detected, 2 = Unknown, unable to checked u64 HPA_reported_set; // the 'HPA set' value reported hdparm -N, i.e the first value of n/n u64 HPA_reported_real; // the 'HPA real' value reported hdparm -N, i.e the second value of n/n - int DCO_pre_erase_status; // 0 = No DCO found, 1 = DCO detected, 2 = Unknown, unable to checked - int DCO_post_erase_status; // 0 = No DCO found, 1 = DCO detected, 2 = Unknown, unable to checked + int DCO_status; // 0 = No DCO found, 1 = DCO detected, 2 = Unknown, unable to checked u64 DCO_reported_real_max_sectors; // real max sectors as reported by hdparm --dco-identify + u64 HPA_size; // The size of the host protected area in sectors + char HPA_size_text[NWIPE_DEVICE_SIZE_TXT_LENGTH]; // Human readable size bytes, KB, MB, GB .. /* * Identity contains the raw serial number of the drive diff --git a/src/create_pdf.c b/src/create_pdf.c index d174375..aac51ed 100644 --- a/src/create_pdf.c +++ b/src/create_pdf.c @@ -35,6 +35,8 @@ #include "logging.h" #include "options.h" #include "prng.h" +#include "hpa_dco.h" +#include "miscellaneous.h" int create_pdf( nwipe_context_t* ptr ) { @@ -57,12 +59,14 @@ int create_pdf( nwipe_context_t* ptr ) char end_time_text[50] = ""; char bytes_erased[50] = ""; char HPA_pre_erase[50] = ""; - char HPA_post_erase[50] = ""; - char DCO_pre_erase[50] = ""; - char DCO_post_erase[50] = ""; + char HPA_status_text[50] = ""; + char HPA_size_text[50] = ""; char errors[50] = ""; char throughput_txt[50] = ""; + float height; + float page_width; + struct pdf_info info = { .creator = "https://github.com/PartialVolume/shredos.x86_64", .producer = "https://github.com/martijnvanbrummelen/nwipe", .title = "PDF Disk Erasure Certificate", @@ -80,16 +84,18 @@ int create_pdf( nwipe_context_t* ptr ) struct pdf_doc* pdf = pdf_create( PDF_A4_WIDTH, PDF_A4_HEIGHT, &info ); /* Create footer text string and append the version */ - strcpy( pdf_footer, "Disc Erasure by NWIPE version " ); - strcat( pdf_footer, version_string ); + snprintf( pdf_footer, sizeof( pdf_footer ), "Disc Erasure by NWIPE version %s", version_string ); pdf_set_font( pdf, "Helvetica" ); - pdf_append_page( pdf ); + struct pdf_object* page_1 = pdf_append_page( pdf ); + + /* Obtain page page_width */ + page_width = pdf_page_width( page_1 ); /* ---------------------------------------------------------- */ /* Create header and footer, with the exception of the green */ /* tick/red icon which is set from the 'status' section below */ - pdf_add_text( pdf, NULL, pdf_footer, 12, 200, 30, PDF_BLACK ); + pdf_add_text_wrap( pdf, NULL, pdf_footer, 12, 0, 30, PDF_BLACK, page_width, PDF_ALIGN_CENTER, &height ); pdf_add_line( pdf, NULL, 50, 50, 550, 50, 3, PDF_BLACK ); pdf_add_line( pdf, NULL, 50, 650, 550, 650, 3, PDF_BLACK ); pdf_add_image_data( pdf, NULL, 45, 665, 100, 100, bin2c_shred_db_jpg, 27063 ); @@ -157,23 +163,6 @@ int create_pdf( nwipe_context_t* ptr ) pdf_add_text( pdf, NULL, "Health:", 12, 60, 370, PDF_GRAY ); pdf_add_text( pdf, NULL, "Remapped Sectors:", 12, 300, 370, PDF_GRAY ); - /* HPA, DCO, pre-erase */ - if( !strcmp( c->device_type_str, "NVME" ) ) - { - snprintf( HPA_pre_erase, sizeof( HPA_pre_erase ), "Not applicable to NVME" ); - snprintf( HPA_post_erase, sizeof( HPA_post_erase ), "Not applicable to NVME" ); - snprintf( DCO_pre_erase, sizeof( DCO_pre_erase ), "Not applicable to NVME" ); - snprintf( DCO_post_erase, sizeof( DCO_post_erase ), "Not applicable to NVME" ); - } - pdf_add_text( pdf, NULL, "HPA(pre-erase):", 12, 60, 350, PDF_GRAY ); - pdf_set_font( pdf, "Helvetica-Bold" ); - pdf_add_text( pdf, NULL, HPA_pre_erase, 12, 150, 350, PDF_BLACK ); - pdf_set_font( pdf, "Helvetica" ); - pdf_add_text( pdf, NULL, "DCO(pre-erase):", 12, 300, 350, PDF_GRAY ); - pdf_set_font( pdf, "Helvetica-Bold" ); - pdf_add_text( pdf, NULL, DCO_pre_erase, 12, 393, 350, PDF_BLACK ); - pdf_set_font( pdf, "Helvetica" ); - /* --------------- */ /* Erasure Details */ pdf_add_text( pdf, NULL, "Disk Erasure Details", 12, 50, 310, PDF_BLUE ); @@ -350,24 +339,96 @@ int create_pdf( nwipe_context_t* ptr ) } pdf_set_font( pdf, "Helvetica" ); - /* HPA, DCO, post erase */ - pdf_add_text( pdf, NULL, "HPA(post-erase):", 12, 60, 190, PDF_GRAY ); + /******************************* + * HPA, DCO, post erase - LABELS + */ + pdf_add_text( pdf, NULL, "HPA:", 12, 60, 190, PDF_GRAY ); pdf_set_font( pdf, "Helvetica-Bold" ); - pdf_add_text( pdf, NULL, HPA_post_erase, 12, 155, 190, PDF_BLACK ); + pdf_add_text( pdf, NULL, HPA_status_text, 12, 155, 190, PDF_BLACK ); pdf_set_font( pdf, "Helvetica" ); - pdf_add_text( pdf, NULL, "DCO(post-erase):", 12, 300, 190, PDF_GRAY ); + pdf_add_text( pdf, NULL, "HPA Size:", 12, 300, 190, PDF_GRAY ); + + /******************* + * Populate HPA size + */ pdf_set_font( pdf, "Helvetica-Bold" ); - pdf_add_text( pdf, NULL, DCO_post_erase, 12, 397, 190, PDF_BLACK ); + if( c->HPA_status == HPA_ENABLED ) + { + snprintf( HPA_size_text, sizeof( HPA_size_text ), "%lli sectors", c->HPA_size ); + pdf_add_text( pdf, NULL, HPA_size_text, 12, 360, 190, PDF_RED ); + } + else + { + if( c->HPA_status == HPA_DISABLED ) + { + snprintf( HPA_size_text, sizeof( HPA_size_text ), "Zero sectors" ); + pdf_add_text( pdf, NULL, HPA_size_text, 12, 360, 190, PDF_DARK_GREEN ); + } + else + { + if( c->HPA_status == HPA_UNKNOWN ) + { + snprintf( HPA_size_text, sizeof( HPA_size_text ), "UNKNOWN" ); + pdf_add_text( pdf, NULL, HPA_size_text, 12, 360, 190, PDF_RED ); + } + } + } pdf_set_font( pdf, "Helvetica" ); - /* Throughput */ + /********************* + * Populate HPA status + */ + if( !strcmp( c->device_type_str, "NVME" ) ) + { + snprintf( HPA_status_text, sizeof( HPA_status_text ), "Not applicable to NVME" ); + snprintf( HPA_size_text, sizeof( HPA_size_text ), "Not applicable to NVME" ); + pdf_set_font( pdf, "Helvetica-Bold" ); + pdf_add_text( pdf, NULL, HPA_status_text, 12, 95, 190, PDF_DARK_GREEN ); + pdf_set_font( pdf, "Helvetica" ); + } + else + { + if( c->HPA_status == HPA_ENABLED ) + { + snprintf( HPA_status_text, sizeof( HPA_status_text ), "ENABLED" ); + pdf_set_font( pdf, "Helvetica-Bold" ); + pdf_add_text( pdf, NULL, HPA_status_text, 12, 95, 190, PDF_RED ); + pdf_set_font( pdf, "Helvetica" ); + } + else + { + if( c->HPA_status == HPA_DISABLED ) + { + snprintf( HPA_status_text, sizeof( HPA_status_text ), "DISABLED" ); + pdf_set_font( pdf, "Helvetica-Bold" ); + pdf_add_text( pdf, NULL, HPA_status_text, 12, 95, 190, PDF_DARK_GREEN ); + pdf_set_font( pdf, "Helvetica" ); + } + else + { + if( c->HPA_status == HPA_UNKNOWN ) + { + snprintf( HPA_status_text, sizeof( HPA_status_text ), "UNKNOWN" ); + pdf_set_font( pdf, "Helvetica-Bold" ); + pdf_add_text( pdf, NULL, HPA_status_text, 12, 95, 190, PDF_RED ); + pdf_set_font( pdf, "Helvetica" ); + } + } + } + } + + /************ + * Throughput + */ pdf_add_text( pdf, NULL, "Throughput:", 12, 300, 170, PDF_GRAY ); snprintf( throughput_txt, sizeof( throughput_txt ), "%s/sec", c->throughput_txt ); pdf_set_font( pdf, "Helvetica-Bold" ); pdf_add_text( pdf, NULL, throughput_txt, 12, 370, 170, PDF_BLACK ); pdf_set_font( pdf, "Helvetica" ); - /* Errors */ + /******** + * Errors + */ pdf_add_text( pdf, NULL, "Errors(pass/sync/verify):", 12, 60, 170, PDF_GRAY ); pdf_set_font( pdf, "Helvetica-Bold" ); snprintf( errors, sizeof( errors ), "%llu/%llu/%llu", c->pass_errors, c->fsyncdata_errors, c->verify_errors ); @@ -381,27 +442,30 @@ int create_pdf( nwipe_context_t* ptr ) } pdf_set_font( pdf, "Helvetica" ); - /* Information */ + /************* + * Information + */ pdf_add_text( pdf, NULL, "Information:", 12, 60, 150, PDF_GRAY ); pdf_set_font( pdf, "Helvetica-Bold" ); pdf_add_text( pdf, NULL, "* bytes erased: The amount of drive that's been erased at least once", 12, 60, 130, PDF_BLACK ); pdf_set_font( pdf, "Helvetica" ); - /* ---------------------- */ - /* Technician/Operator ID */ + /************************ + * Technician/Operator ID + */ pdf_add_line( pdf, NULL, 50, 120, 550, 120, 1, PDF_GRAY ); pdf_add_text( pdf, NULL, "Technician/Operator ID", 12, 50, 100, PDF_BLUE ); pdf_add_text( pdf, NULL, "Name/ID:", 12, 60, 80, PDF_GRAY ); pdf_add_text( pdf, NULL, "Signature:", 12, 300, 100, PDF_BLUE ); pdf_add_line( pdf, NULL, 360, 65, 550, 66, 1, PDF_GRAY ); - /* --------------------------- */ - /* Create the reports filename */ - - /* Sanitize the strings that we are going to use to create the report filename - * by converting any non alphanumeric characters to an underscore or hyphon */ - + /***************************** + * Create the reports filename + * + * Sanitize the strings that we are going to use to create the report filename + * by converting any non alphanumeric characters to an underscore or hyphon + */ replace_non_alphanumeric( end_time_text, '-' ); replace_non_alphanumeric( c->device_model, '_' ); replace_non_alphanumeric( c->device_serial_no, '_' ); @@ -416,15 +480,3 @@ int create_pdf( nwipe_context_t* ptr ) pdf_destroy( pdf ); return 0; } -void replace_non_alphanumeric( char* str, char replacement_char ) -{ - int i = 0; - while( str[i] != 0 ) - { - if( str[i] < '0' || ( str[i] > '9' && str[i] < 'A' ) || ( str[i] > 'Z' && str[i] < 'a' ) || str[i] > 'z' ) - { - str[i] = replacement_char; - } - i++; - } -} diff --git a/src/create_pdf.h b/src/create_pdf.h index 66460dc..a73cc2c 100644 --- a/src/create_pdf.h +++ b/src/create_pdf.h @@ -21,7 +21,7 @@ #ifndef CREATE_PDF_H_ #define CREATE_PDF_H_ -#define MAX_PDF_FOOTER_TEXT_LENGTH 50 +#define MAX_PDF_FOOTER_TEXT_LENGTH 100 /* Additional colors that supplement the standard colors in pdfgen.h */ @@ -38,17 +38,4 @@ */ int create_pdf( nwipe_context_t* ptr ); -/** - * Scan a string and replace any characters that are not alpha-numeric with - * the character_char. - * Example: - * char str[] = 18:21:56; - * calling the function replace_non_alphanumeric( &str, '_' ) - * would result in str changing from 18:21:56 to 18_21_56 - * @param character pointer to the string to be processed - * @param replacement_char the character used to replace non alpha-numeric characters - * @return void - */ -void replace_non_alphanumeric( char* str, char replacement_char ); - #endif /* CREATE_PDF_H_ */ diff --git a/src/device.c b/src/device.c index 03754ca..1b30800 100644 --- a/src/device.c +++ b/src/device.c @@ -41,6 +41,7 @@ #include #include #include "hpa_dco.h" +#include "miscellaneous.h" #include #include @@ -342,7 +343,7 @@ int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount ) } if( check_HPA == 1 ) { - hpa_dco_status( next_device, PRE_WIPE_HPA_CHECK ); + hpa_dco_status( next_device ); } if( strlen( (const char*) next_device->device_serial_no ) ) diff --git a/src/gui.c b/src/gui.c index d0b05a0..8f6f685 100644 --- a/src/gui.c +++ b/src/gui.c @@ -43,6 +43,7 @@ #include "logging.h" #include "version.h" #include "temperature.h" +#include "miscellaneous.h" #define NWIPE_GUI_PANE 8 @@ -580,18 +581,6 @@ void nwipe_gui_create_all_windows_on_terminal_resize( int force_creation, const void nwipe_gui_select( int count, nwipe_context_t** c ) { - /** - * The primary user interface. Allows the user to - * change options and specify the devices to be wiped. - * - * @parameter count The number of contexts in the array. - * @parameter c An array of device contexts. - * - * @modifies c[].select Sets the select flag according to user input. - * @modifies options Sets program options according to to user input. - * - */ - extern int terminate_signal; /* Widget labels. */ diff --git a/src/gui.h b/src/gui.h index 82b55e4..79e847d 100644 --- a/src/gui.h +++ b/src/gui.h @@ -33,6 +33,18 @@ void nwipe_gui_create_stats_window( void ); // Create the stats window void nwipe_gui_create_all_windows_on_terminal_resize( int force_creation, const char* footer_text ); // If terminal is resized recreate all windows + +/** + * The primary user interface. Allows the user to + * change options and specify the devices to be wiped. + * + * @parameter count The number of contexts in the array. + * @parameter c An array of device contexts. + * + * @modifies c[].select Sets the select flag according to user input. + * @modifies options Sets program options according to to user input. + * + */ void nwipe_gui_select( int count, nwipe_context_t** c ); // Select devices to wipe. void* nwipe_gui_status( void* ptr ); // Update operation progress. void nwipe_gui_method( void ); // Change the method option. diff --git a/src/hpa_dco.c b/src/hpa_dco.c index 5215df0..c0e5d7a 100644 --- a/src/hpa_dco.c +++ b/src/hpa_dco.c @@ -47,7 +47,7 @@ * ahead and submit a pull request to https://github.com/martijnvanbrummelen/nwipe */ -int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) +int hpa_dco_status( nwipe_context_t* ptr ) { nwipe_context_t* c; c = ptr; @@ -164,14 +164,8 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) */ if( strstr( result, "hpa is disabled" ) != 0 ) { - if( pre_or_post == PRE_WIPE_HPA_CHECK ) - { - c->HPA_pre_erase_status = HPA_DISABLED; - } - else - { - c->HPA_post_erase_status = HPA_DISABLED; - } + c->HPA_status = HPA_DISABLED; + nwipe_log( NWIPE_LOG_INFO, "[GOOD] The host protected area is disabled on %s", c->device_name ); hpa_line_found = 1; break; @@ -180,7 +174,7 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) { if( strstr( result, "hpa is enabled" ) != 0 ) { - c->HPA_pre_erase_status = HPA_ENABLED; + c->HPA_status = HPA_ENABLED; nwipe_log( NWIPE_LOG_WARNING, "[BAD] The host protected area is enabled on %s", c->device_name ); hpa_line_found = 1; @@ -190,7 +184,7 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) { if( strstr( result, "invalid" ) != 0 ) { - c->HPA_pre_erase_status = HPA_ENABLED; + c->HPA_status = HPA_ENABLED; nwipe_log( NWIPE_LOG_WARNING, "[UNSURE] hdparm reports invalid output, buggy drive firmware on %s?", c->device_name ); @@ -237,7 +231,7 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) } else { - c->HPA_pre_erase_status = HPA_UNKNOWN; + c->HPA_status = HPA_UNKNOWN; nwipe_log( NWIPE_LOG_WARNING, "[UNKNOWN] We can't find the HPA line, has hdparm ouput changed? %s", c->device_name ); @@ -379,37 +373,37 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) /* If all three values match then there is no hidden disc area. HPA is disabled. */ if( ( c->HPA_reported_set == c->HPA_reported_real ) && c->DCO_reported_real_max_sectors == c->HPA_reported_set ) { - c->HPA_pre_erase_status = HPA_DISABLED; + c->HPA_status = HPA_DISABLED; } else { /* If HPA set and DCO max sectors are equal it can also be considered that HPA is disabled */ if( c->HPA_reported_set == c->DCO_reported_real_max_sectors ) { - c->HPA_pre_erase_status = HPA_DISABLED; + c->HPA_status = HPA_DISABLED; } else { if( c->HPA_reported_set != c->DCO_reported_real_max_sectors ) { - c->HPA_pre_erase_status = HPA_ENABLED; + c->HPA_status = HPA_ENABLED; } } } - if( c->HPA_pre_erase_status == HPA_DISABLED ) + if( c->HPA_status == HPA_DISABLED ) { nwipe_log( NWIPE_LOG_INFO, "[GOOD] HPA is disabled on %s", c->device_name ); } else { - if( c->HPA_pre_erase_status == HPA_ENABLED ) + if( c->HPA_status == HPA_ENABLED ) { nwipe_log( NWIPE_LOG_WARNING, "[BAD] HPA is enabled on %s", c->device_name ); } else { - if( c->HPA_pre_erase_status == HPA_UNKNOWN ) + if( c->HPA_status == HPA_UNKNOWN ) { nwipe_log( NWIPE_LOG_WARNING, "[UNKNOWN] We can't seem to determine the HPA status on %s", c->device_name ); @@ -417,11 +411,20 @@ int hpa_dco_status( nwipe_context_t* ptr, int pre_or_post ) } } - /* Determine the size of the HPA and store the results in the - * context. - */ + /* Determine the size of the HPA if it's enabled and store the results in the context.*/ + if( c->HPA_status == HPA_ENABLED ) + { + c->HPA_size = c->DCO_reported_real_max_sectors - c->HPA_reported_set; - // WARNING Add code here + /* Convert the size to a human readable format and save in context */ + Determine_C_B_nomenclature( c->HPA_size, c->HPA_size_text, NWIPE_DEVICE_SIZE_TXT_LENGTH ); + } + else + { + /* HPA not enabled so initialise these values */ + c->HPA_size = 0; + c->HPA_size_text[0] = 0; + } return set_return_value; } diff --git a/src/hpa_dco.h b/src/hpa_dco.h index 1ef7633..3a7bbb2 100644 --- a/src/hpa_dco.h +++ b/src/hpa_dco.h @@ -25,9 +25,6 @@ #define HPA_ENABLED 1 #define HPA_UNKNOWN 2 -#define PRE_WIPE_HPA_CHECK 0 -#define POST_WIPE_HPA_CHECK 1 - -int hpa_dco_status( nwipe_context_t*, int ); +int hpa_dco_status( nwipe_context_t* ); #endif /* HPA_DCO_H_ */ diff --git a/src/logging.c b/src/logging.c index 48c1385..00729d9 100644 --- a/src/logging.c +++ b/src/logging.c @@ -37,6 +37,7 @@ #include "options.h" #include "logging.h" #include "create_pdf.h" +#include "miscellaneous.h" /* Global array to hold log values to print when logging to STDOUT */ char** log_lines; @@ -929,105 +930,3 @@ void nwipe_log_summary( nwipe_context_t** ptr, int nwipe_selected ) "********************************************************************************" ); nwipe_log( NWIPE_LOG_NOTIMESTAMP, "" ); } - -void Determine_C_B_nomenclature( u64 speed, char* result, int result_array_size ) -{ - - /* C_B ? Determine Capacity or Bandwidth nomenclature - * - * A pointer to a result character string with a minimum of 13 characters in length - * should be provided. - * - * Outputs a string of the form xxxTB/s, xxxGB/s, xxxMB/s, xxxKB/s B/s depending on the value of 'speed' - */ - - /* Initialise the output array */ - int idx = 0; - - while( idx < result_array_size ) - { - result[idx++] = 0; - } - - /* Determine the size of throughput so that the correct nomenclature can be used */ - if( speed >= INT64_C( 1000000000000 ) ) - { - snprintf( result, result_array_size, "%3llu TB", speed / INT64_C( 1000000000000 ) ); - } - else if( speed >= INT64_C( 1000000000 ) ) - { - snprintf( result, result_array_size, "%3llu GB", speed / INT64_C( 1000000000 ) ); - } - else if( speed >= INT64_C( 1000000 ) ) - { - snprintf( result, result_array_size, "%3llu MB", speed / INT64_C( 1000000 ) ); - } - else if( speed >= INT64_C( 1000 ) ) - { - snprintf( result, result_array_size, "%3llu KB", speed / INT64_C( 1000 ) ); - } - else - { - snprintf( result, result_array_size, "%3llu B", speed / INT64_C( 1 ) ); - } -} - -void convert_seconds_to_hours_minutes_seconds( u64 total_seconds, int* hours, int* minutes, int* seconds ) -{ - /* Convert binary seconds into binary hours, minutes and seconds */ - - if( total_seconds % 60 ) - { - *minutes = total_seconds / 60; - - *seconds = total_seconds - ( *minutes * 60 ); - } - else - { - *minutes = total_seconds / 60; - - *seconds = 0; - } - if( *minutes > 59 ) - { - *hours = *minutes / 60; - if( *minutes % 60 ) - { - *minutes = *minutes - ( *hours * 60 ); - } - else - { - *minutes = 0; - } - } -} - -int nwipe_strip_path( char* output, char* input ) -{ - /* Take the input string, say "/dev/sda" and remove the "/dev/", prefix the result - * with 'length' spaces. So if length=8 and input=/dev/sda, output will - * be " sda", a string 8 characters long right justified with spaces. - */ - int idx_dest; - int idx_src; - idx_dest = 8; - // idx_dest = length; - output[idx_dest--] = 0; - idx_src = strlen( input ); - idx_src--; - - while( idx_dest >= 0 ) - { - /* if the device name contains a / start prefixing spaces */ - if( input[idx_src] == '/' ) - { - output[idx_dest--] = ' '; - continue; - } - if( idx_src >= 0 ) - { - output[idx_dest--] = input[idx_src--]; - } - } - return 0; -} diff --git a/src/logging.h b/src/logging.h index d4b6db0..6ed3f21 100644 --- a/src/logging.h +++ b/src/logging.h @@ -60,8 +60,5 @@ void nwipe_perror( int nwipe_errno, const char* f, const char* s ); void nwipe_log_OSinfo(); int nwipe_log_sysinfo(); void nwipe_log_summary( nwipe_context_t**, int ); // This produces the wipe status table on exit -void Determine_C_B_nomenclature( u64, char*, int ); -void convert_seconds_to_hours_minutes_seconds( u64, int*, int*, int* ); -int nwipe_strip_path( char*, char* ); #endif /* LOGGING_H_ */ diff --git a/src/miscellaneous.c b/src/miscellaneous.c index b155f07..edab3a7 100644 --- a/src/miscellaneous.c +++ b/src/miscellaneous.c @@ -111,3 +111,118 @@ u64 str_ascii_number_to_ll( char* str ) } return -2; /* no number found */ } + +void Determine_C_B_nomenclature( u64 qty, char* result, int result_array_size ) +{ + + /* C_B ? Determine Capacity or Bandwidth nomenclature + * + * A pointer to a result character string with a minimum of 13 characters in length + * should be provided. + * + * Outputs a string of the form xxxTB, xxxGB, xxxMB, xxxKB B depending on the value of 'qty' + */ + + /* Initialise the output array */ + int idx = 0; + + while( idx < result_array_size ) + { + result[idx++] = 0; + } + + /* Determine the size of throughput so that the correct nomenclature can be used */ + if( qty >= INT64_C( 1000000000000 ) ) + { + snprintf( result, result_array_size, "%3llu TB", qty / INT64_C( 1000000000000 ) ); + } + else if( qty >= INT64_C( 1000000000 ) ) + { + snprintf( result, result_array_size, "%3llu GB", qty / INT64_C( 1000000000 ) ); + } + else if( qty >= INT64_C( 1000000 ) ) + { + snprintf( result, result_array_size, "%3llu MB", qty / INT64_C( 1000000 ) ); + } + else if( qty >= INT64_C( 1000 ) ) + { + snprintf( result, result_array_size, "%3llu KB", qty / INT64_C( 1000 ) ); + } + else + { + snprintf( result, result_array_size, "%3llu B", qty / INT64_C( 1 ) ); + } +} + +void convert_seconds_to_hours_minutes_seconds( u64 total_seconds, int* hours, int* minutes, int* seconds ) +{ + /* Convert binary seconds into binary hours, minutes and seconds */ + + if( total_seconds % 60 ) + { + *minutes = total_seconds / 60; + + *seconds = total_seconds - ( *minutes * 60 ); + } + else + { + *minutes = total_seconds / 60; + + *seconds = 0; + } + if( *minutes > 59 ) + { + *hours = *minutes / 60; + if( *minutes % 60 ) + { + *minutes = *minutes - ( *hours * 60 ); + } + else + { + *minutes = 0; + } + } +} + +int nwipe_strip_path( char* output, char* input ) +{ + /* Take the input string, say "/dev/sda" and remove the "/dev/", prefix the result + * with 'length' spaces. So if length=8 and input=/dev/sda, output will + * be " sda", a string 8 characters long right justified with spaces. + */ + int idx_dest; + int idx_src; + idx_dest = 8; + // idx_dest = length; + output[idx_dest--] = 0; + idx_src = strlen( input ); + idx_src--; + + while( idx_dest >= 0 ) + { + /* if the device name contains a / start prefixing spaces */ + if( input[idx_src] == '/' ) + { + output[idx_dest--] = ' '; + continue; + } + if( idx_src >= 0 ) + { + output[idx_dest--] = input[idx_src--]; + } + } + return 0; +} + +void replace_non_alphanumeric( char* str, char replacement_char ) +{ + int i = 0; + while( str[i] != 0 ) + { + if( str[i] < '0' || ( str[i] > '9' && str[i] < 'A' ) || ( str[i] > 'Z' && str[i] < 'a' ) || str[i] > 'z' ) + { + str[i] = replacement_char; + } + i++; + } +} diff --git a/src/miscellaneous.h b/src/miscellaneous.h index 266fb95..9245b67 100644 --- a/src/miscellaneous.h +++ b/src/miscellaneous.h @@ -52,4 +52,21 @@ void strlower( char* str ); */ u64 str_ascii_number_to_ll( char* ); +void Determine_C_B_nomenclature( u64, char*, int ); +void convert_seconds_to_hours_minutes_seconds( u64, int*, int*, int* ); +int nwipe_strip_path( char*, char* ); + +/** + * Scan a string and replace any characters that are not alpha-numeric with + * the character_char. + * Example: + * char str[] = 18:21:56; + * calling the function replace_non_alphanumeric( &str, '_' ) + * would result in str changing from 18:21:56 to 18_21_56 + * @param character pointer to the string to be processed + * @param replacement_char the character used to replace non alpha-numeric characters + * @return void + */ +void replace_non_alphanumeric( char* str, char replacement_char ); + #endif /* HPA_DCO_H_ */ diff --git a/src/nwipe.c b/src/nwipe.c index c59e016..830fe56 100644 --- a/src/nwipe.c +++ b/src/nwipe.c @@ -42,6 +42,7 @@ #include "logging.h" #include "gui.h" #include "temperature.h" +#include "miscellaneous.h" #include /* FIXME: Twice Included */ #include diff --git a/src/redcross.jpg b/src/redcross.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88fffe9ec2372d24fd2bfa589360dff6fda666cf GIT binary patch literal 60331 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%0Dj=}hpCD}w&pITlhSGeK|0)4`D3q! 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

61H z>)3el$~wCrQ!0AgY42z#4Cw|{5zj-*8eEB}oz_HTG=?i)Wg#@qXY~e7kIr%+fG&KS4Hn# zV{$pU(nG{lY`cE(|33k450UT<#Iw~xL>Ut$6dg&FZ=QLhaS12niVy<)pA z%>`mhp}5?m&M*y@0G0Nrt@)4=J;ixKx)#|9q{%$uO#%8V(#!Ggr!O8%=x1arI6=WN zxX{l_b%YTA08mqsqq40TU`n_OWI)SbfydvbiX(*skQn|41wIgfO1u;lh=GK1aZicS zl8syh&?OxH`k>MV8V=`3kd={A>2th&=&X!_Y4f#&9`wV)0c{A_^NKV85+)xjLb~>e zc0(oa-mu4z%`Pl=3oEkV_UH%1=1Ix=0i&w-6DUk`pI;!wPAuJmUNxc0(!+sk`EaciluM4f(8k zqEA(7P=#_KEk=U^rUCT){{XdRjVu$>tik2h4)L{UldKWqu-e_L6{J=}ea94jYDbvi z*{ShsGQw;#h0%iJL_Dn7fD*37IuRDLboH6_=n2wkpw@6jv444r$AuAjLg|qLGMN8Ut5ihJ4PlDM){-Ye;?$%CurlN&w!O<3L$kym8dcD#wQ7 ze+Ee)EMJGs8DKyN1H~kvaxfVanv84Bdz@Y=Xk;1_lB8vke9(r=E~B^VfQbNrjd|-K zmIT{8I`(UP=q`8KoP^9mQ|m;N3D5A*WH95Ju$eb}!R~@KXG+36umNUM2*I?#_BueZ zb~YaOpGrUh=)Uk z`zv>ij;2h=O!sj>02T@bEtp-e<)B_;U{^vrJhqn41$T zpfw+;t$34euDvZEYLjF8;rn~ic>@$j&lmx5mqdWujV05?^X628?QyL>m@6vMF#_-f zICdrr`x_lZM`BvG?LZjN0sx~)0v&^AEdnJC^7GJ1B8GWFQ|fI>PC^8hy~<>h4BW*x zK7<%)PQAg+EW-B>1c7M2_=EO>i7=Spp6wV5;*f(E_c6jTeIu}k>{{XE= zJtUeJM3FZA2x5kLu!)A=q90!?u>K)wANj2Z;Ya{5%sCxIb)lMSnS~(xTx(KU!pgNJ z@)QA1Q(y}IAnF4y^*Ex) zct(~=jnc;LPKX1Zwjq&m6y}^^q|N{`!8?2V)4)tB$5hVf8nh0yT2`u_IrO{Z~RvqNGaiotV_4jfG{)UD6E#Y7&=8y1eS0fE9QP)~NfW|F$aCP%g?t&0hV!hFQjx$p<5TfNBDG&nXF-2fXG@hxh3LOWA zt`o!=Dkh{`w)Gt&6QxiH6eDpfU!C9(c~ZH_Ix8(;SWb9y?RxRT%nB0MX zp`+1wpc)hoN>%nZYbZl6`af=>?0ww^tHmGET^HW%#Ren~DsUBfIW6SV&hOBql?t_P zl%Y89$x702EH@oWK5t}j&_fWGFI_(MGGGo)sxe5Kl_%w9T(}ecr5%ElNSl+eK2GsD`Ey24+4C=rBDyScf|PfhNIr#roj)7)k2t3cd#HCh3^ zD`hYZhVJiB$WZ`gXx>O0C+ES{iO0pO!{&?t1Ob5hcCezzq?ew@^O|y-qQ`Zq%?IN| zBu;5z3Drpm(TO&q#JXAI{?jbUTzYfbf%U?%$@)@8IxHP;U@B#A6YKYL zMZ6weAf$6e^`GB8K$fz~Ao1L9w%!JAM_MgBZqO1y@B>5Yw4j0l#glQTX9Z$7IzJ6W z+eZ{E;X{t#Yerb_hmq>8M3G@Aj8wcWzvVCyBMQ+PGVEA5ALP*{0^9lVNg_sFgYZxY zX$t{T-~rocTX(C5n+KlmHmp(jqA_XrABqfuI|tS}b0z`0(3D+dws_5B^E763jEyFP z6ADZTq%?$Rx!F6_ys{eJyFF1*iY3ISL%6dv?AeSn{M;GAgvf$GCABr#l5C#fL0}4C7`xI5rcU@%azf{_iP_D@-7?^ifDr+e~w9(Zb-uE;SOy0ZS3LdG??Z*WnU~h_##s zdpYunCmDbVT5n84Vr(kqRz8@!N~Kj>tJF8PWi6kY1|$jqG^WzztV^M*#Rf0C0gzmx zOnpOY?4;O1q!)9VDaZv4d*su{G|j-Ch3tik8&(+cnq%4IJ!5wz40DoU`)YGQ5W+ff z%|aV;AJ45oMlm_{>OFt}8p`x-gbhWNF#^8>P$cqQcF=A=mOcCh)4f@L$56n_kKl9R zy)hz64Z+Ki@314BPX)Y_3dji76K zoC6jlVMBf7S>BTglY23XMzZr#d5a|;bxUP^8aSxVG=z<2$u44Kn#0}Ks8V@18(%Gw|YNsjXdz$k0R7v%PV=j zr5U3VnrbA!0-)oFuyp~i*-+TzQk^Wzh?>L%nJ=0GNpo_$8k(A#nwwO`XGhE@yH@B3 z%e9uLkIZld)$BEr1{InkV)rQ$hK*Ms6V$6JeBmuDqAPhra4ub~o7yP1bRsid2Ek%# zQ=bM})MXyt&NmdnO2U%de-sc3E+&p9!4cXq_M~7zgh)rDg+wQEf-wY!k8s{{T&0D&7ciH)yUJwq4e+(y+10=u?AXju#B>1ln#LBr#Z5Wf|)NaKx;fv_O-{ zLE{m@Q$lGdAJa5HlN<18n0fSf^&3Rzty2X3NS^MNp?7bEa;*dwXC-{lX;DWIi6(}m z+OX)CYbqYJ7QE$Pa=}Op5qZNC*Ty*3p!B4lU@APKHgGSC!l|NNfEIjl6@%l z`+)=J_oYj`XlHf!=*+ng;|JQ12w~Y7JfNB`fhpEAC*14Wmy<%Id-_kdIPkb|1kwyqEXYE^ zeOu(AJ3yrOcV2k4z2`=A9OZ1dF{XJ0dK1Iu2ThfpG!*=vy+y zv(&vzS=bKKOA&W3nk>oN^}IF1{_FErQ1cW%Vr~jjF9PkolvfrA4@1E!L`4@8f(OJK ziKf)J)k;E~7GS`N?p3=~INUdSG{TZTq}I>|GI2T%SSc8HQN|1`Jc)i9ifA4FOL1wPw6)V_j%k>u3ooB)JFapIgbcM{Iu?Kt$nAs-?< zQ~3I_O%SDQ);_3ik~Eri1?rY1%SX+qkh=kb^`wZ{5yaUgh`W{x&Wah?&IwgXDGQtkY9Rv UO^G}l2&YI2Aeh)_fAOFH*->*uGXMYp literal 0 HcmV?d00001 diff --git a/src/te.jpg b/src/te.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3710146e4b84bc805b9cdc74357d83426bc6633d GIT binary patch literal 54896 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 literal 0 HcmV?d00001