From 4891c9d14e2486f65884e3b3db0179f549fbd5ef Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Fri, 22 Mar 2013 15:49:16 +0100 Subject: [PATCH] [tools/b62decode] Script "crade" pour rendre human-readable un ldif avec du base64 dedans. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le .gitignore du dossier sert à ne pas versionner les fichiers d'exemple/test --- tools/b64decode/.gitignore | 2 ++ tools/b64decode/base64decode.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tools/b64decode/.gitignore create mode 100755 tools/b64decode/base64decode.py 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 :)"