From 78b50415fe91d1ae598516aa922aff059204def1 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Fri, 21 Feb 2014 18:02:34 +0100 Subject: [PATCH] [attributs] Des test sur la correction syntaxique de ce qu'on met dans un sshFingerprint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit En gros de ce que le script qui génère le dns s'attend à trouver : la clef publique en entière sous la forme type base64 commentaire --- attributs.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/attributs.py b/attributs.py index 579c0a0..428c031 100644 --- a/attributs.py +++ b/attributs.py @@ -39,6 +39,7 @@ import re import sys import netaddr import time +import base64 import datetime import functools import smtplib @@ -1285,6 +1286,13 @@ class sshFingerprint(Attr): 'key' : details[1], 'comm' : ' '.join(details[2:]), } + if not self.value['type'] in config.sshfs_ralgo.keys(): + raise ValueError("Seul les clefs ssh de type %s sont supportées" % ', '.join(config.sshfs_ralgo.keys())) + try: + base64.b64decode(self.value['key']) + except: + raise ValueError("La partie centrale de la clef ssh devrait être du base64 valide") + def __getitem__(self, attr): return self.value.__getitem__(attr)