diff options
| author | makefu <github@syntax-fehler.de> | 2013-03-07 11:40:38 +0100 |
|---|---|---|
| committer | makefu <github@syntax-fehler.de> | 2013-03-07 11:40:38 +0100 |
| commit | 7fa8fb85b072f612adb322f8a02617e1bd737020 (patch) | |
| tree | 683df8268baae71451633518aa7ff7ea258a4aa8 /services/checkers.py | |
| parent | dbe2d838ba6834788265029162b2dd7d82473335 (diff) | |
| parent | ef4eb3189363f5cd9a33b43693322a68d3142979 (diff) | |
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'services/checkers.py')
| -rw-r--r-- | services/checkers.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/services/checkers.py b/services/checkers.py new file mode 100644 index 00000000..dbfe1323 --- /dev/null +++ b/services/checkers.py @@ -0,0 +1,25 @@ + +import base64, binascii +from twisted.python.filepath import FilePath +from twisted.conch.checkers import SSHPublicKeyDatabase + + +class PublicKeyChecker(SSHPublicKeyDatabase): + + def __init__(self, filename): + self.filepath = FilePath(filename) + + def getAuthorizedKeysFiles(self, credentials): + return [self.filepath] + + def checkKey(self, credentials): + for line in self.filepath.open(): + parts = line.split() + if len(parts) < 2: + continue + try: + if base64.decodestring(parts[1]) == credentials.blob: + return True + except binascii.Error: + continue + return False |
