Ejemplo n.º 1
0
/* Tests the libcthreads_get_version function
 * Returns 1 if successful or 0 if not
 */
int cthreads_test_get_version(
     void )
{
	const char *version_string = NULL;
	int result                 = 0;

	version_string = libcthreads_get_version();

	result = narrow_string_compare(
	          version_string,
	          LIBCTHREADS_VERSION_STRING,
	          9 );

	CTHREADS_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 0 );

	return( 1 );

on_error:
	return( 0 );
}
Ejemplo n.º 2
0
/* Tests the libftxf_get_version function
 * Returns 1 if successful or 0 if not
 */
int ftxf_test_get_version(
     void )
{
	const char *version_string = NULL;
	int result                 = 0;

	version_string = libftxf_get_version();

	result = narrow_string_compare(
	          version_string,
	          LIBFTXF_VERSION_STRING,
	          9 );

	FTXF_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 0 );

	return( 1 );

on_error:
	return( 0 );
}
Ejemplo n.º 3
0
/* Tests the libcnotify_get_version function
 * Returns 1 if successful or 0 if not
 */
int cnotify_test_get_version(
     void )
{
	const char *version_string = NULL;
	int result                 = 0;

	version_string = libcnotify_get_version();

	result = narrow_string_compare(
	          version_string,
	          LIBCNOTIFY_VERSION_STRING,
	          9 );

	CNOTIFY_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 0 );

	return( 1 );

on_error:
	return( 0 );
}
Ejemplo n.º 4
0
/* Sets the digest specified by the identifier from the hash values
 * Returns 1 if successful or -1 on error
 */
int libewf_hash_sections_set_digest_from_hash_values(
     libewf_hash_sections_t *hash_sections,
     const uint8_t *identifier,
     size_t identifier_length,
     libfvalue_table_t *hash_values,
     libcerror_error_t **error )
{
	static char *function = "libewf_hash_sections_set_digest_from_hash_values";

	if( hash_sections == NULL )
	{
		libcerror_error_set(
		 error,
		 LIBCERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBCERROR_ARGUMENT_ERROR_INVALID_VALUE,
		 "%s: invalid hash sections.",
		 function );

		return( -1 );
	}
	if( ( identifier_length == 3 )
	 && ( narrow_string_compare(
	       (char *) identifier,
	       "MD5",
	       identifier_length ) == 0 ) )
	{
		if( libewf_hash_values_generate_md5_hash(
		     hash_values,
		     hash_sections->md5_hash,
		     16,
		     &( hash_sections->md5_hash_set ),
		     error ) != 1 )
		{
			libcerror_error_set(
			 error,
			 LIBCERROR_ERROR_DOMAIN_RUNTIME,
			 LIBCERROR_RUNTIME_ERROR_SET_FAILED,
			 "%s: unable to parse MD5 hash value for its value.",
			 function );

			return( -1 );
		}
		if( libewf_hash_values_generate_md5_hash(
		     hash_values,
		     hash_sections->md5_digest,
		     16,
		     &( hash_sections->md5_digest_set ),
		     error ) != 1 )
		{
			libcerror_error_set(
			 error,
			 LIBCERROR_ERROR_DOMAIN_RUNTIME,
			 LIBCERROR_RUNTIME_ERROR_SET_FAILED,
			 "%s: unable to parse MD5 hash value for its value.",
			 function );

			return( -1 );
		}
	}
	else if( ( identifier_length == 4 )
	      && ( narrow_string_compare(
		    (char *) identifier,
		    "SHA1",
		    identifier_length ) == 0 ) )
	{
		if( libewf_hash_values_generate_sha1_hash(
		     hash_values,
		     hash_sections->sha1_hash,
		     20,
		     &( hash_sections->sha1_hash_set ),
		     error ) != 1 )
		{
			libcerror_error_set(
			 error,
			 LIBCERROR_ERROR_DOMAIN_RUNTIME,
			 LIBCERROR_RUNTIME_ERROR_SET_FAILED,
			 "%s: unable to parse SHA1 hash value for its value.",
			 function );

			return( -1 );
		}
		if( libewf_hash_values_generate_sha1_hash(
		     hash_values,
		     hash_sections->sha1_digest,
		     20,
		     &( hash_sections->sha1_digest_set ),
		     error ) != 1 )
		{
			libcerror_error_set(
			 error,
			 LIBCERROR_ERROR_DOMAIN_RUNTIME,
			 LIBCERROR_RUNTIME_ERROR_SET_FAILED,
			 "%s: unable to parse SHA1 hash value for its value.",
			 function );

			return( -1 );
		}
	}
	return( 1 );
}
Ejemplo n.º 5
0
/* Retrieves the index for a certain identifier
 * Returns 1 if successful, 0 if no index was found or -1 on error
 */
int libewf_values_table_get_index(
     libewf_values_table_t *values_table,
     const uint8_t *identifier,
     size_t identifier_length,
     int *index,
     liberror_error_t **error )
{
	static char *function     = "libewf_values_table_get_index";
	int values_table_iterator = 0;

	if( values_table == NULL )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
		 "%s: invalid values table.",
		 function );

		return( -1 );
	}
	if( values_table->amount_of_values < 0 )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_VALUE_LESS_THAN_ZERO,
		 "%s: invalid values table amount value less than zero.",
		 function );

		return( -1 );
	}
	if( identifier == NULL )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
		 "%s: invalid identifier.",
		 function );

		return( -1 );
	}
	if( identifier_length == 0 )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_VALUE_ZERO_OR_LESS,
		 "%s: invalid identifier length value is zero.",
		 function );

		return( -1 );
	}
	if( identifier_length > (size_t) SSIZE_MAX )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_VALUE_EXCEEDS_MAXIMUM,
		 "%s: invalid identifier length value exceeds maximum.",
		 function );

		return( -1 );
	}
	if( index == NULL )
	{
		liberror_error_set(
		 error,
		 LIBERROR_ERROR_DOMAIN_ARGUMENTS,
		 LIBERROR_ARGUMENT_ERROR_INVALID_VALUE,
		 "%s: invalid index.",
		 function );

		return( -1 );
	}
	for( values_table_iterator = 0; values_table_iterator < values_table->amount_of_values; values_table_iterator++ )
	{
		if( values_table->identifier[ values_table_iterator ] == NULL )
		{
			liberror_error_set(
			 error,
			 LIBERROR_ERROR_DOMAIN_RUNTIME,
			 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
			 "%s: missing identifier for index: %d.",
			 function,
			 values_table_iterator );

			continue;
		}
		if( values_table->identifier_length[ values_table_iterator ] == 0 )
		{
			liberror_error_set(
			 error,
			 LIBERROR_ERROR_DOMAIN_RUNTIME,
			 LIBERROR_RUNTIME_ERROR_VALUE_MISSING,
			 "%s: missing identifier length for index: %d.",
			 function,
			 values_table_iterator );

			continue;
		}
		if( values_table->identifier_length[ values_table_iterator ] != identifier_length )
		{
			continue;
		}
		if( narrow_string_compare(
		     (char *) identifier,
		     (char *) values_table->identifier[ values_table_iterator ],
		     identifier_length ) == 0 )
		{
			*index = values_table_iterator;

			return( 1 );
		}
	}
	return( 0 );
}
/* Tests the libcdirectory_directory_entry_get_name function
 * Returns 1 if successful or 0 if not
 */
int cdirectory_test_directory_entry_get_name(
     void )
{
	libcdirectory_directory_t *directory             = NULL;
	libcdirectory_directory_entry_t *directory_entry = NULL;
	libcerror_error_t *error                         = NULL;
	char *entry_name                                 = NULL;
	int result                                       = 0;

	/* Initialize test
	 */
	result = libcdirectory_directory_initialize(
	          &directory,
	          &error );

	result = libcdirectory_directory_open(
	          directory,
	          ".",
	          &error );

	result = libcdirectory_directory_entry_initialize(
	          &directory_entry,
	          &error );

	result = libcdirectory_directory_has_entry(
	          directory,
	          directory_entry,
	          "Makefile.am",
	          11,
	          LIBCDIRECTORY_ENTRY_TYPE_FILE,
	          0,
	          &error );

	/* Test retrieving the name of a directory entry
	 */
	result = libcdirectory_directory_entry_get_name(
	          directory_entry,
	          &entry_name,
	          &error );

	CDIRECTORY_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 1 );

	CDIRECTORY_TEST_ASSERT_IS_NULL(
	 "error",
	 error );

	result = narrow_string_compare(
	          entry_name,
	          "Makefile.am",
	          11 );

	CDIRECTORY_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 0 );

	/* Test error cases
	 */
	result = libcdirectory_directory_entry_get_name(
	          NULL,
	          &entry_name,
	          &error );

	CDIRECTORY_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 -1 );

	CDIRECTORY_TEST_ASSERT_IS_NOT_NULL(
	 "error",
	 error );

	libcerror_error_free(
	 &error );

	result = libcdirectory_directory_entry_get_name(
	          directory_entry,
	          NULL,
	          &error );

	CDIRECTORY_TEST_ASSERT_EQUAL_INT(
	 "result",
	 result,
	 -1 );

	CDIRECTORY_TEST_ASSERT_IS_NOT_NULL(
	 "error",
	 error );

	libcerror_error_free(
	 &error );

	/* Clean up
	 */
	result = libcdirectory_directory_entry_free(
	          &directory_entry,
	          NULL );

	result = libcdirectory_directory_free(
	          &directory,
	          NULL );

	return( 1 );

on_error:
	if( error != NULL )
	{
		libcerror_error_free(
		 &error );
	}
	if( directory_entry != NULL )
	{
		libcdirectory_directory_entry_free(
		 &directory_entry,
		 NULL );
	}
	if( directory != NULL )
	{
		libcdirectory_directory_free(
		 &directory,
		 NULL );
	}
	return( 0 );
}