Parcourir la source

Finish lazy-importing of py-bcrypt and pycrypto in config.__init__

tags/v0.2
Ben Kurtovic il y a 11 ans
Parent
révision
1b999a1206
2 fichiers modifiés avec 10 ajouts et 4 suppressions
  1. +0
    -2
      earwigbot/commands/crypt.py
  2. +10
    -2
      earwigbot/config/__init__.py

+ 0
- 2
earwigbot/commands/crypt.py Voir le fichier

@@ -22,8 +22,6 @@

import hashlib

from Crypto.Cipher import Blowfish

from earwigbot import importer
from earwigbot.commands import Command



+ 10
- 2
earwigbot/config/__init__.py Voir le fichier

@@ -282,10 +282,18 @@ class BotConfig(object):
self._setup_logging()
if self.is_encrypted():
if not self._decryption_cipher:
try:
blowfish_new = Blowfish.new
hashpw = bcrypt.hashpw
except ImportError:
url1 = "http://www.mindrot.org/projects/py-bcrypt"
url2 = "https://www.dlitz.net/software/pycrypto/"
e = "Encryption requires the 'py-bcrypt' and 'pycrypto' packages: {0}, {1}"
raise NoConfigError(e.format(url1, url2))
key = getpass("Enter key to decrypt bot passwords: ")
self._decryption_cipher = Blowfish.new(sha256(key).digest())
self._decryption_cipher = blowfish_new(sha256(key).digest())
signature = self.metadata["signature"]
if bcrypt.hashpw(key, signature) != signature:
if hashpw(key, signature) != signature:
raise RuntimeError("Incorrect password.")
for node, nodes in self._decryptable_nodes:
self._decrypt(node, nodes)


Chargement…
Annuler
Enregistrer