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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 920baa117813698e9c81eee5e22415c8310cc01230dc3d838b2a3191e2d840dd |
|
MD5 | eec4f2945ee7cd84fc9a450c17fed756 |
|
BLAKE2b-256 | 826e6372735de80879dab6d0e6d00a37753d8cca7f717066a9b7b46eab98b837 |