147bcbde9SPiotr Pawel Stefaniak.\" Copyright (c) 1980, 1990, 1993 247bcbde9SPiotr Pawel Stefaniak.\" The Regents of the University of California. All rights reserved. 347bcbde9SPiotr Pawel Stefaniak.\" 447bcbde9SPiotr Pawel Stefaniak.\" Redistribution and use in source and binary forms, with or without 547bcbde9SPiotr Pawel Stefaniak.\" modification, are permitted provided that the following conditions 647bcbde9SPiotr Pawel Stefaniak.\" are met: 747bcbde9SPiotr Pawel Stefaniak.\" 1. Redistributions of source code must retain the above copyright 847bcbde9SPiotr Pawel Stefaniak.\" notice, this list of conditions and the following disclaimer. 947bcbde9SPiotr Pawel Stefaniak.\" 2. Redistributions in binary form must reproduce the above copyright 1047bcbde9SPiotr Pawel Stefaniak.\" notice, this list of conditions and the following disclaimer in the 1147bcbde9SPiotr Pawel Stefaniak.\" documentation and/or other materials provided with the distribution. 1247bcbde9SPiotr Pawel Stefaniak.\" 3. Neither the name of the University nor the names of its contributors 1347bcbde9SPiotr Pawel Stefaniak.\" may be used to endorse or promote products derived from this software 1447bcbde9SPiotr Pawel Stefaniak.\" without specific prior written permission. 1547bcbde9SPiotr Pawel Stefaniak.\" 1647bcbde9SPiotr Pawel Stefaniak.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1747bcbde9SPiotr Pawel Stefaniak.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1847bcbde9SPiotr Pawel Stefaniak.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1947bcbde9SPiotr Pawel Stefaniak.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2047bcbde9SPiotr Pawel Stefaniak.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2147bcbde9SPiotr Pawel Stefaniak.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2247bcbde9SPiotr Pawel Stefaniak.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2347bcbde9SPiotr Pawel Stefaniak.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2447bcbde9SPiotr Pawel Stefaniak.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2547bcbde9SPiotr Pawel Stefaniak.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2647bcbde9SPiotr Pawel Stefaniak.\" SUCH DAMAGE. 2747bcbde9SPiotr Pawel Stefaniak.\" 28a8d9bd3fSBaptiste Daroussin.Dd January 8, 2025 2947bcbde9SPiotr Pawel Stefaniak.Dt BINTRANS 1 3047bcbde9SPiotr Pawel Stefaniak.Os 3147bcbde9SPiotr Pawel Stefaniak.Sh NAME 3247bcbde9SPiotr Pawel Stefaniak.Nm bintrans , 3347bcbde9SPiotr Pawel Stefaniak.Nm uuencode , 3447bcbde9SPiotr Pawel Stefaniak.Nm uudecode , 3547bcbde9SPiotr Pawel Stefaniak.Nm b64encode , 3664028ac3SDag-Erling Smørgrav.Nm b64decode , 3764028ac3SDag-Erling Smørgrav.Nm base64 3847bcbde9SPiotr Pawel Stefaniak.Nd encode / decode a binary file 3947bcbde9SPiotr Pawel Stefaniak.Sh SYNOPSIS 4047bcbde9SPiotr Pawel Stefaniak.Nm 4147bcbde9SPiotr Pawel Stefaniak.Op algorithm 4247bcbde9SPiotr Pawel Stefaniak.Op ... 4347bcbde9SPiotr Pawel Stefaniak.Nm uuencode 4447bcbde9SPiotr Pawel Stefaniak.Op Fl m 4547bcbde9SPiotr Pawel Stefaniak.Op Fl r 4647bcbde9SPiotr Pawel Stefaniak.Op Fl o Ar output_file 4747bcbde9SPiotr Pawel Stefaniak.Op Ar file 4847bcbde9SPiotr Pawel Stefaniak.Ar name 4947bcbde9SPiotr Pawel Stefaniak.Nm uudecode 5047bcbde9SPiotr Pawel Stefaniak.Op Fl cimprs 5147bcbde9SPiotr Pawel Stefaniak.Op Ar 5247bcbde9SPiotr Pawel Stefaniak.Nm uudecode 5347bcbde9SPiotr Pawel Stefaniak.Op Fl i 5447bcbde9SPiotr Pawel Stefaniak.Fl o Ar output_file 5547bcbde9SPiotr Pawel Stefaniak.Nm b64encode 5647bcbde9SPiotr Pawel Stefaniak.Op Fl r 572ad786c6SPiotr Pawel Stefaniak.Op Fl w Ar column 5847bcbde9SPiotr Pawel Stefaniak.Op Fl o Ar output_file 5947bcbde9SPiotr Pawel Stefaniak.Op Ar file 6047bcbde9SPiotr Pawel Stefaniak.Ar name 6147bcbde9SPiotr Pawel Stefaniak.Nm b64decode 6247bcbde9SPiotr Pawel Stefaniak.Op Fl cimprs 6347bcbde9SPiotr Pawel Stefaniak.Op Ar 6447bcbde9SPiotr Pawel Stefaniak.Nm b64decode 6547bcbde9SPiotr Pawel Stefaniak.Op Fl i 6647bcbde9SPiotr Pawel Stefaniak.Fl o Ar output_file 6747bcbde9SPiotr Pawel Stefaniak.Op Ar file 68540a9928SPiotr Pawel Stefaniak.Nm base64 69540a9928SPiotr Pawel Stefaniak.Op Fl d 70540a9928SPiotr Pawel Stefaniak.Op Fl w Ar column 71540a9928SPiotr Pawel Stefaniak.Op Ar file 7247bcbde9SPiotr Pawel Stefaniak.Sh DESCRIPTION 7347bcbde9SPiotr Pawel StefaniakThe 7447bcbde9SPiotr Pawel Stefaniak.Nm uuencode 7547bcbde9SPiotr Pawel Stefaniakand 7647bcbde9SPiotr Pawel Stefaniak.Nm uudecode 7747bcbde9SPiotr Pawel Stefaniakutilities are used to transmit binary files over transmission mediums 7847bcbde9SPiotr Pawel Stefaniakthat do not support other than simple 7947bcbde9SPiotr Pawel Stefaniak.Tn ASCII 8047bcbde9SPiotr Pawel Stefaniakdata. 8147bcbde9SPiotr Pawel StefaniakThe 8247bcbde9SPiotr Pawel Stefaniak.Nm b64encode 8347bcbde9SPiotr Pawel Stefaniakutility is synonymous with 8447bcbde9SPiotr Pawel Stefaniak.Nm uuencode 8547bcbde9SPiotr Pawel Stefaniakwith the 8647bcbde9SPiotr Pawel Stefaniak.Fl m 8747bcbde9SPiotr Pawel Stefaniakflag specified. 8847bcbde9SPiotr Pawel StefaniakThe 8947bcbde9SPiotr Pawel Stefaniak.Nm b64decode 9047bcbde9SPiotr Pawel Stefaniakutility is synonymous with 9147bcbde9SPiotr Pawel Stefaniak.Nm uudecode 9247bcbde9SPiotr Pawel Stefaniakwith the 9347bcbde9SPiotr Pawel Stefaniak.Fl m 9447bcbde9SPiotr Pawel Stefaniakflag specified. 9547bcbde9SPiotr Pawel Stefaniak.Pp 9647bcbde9SPiotr Pawel StefaniakThe 97540a9928SPiotr Pawel Stefaniak.Nm base64 98540a9928SPiotr Pawel Stefaniakutility acts as a base64 decoder when passed the 99540a9928SPiotr Pawel Stefaniak.Fl -decode 100540a9928SPiotr Pawel Stefaniak.Po or 101540a9928SPiotr Pawel Stefaniak.Fl d 102540a9928SPiotr Pawel Stefaniak.Pc 103540a9928SPiotr Pawel Stefaniakflag and as a base64 encoder otherwise. 104540a9928SPiotr Pawel StefaniakAs a decoder it only accepts raw base64 input 105540a9928SPiotr Pawel Stefaniakand as an encoder it does not produce the framing lines. 106540a9928SPiotr Pawel Stefaniak.Nm base64 107540a9928SPiotr Pawel Stefaniakreads standard input or 108540a9928SPiotr Pawel Stefaniak.Ar file 109540a9928SPiotr Pawel Stefaniakif it is provided and writes to standard output. 110540a9928SPiotr Pawel StefaniakOptions 111540a9928SPiotr Pawel Stefaniak.Fl -wrap 112540a9928SPiotr Pawel Stefaniak.Po or 113540a9928SPiotr Pawel Stefaniak.Fl w 114540a9928SPiotr Pawel Stefaniak.Pc 115540a9928SPiotr Pawel Stefaniakand 116540a9928SPiotr Pawel Stefaniak.Fl -ignore-garbage 117540a9928SPiotr Pawel Stefaniak.Po or 118540a9928SPiotr Pawel Stefaniak.Fl i 119540a9928SPiotr Pawel Stefaniak.Pc 120540a9928SPiotr Pawel Stefaniakare accepted for compatibility with GNU base64, 121540a9928SPiotr Pawel Stefaniakbut the latter is unimplemented and silently ignored. 122540a9928SPiotr Pawel Stefaniak.Pp 123540a9928SPiotr Pawel StefaniakThe 12447bcbde9SPiotr Pawel Stefaniak.Nm uuencode 12547bcbde9SPiotr Pawel Stefaniakutility reads 12647bcbde9SPiotr Pawel Stefaniak.Ar file 12747bcbde9SPiotr Pawel Stefaniak(or by default the standard input) and writes an encoded version 12847bcbde9SPiotr Pawel Stefaniakto the standard output, or 12947bcbde9SPiotr Pawel Stefaniak.Ar output_file 13047bcbde9SPiotr Pawel Stefaniakif one has been specified. 13147bcbde9SPiotr Pawel StefaniakThe encoding uses only printing 13247bcbde9SPiotr Pawel Stefaniak.Tn ASCII 13347bcbde9SPiotr Pawel Stefaniakcharacters and includes the 13447bcbde9SPiotr Pawel Stefaniakmode of the file and the operand 13547bcbde9SPiotr Pawel Stefaniak.Ar name 13647bcbde9SPiotr Pawel Stefaniakfor use by 13747bcbde9SPiotr Pawel Stefaniak.Nm uudecode . 13847bcbde9SPiotr Pawel Stefaniak.Pp 13947bcbde9SPiotr Pawel StefaniakThe 14047bcbde9SPiotr Pawel Stefaniak.Nm uudecode 14147bcbde9SPiotr Pawel Stefaniakutility transforms 14247bcbde9SPiotr Pawel Stefaniak.Em uuencoded 14347bcbde9SPiotr Pawel Stefaniakfiles (or by default, the standard input) into the original form. 14447bcbde9SPiotr Pawel StefaniakThe resulting file is named either 14547bcbde9SPiotr Pawel Stefaniak.Ar name 14647bcbde9SPiotr Pawel Stefaniakor (depending on options passed to 14747bcbde9SPiotr Pawel Stefaniak.Nm uudecode ) 14847bcbde9SPiotr Pawel Stefaniak.Ar output_file 14947bcbde9SPiotr Pawel Stefaniakand will have the mode of the original file except that setuid 15047bcbde9SPiotr Pawel Stefaniakand execute bits are not retained. 15147bcbde9SPiotr Pawel StefaniakThe 15247bcbde9SPiotr Pawel Stefaniak.Nm uudecode 15347bcbde9SPiotr Pawel Stefaniakutility ignores any leading and trailing lines. 15447bcbde9SPiotr Pawel Stefaniak.Pp 15547bcbde9SPiotr Pawel StefaniakThe following options are available for 15647bcbde9SPiotr Pawel Stefaniak.Nm uuencode : 1579fd66e40SGraham Percival.Bl -tag -width indent 15847bcbde9SPiotr Pawel Stefaniak.It Fl m 15947bcbde9SPiotr Pawel StefaniakUse the Base64 method of encoding, rather than the traditional 16047bcbde9SPiotr Pawel Stefaniak.Nm uuencode 16147bcbde9SPiotr Pawel Stefaniakalgorithm. 16247bcbde9SPiotr Pawel Stefaniak.It Fl r 16347bcbde9SPiotr Pawel StefaniakProduce raw output by excluding the initial and final framing lines. 16447bcbde9SPiotr Pawel Stefaniak.It Fl o Ar output_file 16547bcbde9SPiotr Pawel StefaniakOutput to 16647bcbde9SPiotr Pawel Stefaniak.Ar output_file 16747bcbde9SPiotr Pawel Stefaniakinstead of standard output. 16847bcbde9SPiotr Pawel Stefaniak.El 16947bcbde9SPiotr Pawel Stefaniak.Pp 17047bcbde9SPiotr Pawel StefaniakThe following options are available for 17147bcbde9SPiotr Pawel Stefaniak.Nm uudecode : 1729fd66e40SGraham Percival.Bl -tag -width indent 17347bcbde9SPiotr Pawel Stefaniak.It Fl c 17447bcbde9SPiotr Pawel StefaniakDecode more than one uuencoded file from 17547bcbde9SPiotr Pawel Stefaniak.Ar file 17647bcbde9SPiotr Pawel Stefaniakif possible. 17747bcbde9SPiotr Pawel Stefaniak.It Fl i 17847bcbde9SPiotr Pawel StefaniakDo not overwrite files. 17947bcbde9SPiotr Pawel Stefaniak.It Fl m 18047bcbde9SPiotr Pawel StefaniakWhen used with the 18147bcbde9SPiotr Pawel Stefaniak.Fl r 18247bcbde9SPiotr Pawel Stefaniakflag, decode Base64 input instead of traditional 18347bcbde9SPiotr Pawel Stefaniak.Nm uuencode 18447bcbde9SPiotr Pawel Stefaniakinput. 18547bcbde9SPiotr Pawel StefaniakWithout 18647bcbde9SPiotr Pawel Stefaniak.Fl r 18747bcbde9SPiotr Pawel Stefaniakit has no effect. 18847bcbde9SPiotr Pawel Stefaniak.It Fl o Ar output_file 18947bcbde9SPiotr Pawel StefaniakOutput to 19047bcbde9SPiotr Pawel Stefaniak.Ar output_file 19147bcbde9SPiotr Pawel Stefaniakinstead of any pathname contained in the input data. 19247bcbde9SPiotr Pawel Stefaniak.It Fl p 19347bcbde9SPiotr Pawel StefaniakDecode 19447bcbde9SPiotr Pawel Stefaniak.Ar file 19547bcbde9SPiotr Pawel Stefaniakand write output to standard output. 19647bcbde9SPiotr Pawel Stefaniak.It Fl r 19747bcbde9SPiotr Pawel StefaniakDecode raw (or broken) input, which is missing the initial and 19847bcbde9SPiotr Pawel Stefaniakpossibly the final framing lines. 19947bcbde9SPiotr Pawel StefaniakThe input is assumed to be in the traditional 20047bcbde9SPiotr Pawel Stefaniak.Nm uuencode 20147bcbde9SPiotr Pawel Stefaniakencoding, but if the 20247bcbde9SPiotr Pawel Stefaniak.Fl m 20347bcbde9SPiotr Pawel Stefaniakflag is used, or if the utility is invoked as 20447bcbde9SPiotr Pawel Stefaniak.Nm b64decode , 20547bcbde9SPiotr Pawel Stefaniakthen the input is assumed to be in Base64 format. 20647bcbde9SPiotr Pawel Stefaniak.It Fl s 20747bcbde9SPiotr Pawel StefaniakDo not strip output pathname to base filename. 20847bcbde9SPiotr Pawel StefaniakBy default 20947bcbde9SPiotr Pawel Stefaniak.Nm uudecode 21047bcbde9SPiotr Pawel Stefaniakdeletes any prefix ending with the last slash '/' for security 21147bcbde9SPiotr Pawel Stefaniakreasons. 21247bcbde9SPiotr Pawel Stefaniak.El 21347bcbde9SPiotr Pawel Stefaniak.Pp 2142ad786c6SPiotr Pawel StefaniakAdditionally, 2152ad786c6SPiotr Pawel Stefaniak.Nm b64encode 2162ad786c6SPiotr Pawel Stefaniakaccepts the following option: 2179fd66e40SGraham Percival.Bl -tag -width indent 2182ad786c6SPiotr Pawel Stefaniak.It Fl w Ar column 2192ad786c6SPiotr Pawel StefaniakWrap encoded output after 2202ad786c6SPiotr Pawel Stefaniak.Ar column . 2212ad786c6SPiotr Pawel Stefaniak.El 2222ad786c6SPiotr Pawel Stefaniak.Pp 22347bcbde9SPiotr Pawel Stefaniak.Nm 22447bcbde9SPiotr Pawel Stefaniakis a generic utility that can run 22547bcbde9SPiotr Pawel Stefaniakany of the aforementioned encoders and decoders. 226aad4fd54SPiotr Pawel StefaniakIt can also run algorithms that are not available 227aad4fd54SPiotr Pawel Stefaniakthrough a dedicated program: 228aad4fd54SPiotr Pawel Stefaniak.Pp 229aad4fd54SPiotr Pawel Stefaniak.Nm qp 230aad4fd54SPiotr Pawel Stefaniakis a quoted-printable converter 231aad4fd54SPiotr Pawel Stefaniakand accepts the following options: 2329fd66e40SGraham Percival.Bl -tag -width indent 233a8d9bd3fSBaptiste Daroussin.It Fl d 234aad4fd54SPiotr Pawel StefaniakDecode. 235aad4fd54SPiotr Pawel Stefaniak.It Fl o Ar output_file 236aad4fd54SPiotr Pawel StefaniakOutput to 237aad4fd54SPiotr Pawel Stefaniak.Ar output_file 238aad4fd54SPiotr Pawel Stefaniakinstead of standard output. 239*491db92aSBaptiste Daroussin.It Fl r 240beab8b1dSBaptiste DaroussinEncode/Decode in RFC2047 specific variant. 241643fc698SGraham Percival.El 24247bcbde9SPiotr Pawel Stefaniak.Sh EXAMPLES 24347bcbde9SPiotr Pawel StefaniakThe following example packages up a source tree, compresses it, 24447bcbde9SPiotr Pawel Stefaniakuuencodes it and mails it to a user on another system. 24547bcbde9SPiotr Pawel StefaniakWhen 24647bcbde9SPiotr Pawel Stefaniak.Nm uudecode 24747bcbde9SPiotr Pawel Stefaniakis run on the target system, the file ``src_tree.tar.Z'' will be 24847bcbde9SPiotr Pawel Stefaniakcreated which may then be uncompressed and extracted into the original 24947bcbde9SPiotr Pawel Stefaniaktree. 25047bcbde9SPiotr Pawel Stefaniak.Pp 25147bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact 25247bcbde9SPiotr Pawel Stefaniaktar cf \- src_tree \&| compress \&| 25347bcbde9SPiotr Pawel Stefaniakuuencode src_tree.tar.Z \&| mail user@example.com 25447bcbde9SPiotr Pawel Stefaniak.Ed 25547bcbde9SPiotr Pawel Stefaniak.Pp 25647bcbde9SPiotr Pawel StefaniakThe following example unpacks all uuencoded 25747bcbde9SPiotr Pawel Stefaniakfiles from your mailbox into your current working directory. 25847bcbde9SPiotr Pawel Stefaniak.Pp 25947bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact 26047bcbde9SPiotr Pawel Stefaniakuudecode -c < $MAIL 26147bcbde9SPiotr Pawel Stefaniak.Ed 26247bcbde9SPiotr Pawel Stefaniak.Pp 26347bcbde9SPiotr Pawel StefaniakThe following example extracts a compressed tar 26447bcbde9SPiotr Pawel Stefaniakarchive from your mailbox 26547bcbde9SPiotr Pawel Stefaniak.Pp 26647bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact 26747bcbde9SPiotr Pawel Stefaniakuudecode -o /dev/stdout < $MAIL | zcat | tar xfv - 26847bcbde9SPiotr Pawel Stefaniak.Ed 26947bcbde9SPiotr Pawel Stefaniak.Sh SEE ALSO 27047bcbde9SPiotr Pawel Stefaniak.Xr basename 1 , 27147bcbde9SPiotr Pawel Stefaniak.Xr compress 1 , 27247bcbde9SPiotr Pawel Stefaniak.Xr mail 1 , 27347bcbde9SPiotr Pawel Stefaniak.Xr uucp 1 Pq Pa ports/net/freebsd-uucp , 27447bcbde9SPiotr Pawel Stefaniak.Xr uuencode 5 27547bcbde9SPiotr Pawel Stefaniak.Sh HISTORY 27647bcbde9SPiotr Pawel StefaniakThe 27747bcbde9SPiotr Pawel Stefaniak.Nm uudecode 27847bcbde9SPiotr Pawel Stefaniakand 27947bcbde9SPiotr Pawel Stefaniak.Nm uuencode 28047bcbde9SPiotr Pawel Stefaniakutilities appeared in 28147bcbde9SPiotr Pawel Stefaniak.Bx 4.0 . 28247bcbde9SPiotr Pawel Stefaniak.Sh BUGS 28347bcbde9SPiotr Pawel StefaniakFiles encoded using the traditional algorithm are expanded by 35% (3 28447bcbde9SPiotr Pawel Stefaniakbytes become 4 plus control information). 285