diff options
author | Azul <azul@riseup.net> | 2021-02-03 10:49:29 +0100 |
---|---|---|
committer | Azul <azul@riseup.net> | 2021-02-08 14:54:46 +0100 |
commit | 280796ac92d25ada9d6fd79d03aea7676b83ded7 (patch) | |
tree | 3991b0f7abcbf24e6a1f63f51775f6185a745f18 /ffi/lang/python/sequoia/net.py | |
parent | 65f9d716c56c809b5cca59f964963b5ee062e261 (diff) |
ffi: Move NetworkPolicy into net for python.
- See #665.
- Also add test for keyserver to make sure the fix is correct.
Diffstat (limited to 'ffi/lang/python/sequoia/net.py')
-rw-r--r-- | ffi/lang/python/sequoia/net.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/ffi/lang/python/sequoia/net.py b/ffi/lang/python/sequoia/net.py index de7a77fc..bc5de9eb 100644 --- a/ffi/lang/python/sequoia/net.py +++ b/ffi/lang/python/sequoia/net.py @@ -1,27 +1,40 @@ -from _sequoia import ffi, lib +from enum import Enum +from _sequoia import ffi, lib from .openpgp import Cert from .error import Error from .glue import SQObject +class NetworkPolicy(Enum): + Offline = lib.SQ_NETWORK_POLICY_OFFLINE + Anonymized = lib.SQ_NETWORK_POLICY_ANONYMIZED + Encrypted = lib.SQ_NETWORK_POLICY_ENCRYPTED + Insecure = lib.SQ_NETWORK_POLICY_INSECURE + class KeyServer(SQObject): _del = lib.sq_keyserver_free @classmethod - def new(cls, ctx, uri, cert=None): + def new(cls, ctx, uri, network_policy=NetworkPolicy.Encrypted, cert=None): if not cert: - ks = lib.sq_keyserver_new(ctx.ref(), uri.encode()) + ks = lib.sq_keyserver_new( + ctx.ref(), + network_policy.value, + uri.encode()) else: ks = lib.sq_keyserver_with_cert( - ctx.ref(), uri.encode(), + ctx.ref(), + network_policy.value, + uri.encode(), ffi.cast("uint8_t *", ffi.from_buffer(cert)), len(cert)) return KeyServer(ks, context=ctx) @classmethod - def keys_openpgp_org(cls, ctx): - return KeyServer(lib.sq_keyserver_keys_openpgp_org(ctx.ref()), - context=ctx) + def keys_openpgp_org(cls, ctx, network_policy=NetworkPolicy.Encrypted): + ks = lib.sq_keyserver_keys_openpgp_org(ctx.ref(), + network_policy.value) + return KeyServer(ks, context=ctx) def get(self, keyid): return Cert(lib.sq_keyserver_get(self.context().ref(), |