瀏覽代碼

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

tags/v0.2
Ben Kurtovic 11 年之前
父節點
當前提交
1b999a1206
共有 2 個文件被更改,包括 10 次插入4 次删除
  1. +0
    -2
      earwigbot/commands/crypt.py
  2. +10
    -2
      earwigbot/config/__init__.py

+ 0
- 2
earwigbot/commands/crypt.py 查看文件

@@ -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 查看文件

@@ -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)


Loading…
取消
儲存