15 Mar 2008 DeepNorth   » (Journeyer)

The base64 source code that I released in 2001 (http://base64.sourceforge.net/b64.c) has found very wide application and is used in remarkably diverse software. Below are some examples.

In the preamble to the code, I say that 'Generally' "This program is designed to survive:" I would say that it has done admirably in that regard. However, it is not form, nor even function that I think is responsible for its travel. It is a combination of there being few reasonable alternatives, this *being* a reasonable alternative AND the function itself is ubiquitous. Nearly every kind of non-trivial software eventually deals with mail (there is an old programmer's joke about this) and mail means attachments and attachments mean MIME and MIME means base64 encoding. Chances are; this is not even that well traveled as such. It may just be the 'luck of the draw' that there are so many requirements for this that mine was adopted by chance. I like to think the fact that there were (and are), no known bugs after seven years of use has something to do with it. I also fancy it was well written. I like to think it pleased other programmers, as it was intended to do. YMMV. Note that at least *some* of these programmers had a clue.

Editing application The World Wide Web consortium's HTML editor. This is the body responsible for setting the standards for web pages on the Internet http://dev.w3.org/cvsweb/Amaya/thotlib/dialogue/base64.cpp?rev=1.4&content-type=text/x-cvsweb-markup

Secure Operating System Stanford University -- Histar Secure Operating System. http://www.scs.stanford.edu/histar/jos64/lib/base64.c

Gammu utility and library for mobile phones http://cihar.com/gammu/docs/coding_8c.html

WebClaire Claire language kernel. http://www.claire-language.com/cgi-bin/trac.cgi/browser/trunk/xl/kernel/clSystem.cpp?rev=1667

Asterisk Voice over IP Appliance (http://www.digium.com) http://svn.digium.com/view/asterisk/team/group/xcon_bfcp/apps/xcon_bfcp/bfcp_base64.c?view=markup

ziproxy -- HTTP proxy server http://ziproxy.sourceforge.net/

Epona Internet Relay Chat (IRC) libraries http://bugs.epona.org/cgi-bin/trac.cgi/browser/libraries/misc/base64.cc

Word Document to PDF file converter http://doc2pdf.sourceforge.net/

Colorado State University Network Security -- Reflected DNS daemon https://www.netsec.colostate.edu/dnsmonitor/files/README

OpenQM post-relational database http://www.openqm.org/downloads/readme.txt

HDTV Set Top Box (Digital Television) http://www.pacemicro.com/media/americas/PDF/manuals/tdc575d_manual.pdf

WinRSA -- Public key encryption for Windows http://users.cs.cf.ac.uk/Antonia.J.Jones/Freeware/Encryption/licence.txt

Partman-Crypto (use in Debian Installer -- http://en.wikipedia.org/wiki/Debian-Installer) Note that the b64.c code is used in a number of places in most major Linux Distributions. http://packages.debian.org/changelogs/pool/main/p/partman-crypto/partman-crypto_24/copyright

SMTP Stress Testing Tool http://xstress.sourceforge.net/

Philips Flat Panel Television Sets (i.e. http://www.p4c.philips.com/files/4/47pfl5432d_37/47pfl5432d_37_pss_aen.pdf) http://www.p4c.philips.com/files/4/47pfl5432d_37/47pfl5432d_37_osr_aen.txt

Technical University of Denmark, Key Management in Cryptographic Access Control (Thesis) http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/4447/pdf/imm4447.pdf

eMail -- Command line SMTP email utility. http://svn.cleancode.org/svn/email/src/mimeutils.c

Recommended by IBM for use with IBM Communications Server http://www.redbooks.ibm.com/redbooks/pdfs/sg247340.pdf

Spam Decoding Tools http://www.futuresoft.dk/mirrors/spamlinks.net/tools-deobfuscate.htm

Research Software http://portal.acm.org/citation.cfm?id=1151835&jmp=cit&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618

Voice over IP telephony (software telephone) openwengo http://dev.openwengo.com/trac/openwengo/trac.cgi/browser/wifo/trunk/eXosip/src/base64.c

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!