base64 RFC1113 Vanilla ANSI-C Code for a portable stand-alone file encode/decode utility. In 2001, I asked people to 'Help me break it!' Since then, 10+years later, the code remains unbroken and is in wide production use world-wide. It has been ported to all major architectures and been used as a template for ports to different computer and human languages. This is very mature and stable code.
Although this comes from a project that was constrained by export controls and is used in secure systems, it is not security code per-se. I have therefore altered the 'Export Controls' category.
License
MIT LicenseFollow b64 -- Base64 Encode/Decode Utility
You Might Also Like
Red Hat Enterprise Linux (RHEL) on Microsoft Azure provides a secure, reliable, and flexible foundation for your cloud infrastructure. Red Hat Enterprise Linux on Microsoft Azure is ideal for enterprises seeking to enhance their cloud environment with seamless integration, consistent performance, and comprehensive support.
Rate This Project
Login To Rate This Project
User Reviews
-
Thank you! I finally was able to recover images from the 1990's which were saved as attachments in a Windows 98 version of Eudora -- the only version left after a series of disasters.
-
simple, straightforward, no bells & whistles to break. I've built & used this on Windows (both cmd.exe & cygwin,) 2 flavors of linux, and OS X. I just compiled v0.94R on OS X El Cap with g++ 7.3.0. Only issue noted: 7 x "warning: conversion from string literal to 'char *' is deprecated". You could do much worse.
-
works great only a minor bug if out[i] contains 0x00 it will not write to outfile and fail. In order to fix this, change "if( putc( (int)(out[i]), outfile ) == 0 )" to "if( putc( (int)(out[i]), outfile ) == EOF )"
-
it's good source
-
I had to apply some changes to work on Linux and Windows: The '-' and '+' means line removed and line included. 1. change for unix files. if( blocksout > 0 ) { - fprintf( outfile, "\r\n" ); + fprintf( outfile, "\n" ); } 2. change v = getc( infile ); - if( v != EOF ) { + if( feof( infile ) == 0) { v = ((v < 43 || v > 122) ? 0 : (int) cd64[ v - 43 ]); 3. change in the break position perror( b64_message( B64_FILE_IO_ERROR ) ); retcode = B64_FILE_IO_ERROR; + break; } - break;