1 # Conversions to/from base64 transport encoding as per RFC-MIME (Dec 1991
4 # Parameters set by RFX-XXXX.
6 # Modified 04-Oct-95 by Jack to use binascii module
10 MAXLINESIZE
= 76 # Excluding the CRLF
11 MAXBINSIZE
= (MAXLINESIZE
/4)*3
14 def encode(input, output
):
16 s
= input.read(MAXBINSIZE
)
18 while len(s
) < MAXBINSIZE
:
19 ns
= input.read(MAXBINSIZE
-len(s
))
22 line
= binascii
.b2a_base64(s
)
26 def decode(input, output
):
28 line
= input.readline()
30 s
= binascii
.a2b_base64(line
)
35 f
= StringIO
.StringIO(s
)
36 g
= StringIO
.StringIO()
42 f
= StringIO
.StringIO(s
)
43 g
= StringIO
.StringIO()
51 opts
, args
= getopt
.getopt(sys
.argv
[1:], 'deut')
52 except getopt
.error
, msg
:
53 sys
.stdout
= sys
.stderr
55 print """usage: basd64 [-d] [-e] [-u] [-t] [file|-]
58 -t: decode string 'Aladdin:open sesame'"""
62 if o
== '-e': func
= encode
63 if o
== '-d': func
= decode
64 if o
== '-u': func
= decode
65 if o
== '-t': test1(); return
66 if args
and args
[0] != '-':
67 func(open(args
[0]), sys
.stdout
)
69 func(sys
.stdin
, sys
.stdout
)
72 s0
= "Aladdin:open sesame"
77 if __name__
== '__main__':