mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-11 07:30:55 +00:00
Catch SedesException in deserialize_public_key
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from libp2p.crypto.exceptions import MissingDeserializerError
|
||||||
from libp2p.crypto.keys import PrivateKey, PublicKey
|
from libp2p.crypto.keys import PrivateKey, PublicKey
|
||||||
from libp2p.crypto.pb import crypto_pb2
|
from libp2p.crypto.pb import crypto_pb2
|
||||||
from libp2p.crypto.serialization import deserialize_public_key
|
from libp2p.crypto.serialization import deserialize_public_key
|
||||||
@ -82,6 +83,8 @@ class InsecureSession(BaseSession):
|
|||||||
raise HandshakeFailure(
|
raise HandshakeFailure(
|
||||||
f"unknown `key_type` of remote_msg.pubkey={remote_msg.pubkey}"
|
f"unknown `key_type` of remote_msg.pubkey={remote_msg.pubkey}"
|
||||||
)
|
)
|
||||||
|
except MissingDeserializerError as error:
|
||||||
|
raise HandshakeFailure(error)
|
||||||
peer_id_from_received_pubkey = ID.from_pubkey(received_pubkey)
|
peer_id_from_received_pubkey = ID.from_pubkey(received_pubkey)
|
||||||
if peer_id_from_received_pubkey != received_peer_id:
|
if peer_id_from_received_pubkey != received_peer_id:
|
||||||
raise HandshakeFailure(
|
raise HandshakeFailure(
|
||||||
|
|||||||
@ -14,6 +14,7 @@ from libp2p.crypto.authenticated_encryption import (
|
|||||||
)
|
)
|
||||||
from libp2p.crypto.authenticated_encryption import MacAndCipher as Encrypter
|
from libp2p.crypto.authenticated_encryption import MacAndCipher as Encrypter
|
||||||
from libp2p.crypto.ecc import ECCPublicKey
|
from libp2p.crypto.ecc import ECCPublicKey
|
||||||
|
from libp2p.crypto.exceptions import MissingDeserializerError
|
||||||
from libp2p.crypto.key_exchange import create_ephemeral_key_pair
|
from libp2p.crypto.key_exchange import create_ephemeral_key_pair
|
||||||
from libp2p.crypto.keys import PrivateKey, PublicKey
|
from libp2p.crypto.keys import PrivateKey, PublicKey
|
||||||
from libp2p.crypto.serialization import deserialize_public_key
|
from libp2p.crypto.serialization import deserialize_public_key
|
||||||
@ -31,6 +32,7 @@ from .exceptions import (
|
|||||||
InvalidSignatureOnExchange,
|
InvalidSignatureOnExchange,
|
||||||
PeerMismatchException,
|
PeerMismatchException,
|
||||||
SecioException,
|
SecioException,
|
||||||
|
SedesException,
|
||||||
SelfEncryption,
|
SelfEncryption,
|
||||||
)
|
)
|
||||||
from .pb.spipe_pb2 import Exchange, Propose
|
from .pb.spipe_pb2 import Exchange, Propose
|
||||||
@ -168,7 +170,10 @@ class Proposal:
|
|||||||
|
|
||||||
nonce = protobuf.rand
|
nonce = protobuf.rand
|
||||||
public_key_protobuf_bytes = protobuf.public_key
|
public_key_protobuf_bytes = protobuf.public_key
|
||||||
public_key = deserialize_public_key(public_key_protobuf_bytes)
|
try:
|
||||||
|
public_key = deserialize_public_key(public_key_protobuf_bytes)
|
||||||
|
except MissingDeserializerError as error:
|
||||||
|
raise SedesException(error)
|
||||||
exchanges = protobuf.exchanges
|
exchanges = protobuf.exchanges
|
||||||
ciphers = protobuf.ciphers
|
ciphers = protobuf.ciphers
|
||||||
hashes = protobuf.hashes
|
hashes = protobuf.hashes
|
||||||
|
|||||||
Reference in New Issue
Block a user