跳转到主要内容

Python的DFVA客户端。

项目描述

dfva cliente para python

此客户端允许与DFVA通信,为机构提供哥斯达黎加的数字签名服务。

安装和配置

通过pypi安装

pip install dfva-python

也可以使用源代码安装

git clone https://github.com/luisza/dfva_python.git
cd dfva_python
python setup.py install

此外,将在$HOME/.dfva_python/client.conf中创建一个配置文件,其中输入机构数据,创建此文件的好方法是

python
>>> from dfva_python.settings import Settings
>>> settings=Settings()
# a este punto ya se ha creado el archivo de configuración,
#pero puede ser de utilidad modificar las propiedades de la
# institución así
>>> settings.PRIVATE_KEY=''
>>> settings.SERVER_PUBLIC_KEY=''
>>> settings.PUBLIC_CERTIFICATE=''
>>> settings.CODE=''
>>> settings.URL_NOTIFY='N/D'
>>> settings.save()

使用方法

此客户端允许

  • 验证人员和验证认证状态

  • 在用户签名期间签名xml、odf、ms office文档并验证签名状态

  • 验证由哥斯达黎加国家认证中心(BCCR)提供的哥斯达黎加国家认证中心的证书

  • 验证已签名的XML文档。

  • 检查订阅者是否已连接。

使用示例

注意: notificationURL必须在dfva中注册或对于非Web客户端为N/D。

如果想要验证并检查认证状态

from dfva_python.client import Client
client = Client()
auth_resp = client.authenticate('04-0212-0119')
print(auth_resp)
client.authenticate_check(auth_resp['id_transaction'])
# eliminando la peticion
client.authenticate_delete(auth_resp['id_transaction'])

如果想要检查订阅者是否已连接

client.is_suscriptor_connected('04-0777-08888')

如果想要签名并检查签名状态。

DOCUMENT = '''IyEvYmluL2Jhc2gKCk5PRk9SQ0U9dHJ1ZQpBUFRfQ0FDSEU9IiIKCndoaWxlIGdldG9wdHMgY2h5
IG9wdGlvbgpkbwogY2FzZSAiJHtvcHRpb259IgogaW4KIHkpIE5PRk9SQ0U9ZmFsc2U7OwogYykg
QVBUX0NBQ0hFPXRydWU7OwogaCkgbXloZWxwCiAgICBleGl0IDAgOzsKIGVzYWMKZG9uZQoKaWYg
WyAkQVBUX0NBQ0hFIF07IHRoZW4gCiBlY2hvICJCSU5HTyIgCmZpCgo='''

sign_resp=client.sign( '04-0212-0119', DOCUMENT.encode(), "resumen ejemplo", _format='xml_cofirma')
# _format puede ser xml_cofirma, xml_contrafirma, odf, msoffice
print(sign_resp)
client.sign_check(sign_resp['id_transaction'])
# eliminando la peticion
client.sign_delete(auth_resp['id_transaction'])

注意: 在Web服务中,不需要检查认证/签名状态,因为这些服务通过提供的机构URL进行通知。

如果想要验证证书

client.validate(DOCUMENT, 'certificate')

如果想要验证文档

client.validate(DOCUMENT, 'document', 'cofirma')
# cofirma, contrafirma, odf, msoffice, pdf

运行测试

需要安装测试管理器

pip install nose

运行BCCR FVA模拟器和celery客户端

在FVA BCCR中执行

python manage.py runserver 8001
celery  -A fva_bccr worker  -l info

还可以执行celery beat来提高精确度('celery -A fva_bccr worker -BE -l info'),尽管可能会在测试中引起不稳定。同时,也很重要访问https://:8001/admin/constance/config/并启用< cite>USE_UNITEST,以防止等待定义的< cite>TASK_WAIT_TO_RESPONSE或将< cite>TASK_WAIT_TO_RESPONSE设置为1秒以下。

最后执行测试

nosetests -v --nocapture dfva_python.tests

此外,还包含一个生成测试组合的实用程序,以简化不同情况的编码。

from dfva_python.utils_test import build_test_document_python
build_test_document_python("TestAuthenticate")

这可能在连接到BCCR时运行测试时很有用。

export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
export TEST_WITH_BCCR=True

项目详情


下载文件

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

源分发

dfva-python-0.0.6.tar.gz (30.8 kB 查看哈希值)

上传时间

由以下提供支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面