diff --git a/tools/b64decode/.gitignore b/tools/b64decode/.gitignore new file mode 100644 index 0000000..f23863d --- /dev/null +++ b/tools/b64decode/.gitignore @@ -0,0 +1,2 @@ +*.ldif +*.b64decoded diff --git a/tools/b64decode/base64decode.py b/tools/b64decode/base64decode.py new file mode 100755 index 0000000..7f12100 --- /dev/null +++ b/tools/b64decode/base64decode.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + + +""" Affiche en human readable un ldif (de slapcat, par exemple) + en décodant les parties en base64 """ + +import re +import base64 +import sys + +regexp = re.compile("(?P[A-Za-z]*):: (?P(?:[A-Za-z0-9/+]*(?:\n )?)*={0,3})") + +def remplace(objet): + groups = objet.groupdict() + return "%s: %s" % (groups["cle"], base64.b64decode(groups["valeur"])) + + +def perform(texte): + return re.sub(regexp, remplace, texte) + +if __name__ == "__main__": + filename = sys.argv[1] + with open(filename) as f: + texte = f.read() + with open(filename + ".b64decoded", "w") as g: + g.write(perform(texte).replace("\n ", "")) + print "Done :)"