/* * util.c * * Utilities used by the test apps * * John A. Foley * Cisco Systems, Inc.
*/ /* * * Copyright (c) 2014-2017, Cisco Systems, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of the Cisco Systems, Inc. nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. *
*/
#include"config.h" #include"util.h"
#include <string.h> #include <stdint.h>
/* include space for null terminator */ staticchar bit_string[MAX_PRINT_STRING_LEN + 1];
staticinlineint hex_char_to_nibble(uint8_t c)
{ switch (c) { case ('0'): return0x0; case ('1'): return0x1; case ('2'): return0x2; case ('3'): return0x3; case ('4'): return0x4; case ('5'): return0x5; case ('6'): return0x6; case ('7'): return0x7; case ('8'): return0x8; case ('9'): return0x9; case ('a'): return0xa; case ('A'): return0xa; case ('b'): return0xb; case ('B'): return0xb; case ('c'): return0xc; case ('C'): return0xc; case ('d'): return0xd; case ('D'): return0xd; case ('e'): return0xe; case ('E'): return0xe; case ('f'): return0xf; case ('F'): return0xf; default: return -1; /* this flags an error */
} /* NOTREACHED */ return -1; /* this keeps compilers from complaining */
}
/* * hex_string_to_octet_string converts a hexadecimal string * of length 2 * len to a raw octet string of length len
*/ int hex_string_to_octet_string(char *raw, char *hex, int len)
{
uint8_t x; int tmp; int hex_len;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.