You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description of issue or feature request:
Securesystemslib lacks of a clear public API. It should be clear and intuitive for users of secureystemslib, which modules and which functions are public API.
Current behavior:
API is scattered across:
for general key operations (generate, import, sign, verify)
keys.py -- high-level public interface to sign/very (key type independent), and generate and import keys (key type dependent). Calls into low-level non-public {rsa, ecdsa, ed25519}_keys.py modules, which are (mostly) separated by key type.
interface.py -- higher-level public interface (mostly calls into key.py) to generate and import keys
for GPG key operations (import, sign, verify)
gpg/functions.py -- public interface for gpg subpackage, independent from above key operations.
for other other non-key related operations
hash.py -- facade for hashlib from stdlib and cryptography.hazmat.primitives.hashes
Expected behavior:
Revise module architecture to use mnemonic names for (public) modules (not interface or functions) appropriate for the interface functions they contain. Also see discussion about import guidelines.
Description of issue or feature request:
Securesystemslib lacks of a clear public API. It should be clear and intuitive for users of secureystemslib, which modules and which functions are public API.
Current behavior:
API is scattered across:
for general key operations (generate, import, sign, verify)
keys.py-- high-level public interface to sign/very (key type independent), and generate and import keys (key type dependent). Calls into low-level non-public{rsa, ecdsa, ed25519}_keys.pymodules, which are (mostly) separated by key type.interface.py-- higher-level public interface (mostly calls intokey.py) to generate and import keysfor GPG key operations (import, sign, verify)
gpg/functions.py-- public interface for gpg subpackage, independent from above key operations.for other other non-key related operations
hash.py-- facade forhashlibfrom stdlib andcryptography.hazmat.primitives.hashesprocess.py-- thin subprocess wrapperstorage.py-- file system abstractionutil.py-- mostly I/O related utilsformats.py-- schema definition constants (likely to be deprecated, see Revise schema and formats facility #183), OLPC canonical json implementationExpected behavior:
Revise module architecture to use mnemonic names for (public) modules (not
interfaceorfunctions) appropriate for the interface functions they contain. Also see discussion about import guidelines.