python-gnupg签名/验证tar存档

时间:2018-08-28 20:10:51

标签: python gnupg gpg-signature

我正在使用python-gpg对tar归档文件进行签名/加密/验证/解密。

代码段-

class Topic(models.Model):

    """ A topic the user is learning about """

    text = models.CharField(max_length = 200) 
    date_added = models.DateTimeField(auto_now_add=True) 
    owner = models.ForeignKey(User, on_delete = models.CASCADE) 

    def __str__(self):

        return self.text 

class Entry(models.Model):

    enttopic = models.ForeignKey(Topic, on_delete = models.CASCADE) 
    text = models.TextField() 

    date_added = models.DateTimeField(auto_now_add = True) 


    class Meta:

        verbose_name_plural = 'entries'

    def __str__(self):

        return self.text


class Document(models.Model):

    doctopic = models.ForeignKey(Entry, on_delete = models.CASCADE)
    docfile = models.FileField(upload_to = 'documents/', blank = True, null=True)
    upload_at = models.DateTimeField(auto_now_add = True)

代码生成的sig文件就可以了。但是,如果我尝试使用公钥验证sig / tar,则会收到以下消息-

def topic(request, topic_id):

    topic = Topic.objects.get(id = topic_id)
    entries = topic.entry_set.order_by('-date_added')
    images = topic.image_set.order_by('-upload_at') 

    context = {'topic': topic, 'entries':entries, 'images': images}

    return render(request, 'learning_logs/topic.html', context)

相反,如果我尝试直接在linux上生成sig文件并进行验证,则可以正常工作。

我对此感到迷茫,有没有指针?

1 个答案:

答案 0 :(得分:0)

以防万一其他人遇到此错误,我通过完全远离库并通过Popen进行签名来解决了该错误。下面的参考资料有帮助-

http://jeromebelleman.gitlab.io/posts/devops/pygpgstdin/

Python/POpen/gpg: Supply passphrase and encryption text both through stdin or file descriptor