diff options
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(), |