3 # Conversions to/from base64 transport encoding as per RFC-MIME (Dec 1991
6 # Parameters set by RFC-1421.
8 # Modified 04-Oct-95 by Jack to use binascii module
12 MAXLINESIZE
= 76 # Excluding the CRLF
13 MAXBINSIZE
= (MAXLINESIZE
/4)*3
16 def encode(input, output
):
18 s
= input.read(MAXBINSIZE
)
20 while len(s
) < MAXBINSIZE
:
21 ns
= input.read(MAXBINSIZE
-len(s
))
24 line
= binascii
.b2a_base64(s
)
28 def decode(input, output
):
30 line
= input.readline()
32 s
= binascii
.a2b_base64(line
)
37 f
= StringIO
.StringIO(s
)
38 g
= StringIO
.StringIO()
44 f
= StringIO
.StringIO(s
)
45 g
= StringIO
.StringIO()
53 opts
, args
= getopt
.getopt(sys
.argv
[1:], 'deut')
54 except getopt
.error
, msg
:
55 sys
.stdout
= sys
.stderr
57 print """usage: basd64 [-d] [-e] [-u] [-t] [file|-]
60 -t: decode string 'Aladdin:open sesame'"""
64 if o
== '-e': func
= encode
65 if o
== '-d': func
= decode
66 if o
== '-u': func
= decode
67 if o
== '-t': test1(); return
68 if args
and args
[0] != '-':
69 func(open(args
[0], 'rb'), sys
.stdout
)
71 func(sys
.stdin
, sys
.stdout
)
74 s0
= "Aladdin:open sesame"
79 if __name__
== '__main__':