跳转到主要内容

Django应用程序,用于生成和签署模型。

项目描述

用于生成x509证书并使用PKCS#7标准签署模型的程序

http://bitbucket.org/bearstech/django-signature/

测试版:不适合生产使用

功能

  • PKI

    • 生成(或加载)RSA密钥并将它们存储在Django模型中

    • 生成x509证书并将它们存储在Django模型中

    • 加载x509证书并查找与其他证书和密钥的关系

    • 生成(或加载)x509请求并将它们存储在Django模型中

    • 为根CA生成自签名的x509

    • 验证证书链(使用CRLs)

    • 签署证书请求

  • 数字签名

    • 使用PKCS#7标准签署/验证文本

    • 使用PKCS#7标准签署/验证简单模型

    • 支持FileField(使用sha512摘要)

  • 良好的测试覆盖率

待办事项

  • 签署复杂模型

  • 使用OpenSSL.generate_index()生成索引

  • 改进配置

  • 证书加载带有续订

  • ……等等

示例

有一个简单的PKI示例

from signature.models import Key, Certificate, CertificateRequest
from datetime import datetime

ca_pwd = "R00tz"
c_pwd = "1234"

# CA and Client keys
ca_key = Key.generate(ca_pwd)
c_key = Key.generate(c_pwd)

# CA Cert
ca_cert = Certificate()
ca_cert.CN = "Admin"
ca_cert.C = "FR"
ca_cert.key = ca_key
ca_cert.days = 150
ca_cert.is_ca = True
ca_cert.generate_x509_root(ca_pwd)
ca_cert.save()

# Client's request
rqst = CertificateRequest()
rqst.CN = "World Company"
rqst.C = "FR"
rqst.key = c_key
rqst.sign_request(c_pwd)
rqst.save()

# Sign client's request and return certificate
# (you can give to Client's certificate CA capabilities with ca=True)
c_cert = ca_cert.sign_request(rqst, 150, ca_pwd, ca=False)

# Verify created certificate :
c_cert.check()

# Revoke certificate :
c_cert.revoke(c_cert, ca_pwd)

# Import a Key / Certificate:
imported = Key.new_from_pem(pem_str, passphrase="gigowatt", user=None)
imported = Certificate.new_from_pem(pem_str)

有关更多示例,请参阅tests/test_project/apps/testapp/tests.py中的SignaturePKITestCase

有一个简单的签名示例

# Sign Text
text = "This is a data"
data_signed = c_cert.sign_text(text, c_pwd)
result = c_cert.verify_smime(data_signed)

# Sign Model (get text)
auth1 = Author(name="Raymond E. Feist", title="MR")
data_signed = c_cert.sign_model(auth1, c_pwd)
result = c_cert.verify_smime(data_signed)

# Sign Model (get Signature)
auth1 = Author(name="Raymond E. Feist", title="MR")
signed = c_cert.make_signature(auth1, self.c_pwd)
signed.check_pkcs7(signed)

有关更多示例,请参阅tests/test_project/apps/testapp/tests.py中的SignatureTestCase

测试

  • cd tests

  • python bootstrap.py

  • ./bin/buildout.py -v

  • ./bin/test-1.2 或 ./bin/test-1.1

需求

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

django-signature-0.3.1.tar.gz (46.4 kB 查看哈希值)

上传时间 源代码

构建分发

django-signature-0.3.1.linux-x86_64.tar.gz (37.7 kB 查看哈希值)

上传时间 源代码

由支持