Code Monkey home page Code Monkey logo

hexcodec's Introduction

hexcodec.h

hexadecimal encoding/decoding header library.


void hex_encode( unsigned char *dest, unsigned char *src, size_t len )

hex_encode() function encode the len bytes from src and copy encoded bytes to the dest.

Parameters

  • *dest: dest size must be greater than len * 2.
  • *src: source string.
  • len: byte length of src.

int hex_decode( char *dest, unsigned char *src, size_t len )

hex_encode() function encode the len bytes from src and copy encoded bytes to the dest.

Parameters

  • *dest: dest size must be greater than len / 2.
  • *src: encoded string.
  • len: byte length of src. (this value must be multiples of two.)

Return Values

returns 0 on success, or -1 on failure.

Errors

  • EINVAL: len value is not multiples of two.
  • EILSEQ: src contained an illegal character.

Usage

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "hexcodec.h"

int main (int argc, const char * argv[])
{
    char *src = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
    size_t len = strlen( src );
    size_t hlen = len * 2;
    char *enc = alloca( hlen + 1 );
    char *dec = alloca( len + 1 );
    
    // encode
    printf("encode:\n\t%s\n", src );
    hex_encode( (unsigned char*)enc, (unsigned char*)src, len );
    enc[hlen] = 0;
    printf("\t%s\n\n", enc );
    
    // decode
    printf("decode:\n\t%s\n", enc );
    assert( hex_decode( dec, (unsigned char*)enc, hlen ) == 0 );
    dec[len] = 0;
    printf("\t%s\n", dec );
    
    assert( memcmp( src, dec, len ) == 0 );
    
    return 0;
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.