{"id":26870,"library":"cursive","title":"cursive","description":"cursive is an OpenStack library for validating digital signatures, primarily used in Glance and other OpenStack services to verify image signatures. Version 0.2.3 implements OpenStack-specific signature validation. It has a low release cadence, with no recent major updates.","status":"active","version":"0.2.3","language":"python","source_language":"en","source_url":"https://opendev.org/openstack/cursive","tags":["openstack","signature","validation","cryptography"],"install":[{"cmd":"pip install cursive","lang":"bash","label":"default"}],"dependencies":[{"reason":"Key management interface for signature verification.","package":"castellan","optional":true},{"reason":"Core cryptographic operations for signature validation.","package":"cryptography","optional":false}],"imports":[{"wrong":"from cursive import validate_signature","symbol":"pbr","correct":"from cursive import pbr"}],"quickstart":{"code":"from cursive import validate_signature\n\n# OpenStack image signature validation\nimage_data = b'...'  # binary image content\nsignature = b'...'   # base64 decoded signature\ncertificate = b'...' # PEM encoded certificate\n# Example using a mock key_manager (castellan required for real usage)\n# result = validate_signature(image_data, signature, certificate)\n# print(result)\nprint('Signature validation requires OpenStack key management setup.')","lang":"python","description":"Basic signature validation using cursive. Requires a key manager for production."},"warnings":[{"fix":"Install castellan: pip install castellan","message":"cursive depends on castellan for key management, which is often not installed by default. Without castellan, most validation functions will fail with an import error.","severity":"gotcha","affected_versions":"all"},{"fix":"Use CursiveSignatureVerifier class for forward compatibility.","message":"The function `validate_signature` may be deprecated in favor of `CursiveSignatureVerifier` in future releases. Check documentation for current usage.","severity":"deprecated","affected_versions":">=0.2.0"},{"fix":"Ensure the certificate argument includes the complete chain (leaf and intermediates) if needed.","message":"Signature validation requires a specific chain of trust: certificate -> intermediate CAs. Cursive does not handle certificate chain building; you must provide the full chain.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'0.2.3':24 'cadenc':36 'cryptographi':45 'cursiv':1,2 'digit':9 'glanc':14 'imag':21 'implement':25 'librari':6 'low':34 'major':40 'openstack':5,17,27,42 'openstack-specif':26 'primarili':11 'recent':39 'releas':35 'servic':18 'signatur':10,22,29,43 'specif':28 'updat':41 'use':12 'valid':8,30,44 'verifi':20 'version':23","created_at":"2026-05-01T17:43:18.336551+00:00","updated_at":"2026-05-01T17:43:18.336551+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":"http://www.openstack.org/","github":null,"docs":null,"changelog":null,"pypi":"https://pypi.org/project/cursive/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["auth-security"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}