latest.ipv8.attestation.wallet.pengbaorange.algorithm
Module Contents
Classes
An attestation for a Peng Bao range proof. |
|
IPv8 wrapper around Peng and Bao's efficient range proof scheme. |
- class latest.ipv8.attestation.wallet.pengbaorange.algorithm.PengBaoAttestation(publicdata: PengBaoPublicData, privatedata: PengBaoCommitmentPrivate | None, id_format: str | None = None)
Bases:
latest.ipv8.attestation.identity_formats.Attestation
An attestation for a Peng Bao range proof.
- serialize() bytes
Serialize this Attestation to a string.
- Returns:
the serialized form of this attestation
- Return type:
- serialize_private(PK: latest.ipv8.attestation.wallet.primitives.structs.BonehPublicKey) bytes
Serialize this Attestation to a string, include shared secrets (not to be published!).
- Parameters:
PK – the public key to encode for
- Returns:
the serialized form of this attestation
- Return type:
- classmethod unserialize(s: bytes, id_format: str | None = None) PengBaoAttestation
Given a string, create an Attestation object.
- Parameters:
- Returns:
the attestation object
- Return type:
- classmethod unserialize_private(SK: latest.ipv8.attestation.wallet.primitives.structs.BonehPrivateKey, s: bytes, id_format: str | None = None) PengBaoAttestation
Given a string, create an Attestation object. The input contains shared secrets not to be published.
- Parameters:
- Returns:
the attestation object
- Return type:
- class latest.ipv8.attestation.wallet.pengbaorange.algorithm.PengBaoRangeAlgorithm(id_format: str, formats: dict[str, dict[str, Any]])
Bases:
latest.ipv8.attestation.identity_formats.IdentityAlgorithm
IPv8 wrapper around Peng and Bao’s efficient range proof scheme.
- generate_secret_key() latest.ipv8.attestation.wallet.primitives.structs.BonehPrivateKey
Generate a secret key.
- Returns:
the secret key
- load_secret_key(serialized: bytes) latest.ipv8.attestation.wallet.primitives.structs.BonehPrivateKey | None
Unserialize a secret key from the key material.
- Parameters:
serialized – the string of the private key
- Returns:
the private key
- load_public_key(serialized: bytes) latest.ipv8.attestation.wallet.primitives.structs.BonehPublicKey | None
Unserialize a public key from the key material.
- Parameters:
serialized – the string of the public key
- Returns:
the public key
- get_attestation_class() type[latest.ipv8.attestation.wallet.pengbaorange.structs.PengBaoAttestation]
Return the Attestation (sub)class for serialization.
- Returns:
the Attestation object
- Return type:
- attest(PK: latest.ipv8.attestation.wallet.primitives.structs.BonehPublicKey, value: bytes) bytes
Attest to a value for a certain public key.
- Parameters:
PK (BonehPublicKey) – the public key of the party we are attesting for
value (str) – the value we are attesting to
- Returns:
the attestation string
- Return type:
- certainty(value: bytes, aggregate: dict) float
The current certainty of the aggregate object representing a certain value.
1 is in range, 0 is out of range.
- create_challenges(PK: latest.ipv8.attestation.wallet.primitives.structs.BonehPublicKey, attestation: latest.ipv8.attestation.wallet.pengbaorange.structs.PengBaoAttestation) list[bytes]
Create challenges for a certain counterparty.
- Parameters:
PK (BonehPublicKey) – the public key of the party we are challenging
attestation (BonehAttestation) – the attestation information
- Returns:
the challenges to send
- Return type:
[str]
- create_challenge_response(SK: latest.ipv8.attestation.wallet.primitives.structs.BonehPrivateKey, attestation: latest.ipv8.attestation.wallet.pengbaorange.structs.PengBaoAttestation, challenge: bytes) bytes
Create an honest response to a challenge of our value.
- Parameters:
SK (BonehPrivateKey) – our secret key
attestation (Attestation) – the attestation information
challenge – the challenge to respond to
- Returns:
the response to a challenge
- Return type:
- create_certainty_aggregate(attestation: latest.ipv8.attestation.wallet.pengbaorange.structs.PengBaoAttestation | None) dict
Create an empty aggregate object, for matching to values.
- Returns:
the aggregate object
- Return type:
- abstract create_honesty_challenge(PK: latest.ipv8.attestation.wallet.primitives.structs.BonehPublicKey, value: int) bytes
Use a known value to check for honesty.
- Parameters:
PK (BonehPublicKey) – the public key of the party we are challenging
value (str) – the value to use
- Returns:
the challenge to send
- Return type:
- abstract process_honesty_challenge(value: int, response: bytes) bool
Given a response, check if it matches the expected value.
- process_challenge_response(aggregate: dict, challenge: bytes, response: bytes) dict
Given a response, update the current aggregate.
- abstract import_blob(blob: bytes) tuple[bytes, latest.ipv8.attestation.wallet.database.SecretKeyProtocol]
Not supported.