Я не уверен, почему это не работает (Python 2.7.5) - файлы, созданные во временном каталоге, который я может проверить, но Python - нет.Помогите?
Я не уверен, неправильно ли я использую функцию gpg.verify_file, или я не понимаю, как правильно сказать python, что я доверяю импортируемому ключу, или как.Когда я открываю свою оболочку и захожу во временный каталог, у меня нет проблем с проверкой файла по sig, поэтому я знаю, что он должен проверяться.
К сожалению, в 99% примеров Python GnuPG есть шифрование, котороенет.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import gnupg
import tempfile
import shutil
from pprint import pprint
def getStartTlsPolicy():
policyURL = 'https://dl.eff.org/starttls-everywhere/policy.json'
policyASC = 'https://dl.eff.org/starttls-everywhere/policy.json.asc'
publicKEY = 'https://dl.eff.org/starttls-everywhere/public-key.txt'
try:
response = urllib2.urlopen(policyURL, timeout=5)
except:
return '{}'
try:
signature = urllib2.urlopen(policyASC, timeout=5)
except:
return '{}'
try:
keyblock = urllib2.urlopen(publicKEY, timeout=5)
except:
return '{}'
jsondata = response.read()
sigdata = signature.read()
keyfile = keyblock.read()
# GnuPG stuff here
dirpath = tempfile.mkdtemp()
gpg = gnupg.GPG(gnupghome=dirpath)
gpg.encoding = 'utf-8'
sigfile = open(dirpath + '/policy.json.asc', 'w+')
sigfile.write(sigdata)
jsonfile = open(dirpath + '/policy.json', 'w+')
jsonfile.write(jsondata)
jsonfile.close()
fingerlist = []
fingerlist.append('B693F33372E965D76D55368616EEA65D03326C9D')
gpg.import_keys(keyfile)
gpg.trust_keys(fingerlist, 'TRUST_FULLY')
verified = gpg.verify_file(sigfile, dirpath + '/policy.json', 'key_id=842AEA40C5BCD6E1')
if not verified:
print "signature verify failed"
public_keys = gpg.list_keys()
pprint(public_keys)
sigfile.close()
#shutil.rmtree(dirpath)
print dirpath
return '{}'
sigfile.close()
shutil.rmtree(dirpath)
return jsondata
jsondata = getStartTlsPolicy()
print jsondata