FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 12-21-2011, 09:48 PM
Diogo Sousa
 
Default Created hex_representation() in lib/libalpm/util.c which is used in alpm_compute_md5sum() and alpm_compute_sha256sum().

Created hex_representation() in lib/libalpm/util.c which is
used in alpm_compute_md5sum() and alpm_compute_sha256sum().

Signed-off-by: Diogo Sousa <diogogsousa@gmail.com>
---
lib/libalpm/util.c | 56 ++++++++++++++++++++++++++--------------------------
1 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 4eeb0cd..2fe6087 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -917,7 +917,30 @@ static int sha2_file(const char *path, unsigned char output[32], int is224)
}
#endif

-static const char *hex_digits = "0123456789abcdef";
+/** Create a string representing bytes in hexadecimal.
+ *
+ * @param bytes the bytes to represent in hexadecimal.
+ * @param size number of bytes to consider.
+ * @return a nul terminated string with the hexadecimal representation
+ * of bytes or NULL on error. This string must be freed.
+ */
+static char *hex_representation(unsigned char *bytes, size_t size)
+{
+ static const char *hex_digits = "0123456789abcdef";
+ char *str;
+ int i;
+
+ MALLOC(str, 2*size+1, return NULL);
+
+ for (i=0; i < size; i++) {
+ str[2*i] = hex_digits[bytes[i] >> 4];
+ str[2*i+1] = hex_digits[bytes[i] & 0x0f];
+ }
+
+ str[2*size] = '';
+
+ return str;
+}

/** Get the md5 sum of file.
* @param filename name of the file
@@ -927,29 +950,17 @@ static const char *hex_digits = "0123456789abcdef";
char SYMEXPORT *alpm_compute_md5sum(const char *filename)
{
unsigned char output[16];
- char *md5sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(md5sum, (size_t)33, return NULL);
- /* defined above for OpenSSL, otherwise defined in md5.h */
ret = md5_file(filename, output);

if(ret > 0) {
- free(md5sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 16; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- md5sum[pos] = hex_digits[output[i] >> 4];
- md5sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- md5sum[32] = '';
- return md5sum;
+ return hex_representation(output,16);
}

/** Get the sha256 sum of file.
@@ -960,29 +971,18 @@ char SYMEXPORT *alpm_compute_md5sum(const char *filename)
char SYMEXPORT *alpm_compute_sha256sum(const char *filename)
{
unsigned char output[32];
- char *sha256sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(sha256sum, (size_t)65, return NULL);
/* defined above for OpenSSL, otherwise defined in sha2.h */
ret = sha2_file(filename, output, 0);

if(ret > 0) {
- free(sha256sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 32; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- sha256sum[pos] = hex_digits[output[i] >> 4];
- sha256sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- sha256sum[64] = '';
- return sha256sum;
+ return hex_representation(output,32);
}

/** Calculates a file's MD5 or SHA2 digest and compares it to an expected value.
--
1.7.8
 
Old 12-21-2011, 10:02 PM
Diogo Sousa
 
Default Created hex_representation() in lib/libalpm/util.c which is used in alpm_compute_md5sum() and alpm_compute_sha256sum().

Created hex_representation() in lib/libalpm/util.c which is
used in alpm_compute_md5sum() and alpm_compute_sha256sum().

Signed-off-by: Diogo Sousa <diogogsousa@gmail.com>
---
lib/libalpm/util.c | 56 ++++++++++++++++++++++++++--------------------------
1 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 4eeb0cd..2fe6087 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -917,7 +917,30 @@ static int sha2_file(const char *path, unsigned char output[32], int is224)
}
#endif

-static const char *hex_digits = "0123456789abcdef";
+/** Create a string representing bytes in hexadecimal.
+ *
+ * @param bytes the bytes to represent in hexadecimal.
+ * @param size number of bytes to consider.
+ * @return a nul terminated string with the hexadecimal representation
+ * of bytes or NULL on error. This string must be freed.
+ */
+static char *hex_representation(unsigned char *bytes, size_t size)
+{
+ const char *hex_digits = "0123456789abcdef";
+ char *str;
+ int i;
+
+ MALLOC(str, 2 * size + 1, return NULL);
+
+ for (i=0; i < size; i++) {
+ str[2 * i] = hex_digits[bytes[i] >> 4];
+ str[2 * i + 1] = hex_digits[bytes[i] & 0x0f];
+ }
+
+ str[2 * size] = '';
+
+ return str;
+}

/** Get the md5 sum of file.
* @param filename name of the file
@@ -927,29 +950,17 @@ static const char *hex_digits = "0123456789abcdef";
char SYMEXPORT *alpm_compute_md5sum(const char *filename)
{
unsigned char output[16];
- char *md5sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(md5sum, (size_t)33, return NULL);
- /* defined above for OpenSSL, otherwise defined in md5.h */
ret = md5_file(filename, output);

if(ret > 0) {
- free(md5sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 16; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- md5sum[pos] = hex_digits[output[i] >> 4];
- md5sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- md5sum[32] = '';
- return md5sum;
+ return hex_representation(output, 16);
}

/** Get the sha256 sum of file.
@@ -960,30 +971,18 @@ char SYMEXPORT *alpm_compute_md5sum(const char *filename)
char SYMEXPORT *alpm_compute_sha256sum(const char *filename)
{
unsigned char output[32];
- char *sha256sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(sha256sum, (size_t)65, return NULL);
/* defined above for OpenSSL, otherwise defined in sha2.h */
ret = sha2_file(filename, output, 0);

if(ret > 0) {
- free(sha256sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 32; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- sha256sum[pos] = hex_digits[output[i] >> 4];
- sha256sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- sha256sum[64] = '';
- return sha256sum;
+ return hex_representation(output, 32);
}

/** Calculates a file's MD5 or SHA2 digest and compares it to an expected value.
--
1.7.8
 
Old 12-21-2011, 10:31 PM
Diogo Sousa
 
Default Created hex_representation() in lib/libalpm/util.c which is used in alpm_compute_md5sum() and alpm_compute_sha256sum().

[PATCH] Created hex_representation() in lib/libalpm/util.c which is
used in alpm_compute_md5sum() and alpm_compute_sha256sum().


Signed-off-by: Diogo Sousa <diogogsousa@gmail.com>
---
lib/libalpm/util.c | 56 ++++++++++++++++++++++++++--------------------------
1 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 4eeb0cd..399331a 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -917,7 +917,30 @@ static int sha2_file(const char *path, unsigned char output[32], int is224)
}
#endif

-static const char *hex_digits = "0123456789abcdef";
+/** Create a string representing bytes in hexadecimal.
+ *
+ * @param bytes the bytes to represent in hexadecimal.
+ * @param size number of bytes to consider.
+ * @return a nul terminated string with the hexadecimal representation
+ * of bytes or NULL on error. This string must be freed.
+ */
+static char *hex_representation(unsigned char *bytes, size_t size)
+{
+ static const char *hex_digits = "0123456789abcdef";
+ char *str;
+ int i;
+
+ MALLOC(str, 2 * size + 1, return NULL);
+
+ for (i = 0; i < size; i++) {
+ str[2 * i] = hex_digits[bytes[i] >> 4];
+ str[2 * i + 1] = hex_digits[bytes[i] & 0x0f];
+ }
+
+ str[2 * size] = '';
+
+ return str;
+}

/** Get the md5 sum of file.
* @param filename name of the file
@@ -927,29 +950,17 @@ static const char *hex_digits = "0123456789abcdef";
char SYMEXPORT *alpm_compute_md5sum(const char *filename)
{
unsigned char output[16];
- char *md5sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(md5sum, (size_t)33, return NULL);
- /* defined above for OpenSSL, otherwise defined in md5.h */
ret = md5_file(filename, output);

if(ret > 0) {
- free(md5sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 16; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- md5sum[pos] = hex_digits[output[i] >> 4];
- md5sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- md5sum[32] = '';
- return md5sum;
+ return hex_representation(output, 16);
}

/** Get the sha256 sum of file.
@@ -960,29 +971,18 @@ char SYMEXPORT *alpm_compute_md5sum(const char *filename)
char SYMEXPORT *alpm_compute_sha256sum(const char *filename)
{
unsigned char output[32];
- char *sha256sum;
- int ret, i;
+ int ret;

ASSERT(filename != NULL, return NULL);

- MALLOC(sha256sum, (size_t)65, return NULL);
/* defined above for OpenSSL, otherwise defined in sha2.h */
ret = sha2_file(filename, output, 0);

if(ret > 0) {
- free(sha256sum);
return NULL;
}

- /* Convert the result to something readable */
- for(i = 0; i < 32; i++) {
- int pos = i * 2;
- /* high 4 bits are first digit, low 4 are second */
- sha256sum[pos] = hex_digits[output[i] >> 4];
- sha256sum[pos + 1] = hex_digits[output[i] & 0x0f];
- }
- sha256sum[64] = '';
- return sha256sum;
+ return hex_representation(output, 32);
}

/** Calculates a file's MD5 or SHA2 digest and compares it to an expected value.
--
1.7.8
 

Thread Tools




All times are GMT. The time now is 07:18 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org