如何在 python gpgme 高级(低级)函数中使用删除密钥?

how to use in python gpgme advanced (low-level) functions to delete a key?

我想从我的密钥库中删除一个密钥,但主模块 (gpg) 没有提供任何执行此操作的功能(或者我错过了)。只是为了撤销密钥 UID 而这不是我想要的。

我发现 gpgme_op_delete_ext (gpgme_ctx_t ctx, const gpgme_key_t key, unsigned int flags) 函数可以通过 gpg.gpgme 模块使用。但我不知道如何使用它,因为我拥有的 GPG 上下文来自主 python 模块,而不是函数采用的所需“低级”类型。所以我想这是我从上下文的 get_key 函数中获得的密钥。

那么,我如何从主模块转换我的 Context 对象和我从中获得的密钥以提供给 gpgme_op_delete_ext 函数以删除所述密钥?

我发现 GPG Context 对象有一个 wrapped 属性,这是 gpgme_op_delete_ext 所要求的数据类型。对于键,get_key 返回的对象被函数接受。

所以我可以这样称呼它,例如:

context = gpg.Context()
key = context.get_key(fingerprint)
gpgme_op_delete_ext(context.wrapped, key, GPGME_DELETE_FORCE)