From d4a5f9131bd685ef547bfaa3390dd39e8edd2ccd Mon Sep 17 00:00:00 2001
From: Zooko O'Whielacronx <zooko@zooko.com>
Date: Tue, 6 Jan 2009 10:41:22 -0700
Subject: [PATCH] util: base32: require str-not-unicode inputs -- effectively
 rolls back [3306] and [3307]

---
 src/allmydata/util/base32.py | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/src/allmydata/util/base32.py b/src/allmydata/util/base32.py
index d832b57e..a943cacc 100644
--- a/src/allmydata/util/base32.py
+++ b/src/allmydata/util/base32.py
@@ -179,17 +179,13 @@ def init_s5():
 s5 = init_s5()
 
 def could_be_base32_encoded(s, s8=s8, tr=string.translate, identitytranstable=identitytranstable, chars=chars):
-    precondition(isinstance(s, (str, unicode)), s)
-    if isinstance(s, unicode):
-        s = s.encode('utf-8')
+    precondition(isinstance(s, str), s)
     if s == '':
         return True
     return s8[len(s)%8][ord(s[-1])] and not tr(s, identitytranstable, chars)
 
 def could_be_base32_encoded_l(s, lengthinbits, s5=s5, tr=string.translate, identitytranstable=identitytranstable, chars=chars):
-    precondition(isinstance(s, (str, unicode)), s)
-    if isinstance(s, unicode):
-        s = s.encode('utf-8')
+    precondition(isinstance(s, str), s)
     if s == '':
         return True
     assert lengthinbits%5 < len(s5), lengthinbits
@@ -205,9 +201,7 @@ def a2b(cs):
     @param cs the base-32 encoded data (a string)
     """
     precondition(could_be_base32_encoded(cs), "cs is required to be possibly base32 encoded data.", cs=cs)
-    precondition(isinstance(cs, (str, unicode)), cs)
-    if isinstance(cs, unicode):
-        cs = cs.encode('utf-8')
+    precondition(isinstance(cs, str), cs)
 
     return a2b_l(cs, num_octets_that_encode_to_this_many_quintets(len(cs))*8)
 
@@ -232,9 +226,7 @@ def a2b_l(cs, lengthinbits):
     @return the data encoded in cs
     """
     precondition(could_be_base32_encoded_l(cs, lengthinbits), "cs is required to be possibly base32 encoded data.", cs=cs, lengthinbits=lengthinbits)
-    precondition(isinstance(cs, (str, unicode)), cs)
-    if isinstance(cs, unicode):
-        cs = cs.encode('utf-8')
+    precondition(isinstance(cs, str), cs)
     if cs == '':
         return ''
 
-- 
2.45.2