diff options
author | Ben Pfaff <blp@nicira.com> | 2010-11-15 10:18:10 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2010-11-15 10:18:10 -0800 |
commit | bf9712678fc9ec85bf2ac54407e16d76aa22e7b6 (patch) | |
tree | 2052e512f4606aad7ec50bea03ccf33118e0b44a /lib/sha1.c | |
parent | 96fc46e8fdafd6467906e11e0fb493e2b78f2fb5 (diff) |
util: Add function hexits_value() for parsing multiple hex digits.
Suggested-by: Justin Pettit <jpettit@nicira.com>
Diffstat (limited to 'lib/sha1.c')
-rw-r--r-- | lib/sha1.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1,7 +1,7 @@ /* * This file is from the Apache Portable Runtime Library. * The full upstream copyright and license statement is included below. - * Modifications copyright (c) 2009 Nicira Networks. + * Modifications copyright (c) 2009, 2010 Nicira Networks. */ /* Licensed to the Apache Software Foundation (ASF) under one or more @@ -301,10 +301,12 @@ sha1_from_hex(uint8_t digest[SHA1_DIGEST_SIZE], const char *hex) int i; for (i = 0; i < SHA1_DIGEST_SIZE; i++) { - if (!isxdigit(hex[0]) || !isxdigit(hex[1])) { + bool ok; + + digest[i] = hexits_value(hex, 2, &ok); + if (!ok) { return false; } - digest[i] = (hexit_value(hex[0]) << 4) | hexit_value(hex[1]); hex += 2; } return true; |