{ "info": { "author": "Luis Zarate", "author_email": "luis.zarate@solvosoft.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "dfva cliente para python\n#############################\n\nEste cliente permite comunicarse con DFVA_ para proveer servicios de firma digital para Costa Rica a institutiones.\n\n.. _DFVA: https://github.com/luisza/dfva\n\nInstalaci\u00f3n y configuraci\u00f3n\n--------------------------------\n\nInstale mediante pypi:\n\n.. code:: bash\n\n pip install dfva-python\n\nTambi\u00e9n se puede instalar utilizando el c\u00f3digo fuente\n\n.. code:: bash\n\n git clone https://github.com/luisza/dfva_python.git\n cd dfva_python\n python setup.py install\n\nAdicionalmente se crea un archivo de configuraci\u00f3n en $HOME/.dfva_python/client.conf donde se ingresan los datos de la instituci\u00f3n, una buena forma de crear este archivo es:\n\n.. code:: python\n\n python \n >>> from dfva_python.settings import Settings\n >>> settings=Settings()\n # a este punto ya se ha creado el archivo de configuraci\u00f3n, \n #pero puede ser de utilidad modificar las propiedades de la \n # instituci\u00f3n as\u00ed\n >>> settings.PRIVATE_KEY=''\n >>> settings.SERVER_PUBLIC_KEY=''\n >>> settings.PUBLIC_CERTIFICATE=''\n >>> settings.CODE=''\n >>> settings.URL_NOTIFY='N/D'\n >>> settings.save() \n\nModo de uso \n################\n\nEste cliente permite:\n\n* Autenticar personas y verificar estado de autenticaci\u00f3n\n* Firmar documento xml, odf, ms office y verificar estado de firma durante el tiempo que el usuario est\u00e1 firmando\n* Validar un certificado emitido con la CA nacional de Costa Rica provista por el BCCR\n* Validar un documento XML firmado.\n* Revisar si un suscriptor est\u00e1 conectado.\n\n\nEjemplo de uso\n----------------\n\n**Nota:** notificationURL debe estar registrado en dfva o ser N/D en clientes no web\n\nSi se desea autenticar y revisar estado de la autenticaci\u00f3n\n\n.. code:: python\n\n from dfva_python.client import Client\n client = Client()\n auth_resp = client.authenticate('04-0212-0119')\n print(auth_resp)\n client.authenticate_check(auth_resp['id_transaction'])\n # eliminando la peticion\n client.authenticate_delete(auth_resp['id_transaction'])\n\n\nSi se desea revisar si un suscriptor est\u00e1 conectado\n\n.. code:: python\n\n client.is_suscriptor_connected('04-0777-08888')\n\n\nSi se desea firmar y revisar estado de la firma.\n\n.. code:: python\n\n DOCUMENT = '''IyEvYmluL2Jhc2gKCk5PRk9SQ0U9dHJ1ZQpBUFRfQ0FDSEU9IiIKCndoaWxlIGdldG9wdHMgY2h5\n IG9wdGlvbgpkbwogY2FzZSAiJHtvcHRpb259IgogaW4KIHkpIE5PRk9SQ0U9ZmFsc2U7OwogYykg\n QVBUX0NBQ0hFPXRydWU7OwogaCkgbXloZWxwCiAgICBleGl0IDAgOzsKIGVzYWMKZG9uZQoKaWYg\n WyAkQVBUX0NBQ0hFIF07IHRoZW4gCiBlY2hvICJCSU5HTyIgCmZpCgo='''\n\n sign_resp=client.sign( '04-0212-0119', DOCUMENT.encode(), \"resumen ejemplo\", _format='xml_cofirma')\n # _format puede ser xml_cofirma, xml_contrafirma, odf, msoffice\n print(sign_resp)\n client.sign_check(sign_resp['id_transaction'])\n # eliminando la peticion\n client.sign_delete(auth_resp['id_transaction'])\n\n**Nota:** La revisi\u00f3n de estado de la autenticaci\u00f3n/firma no es necesaria en servicios web ya que estos son notificados por en la URL de instituci\u00f3n proporcionado.\n\nSi se desea validar un certificado\n\n.. code:: python\n\n client.validate(DOCUMENT, 'certificate')\n \n\nSi se desea validar un documento\n\n.. code:: python\n\n client.validate(DOCUMENT, 'document', 'cofirma')\n # cofirma, contrafirma, odf, msoffice, pdf\n\n\nRunning tests\n----------------\n\nNecesita instalar el gestor de pruebas \n\n.. code:: python\n\n pip install nose\n\n\nEjecute el simulador de FVA BCCR y su cliente de celery\n\nEN FVA BCCR ejecute \n\n.. code:: bash\n\n python manage.py runserver 8001\n celery -A fva_bccr worker -l info\n\nPuede ejecutar adem\u00e1s celery beat para mayor exactitud, \n('''celery -A fva_bccr worker -BE -l info'''), aunque puede causar inestabilidad\nen las pruebas. Tambi\u00e9n es importante acceder a http://localhost:8001/admin/constance/config/\ny habilitar `USE_UNITEST` para que no espere el `TASK_WAIT_TO_RESPONSE` definido o \nponer un `TASK_WAIT_TO_RESPONSE` bajo como 1 segundo.\n\n\n\nPor \u00faltimo ejecute las pruebas\n\n.. code:: bash\n\n nosetests -v --nocapture dfva_python.tests\n\n\nAdem\u00e1s se incluye un utilitario para generar las combinaciones de las pruebas\ncon la finalidad de hacer m\u00e1s simple la codificaci\u00f3n de los diferentes casos\n\n.. code:: python\n\n from dfva_python.utils_test import build_test_document_python\n build_test_document_python(\"TestAuthenticate\")\n\n\nEsto podr\u00eda ser util para correr las pruebas cuando se conecta a BCCR\n\n.. code:: bash\n\n export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt\n export TEST_WITH_BCCR=True", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/luisza/dfva_python", "keywords": "", "license": "GNU General Public License v3 (GPLv3)", "maintainer": "", "maintainer_email": "", "name": "dfva-python", "package_url": "https://pypi.org/project/dfva-python/", "platform": "OS Independent", "project_url": "https://pypi.org/project/dfva-python/", "project_urls": { "Homepage": "https://github.com/luisza/dfva_python" }, "release_url": "https://pypi.org/project/dfva-python/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "DFVA client for python.", "version": "0.0.6" }, "last_serial": 5560028, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a4a9b54edac66a343a92aa86306c2bd7", "sha256": "5561478358b5619ef0113593f694e05e3619593a0bd9a02ce698efc191c653a5" }, "downloads": -1, "filename": "dfva-python-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a4a9b54edac66a343a92aa86306c2bd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6085, "upload_time": "2017-11-02T18:40:33", "url": "https://files.pythonhosted.org/packages/0a/b1/7fbb38066e52f32b403833ab53c74b2d8e6cef7e014ac08df2be7673aea6/dfva-python-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ab2f83cfa364b7e1983dcfcc263dcc28", "sha256": "3b59c82c04f38e70d582d11ced606a4a64ed377aac191bca15abd99e3c0b743f" }, "downloads": -1, "filename": "dfva-python-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ab2f83cfa364b7e1983dcfcc263dcc28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6342, "upload_time": "2017-11-16T08:24:04", "url": "https://files.pythonhosted.org/packages/f4/a7/d26a6b2cd4b9a91097c7b13afa9a581afaaf364f6540c7cee4cba9218b4a/dfva-python-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0bfcabcf5198cbd0bdf04cb6b8d89324", "sha256": "5fddf907a25c60bc537db8a176e05cfdf9b50e8f0dea043440107973a54c55d0" }, "downloads": -1, "filename": "dfva-python-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0bfcabcf5198cbd0bdf04cb6b8d89324", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6384, "upload_time": "2017-11-16T08:27:02", "url": "https://files.pythonhosted.org/packages/73/46/946436476a6881aeffd72a59ad82892e63cb805b30b683cb38a958c49d87/dfva-python-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "17368a7cefdeedcc2157c3761c50b038", "sha256": "aec33a04935831861b6185fb1bdd548df80503c5e1fe7aeb172db655eb4891d0" }, "downloads": -1, "filename": "dfva-python-0.0.4.tar.gz", "has_sig": false, "md5_digest": "17368a7cefdeedcc2157c3761c50b038", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14813, "upload_time": "2019-05-20T19:51:27", "url": "https://files.pythonhosted.org/packages/b0/90/b0fc740c56569155ddf4c63945dc79f5f9f0348225b7f6630e7277887aa9/dfva-python-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "228342def41d1a8fece74b0e5e7c49b4", "sha256": "077d8b349c531db536d7f43795395e2c2872c2293709dbb8bda91cede38ca320" }, "downloads": -1, "filename": "dfva-python-0.0.5.tar.gz", "has_sig": false, "md5_digest": "228342def41d1a8fece74b0e5e7c49b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29520, "upload_time": "2019-05-20T19:56:15", "url": "https://files.pythonhosted.org/packages/3c/9d/50933b3e476bf12226dfd83a015301199bbdf33e38f0812b33152661b570/dfva-python-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "eec4f2945ee7cd84fc9a450c17fed756", "sha256": "920baa117813698e9c81eee5e22415c8310cc01230dc3d838b2a3191e2d840dd" }, "downloads": -1, "filename": "dfva-python-0.0.6.tar.gz", "has_sig": false, "md5_digest": "eec4f2945ee7cd84fc9a450c17fed756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30766, "upload_time": "2019-07-20T07:59:34", "url": "https://files.pythonhosted.org/packages/82/6e/6372735de80879dab6d0e6d00a37753d8cca7f717066a9b7b46eab98b837/dfva-python-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eec4f2945ee7cd84fc9a450c17fed756", "sha256": "920baa117813698e9c81eee5e22415c8310cc01230dc3d838b2a3191e2d840dd" }, "downloads": -1, "filename": "dfva-python-0.0.6.tar.gz", "has_sig": false, "md5_digest": "eec4f2945ee7cd84fc9a450c17fed756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30766, "upload_time": "2019-07-20T07:59:34", "url": "https://files.pythonhosted.org/packages/82/6e/6372735de80879dab6d0e6d00a37753d8cca7f717066a9b7b46eab98b837/dfva-python-0.0.6.tar.gz" } ] }