Ejemplo n.º 1
0
 def normalize_event(self, event=None, raw_event=None):
     if raw_event is None:
         raw_event = json.dumps(event, ensure_ascii=False).encode(
             "utf-8", errors="replace"
         )
     event = encode_str(raw_event, mutable=True)
     rustcall(lib.semaphore_translate_legacy_python_json, event)
     rv = self._methodcall(lib.semaphore_store_normalizer_normalize_event, event)
     return json.loads(decode_str(rv))
Ejemplo n.º 2
0
 def __new__(cls, geoip_lookup=None, **config):
     config = json.dumps(config)
     geoptr = geoip_lookup._get_objptr() if geoip_lookup is not None else ffi.NULL
     rv = cls._from_objptr(
         rustcall(lib.semaphore_store_normalizer_new, encode_str(config), geoptr)
     )
     if geoip_lookup is not None:
         attached_refs[rv] = geoip_lookup
     return rv
Ejemplo n.º 3
0
def create_register_challenge(data, signature, max_age=60 * 15):
    rv = json.loads(
        decode_str(
            rustcall(lib.semaphore_create_register_challenge, make_buf(data),
                     encode_str(signature), max_age)))
    return {
        'relay_id': uuid.UUID(rv['relay_id']),
        'public_key': PublicKey.parse(rv['public_key']),
        'token': rv['token'],
    }
Ejemplo n.º 4
0
def validate_register_response(public_key, data, signature, max_age=60 * 15):
    rv = json.loads(
        decode_str(
            rustcall(lib.semaphore_validate_register_response,
                     public_key._objptr, make_buf(data), encode_str(signature),
                     max_age)))
    return {
        'relay_id': uuid.UUID(rv['relay_id']),
        'token': rv['token'],
    }
Ejemplo n.º 5
0
def split_chunks(string, remarks):
    return json.loads(
        decode_str(
            rustcall(
                lib.semaphore_split_chunks,
                encode_str(string),
                encode_str(json.dumps(remarks)),
            )
        )
    )
Ejemplo n.º 6
0
def validate_register_response(public_key, data, signature, max_age=60 * 15):
    rv = json.loads(
        decode_str(
            rustcall(
                lib.semaphore_validate_register_response,
                public_key._objptr,
                make_buf(data),
                encode_str(signature),
                max_age,
            )
        )
    )
    return {"relay_id": uuid.UUID(rv["relay_id"]), "token": rv["token"]}
Ejemplo n.º 7
0
def create_register_challenge(data, signature, max_age=60 * 15):
    rv = json.loads(
        decode_str(
            rustcall(
                lib.semaphore_create_register_challenge,
                make_buf(data),
                encode_str(signature),
                max_age,
            )
        )
    )
    return {
        "relay_id": uuid.UUID(rv["relay_id"]),
        "public_key": PublicKey.parse(rv["public_key"]),
        "token": rv["token"],
    }
Ejemplo n.º 8
0
def generate_relay_id():
    return decode_uuid(rustcall(lib.semaphore_generate_relay_id))
Ejemplo n.º 9
0
def generate_key_pair():
    rv = rustcall(lib.semaphore_generate_key_pair)
    return (
        SecretKey._from_objptr(rv.secret_key),
        PublicKey._from_objptr(rv.public_key),
    )
Ejemplo n.º 10
0
 def parse(cls, string):
     s = encode_str(string)
     ptr = rustcall(lib.semaphore_secretkey_parse, s)
     return cls._from_objptr(ptr)
Ejemplo n.º 11
0
def get_register_response_relay_id(data):
    return decode_uuid(
        rustcall(lib.semaphore_get_register_response_relay_id, make_buf(data))
    )
Ejemplo n.º 12
0
 def from_path(cls, path):
     if isinstance(path, text_type):
         path = path.encode("utf-8")
     rv = cls._from_objptr(rustcall(lib.semaphore_geoip_lookup_new, path))
     rv._path = path
     return rv