簡體   English   中英

使用 gpgme 更改密鑰信任級別(有效性)

[英]changing key trust level (validity) with gpgme

GPGME提供有關密鑰信任級別的信息作為gpgme_validity_t類型owner_trust字段 但是,我在文檔或gpgme.h header 文件中找不到允許我更改密鑰有效性的 function。

GnuPG 命令行工具確實允許更改密鑰的信任級別:

$ gpg --edit-key alice@example.com
> trust

GPGME 庫甚至支持更改owner_trust字段嗎? 如果是這樣,我該如何使用它?

我正在使用最新版本的 GPGME 1.16.0 (提交 hash 1021c8645555502d914afffaa3707609809c9459 )。

應該可以使用gpgme_op_interact來完成這個。

下面演示了使用 Python 綁定的過程,但是使用 C API 應該可以編寫類似的代碼。

import gpg

def trust_at(level):
    done = False
    def interact_cb(status, arg):
        nonlocal done
        if status in ('KEY_CONSIDERED', 'GOT_IT', ''):
            return
        if status == 'GET_LINE':
            if arg == 'keyedit.prompt':
                if done:
                    return 'quit'
                done = True
                return 'trust'
            if arg == 'edit_ownertrust.value':
                return level
        # needed if we set trust level to 5
        if (status, arg) == ('GET_BOOL', 'edit_ownertrust.set_ultimate.okay'):
            return 'y'
        assert False
    return interact_cb

with gpg.Context() as gnupg:
    key = gnupg.get_key(FINGERPRINT)
    gnupg.interact(key, trust_at('4'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM