1
- from typing import (
2
- Callable ,
3
- Optional ,
4
- )
1
+ from collections .abc import Callable
5
2
6
3
from libp2p .abc import (
7
4
IPeerStore ,
45
42
)
46
43
from libp2p .security .base_transport import (
47
44
BaseSecureTransport ,
45
+ default_secure_bytes_provider ,
48
46
)
49
47
from libp2p .security .exceptions import (
50
48
HandshakeFailure ,
@@ -111,8 +109,8 @@ async def run_handshake(
111
109
local_private_key : PrivateKey ,
112
110
conn : IRawConnection ,
113
111
is_initiator : bool ,
114
- remote_peer_id : ID ,
115
- peerstore : Optional [ IPeerStore ] = None ,
112
+ remote_peer_id : ID | None ,
113
+ peerstore : IPeerStore | None = None ,
116
114
) -> ISecureConn :
117
115
"""Raise `HandshakeFailure` when handshake failed."""
118
116
msg = make_exchange_message (local_private_key .get_public_key ())
@@ -196,9 +194,12 @@ class InsecureTransport(BaseSecureTransport):
196
194
def __init__ (
197
195
self ,
198
196
local_key_pair : KeyPair ,
199
- secure_bytes_provider : Optional [ Callable [[int ], bytes ]] = None ,
200
- peerstore : Optional [ IPeerStore ] = None ,
197
+ secure_bytes_provider : Callable [[int ], bytes ] | None = None ,
198
+ peerstore : IPeerStore | None = None ,
201
199
) -> None :
200
+ # If secure_bytes_provider is None, use the default one
201
+ if secure_bytes_provider is None :
202
+ secure_bytes_provider = default_secure_bytes_provider
202
203
super ().__init__ (local_key_pair , secure_bytes_provider )
203
204
self .peerstore = peerstore
204
205
@@ -210,6 +211,7 @@ async def secure_inbound(self, conn: IRawConnection) -> ISecureConn:
210
211
211
212
:return: secure connection object (that implements secure_conn_interface)
212
213
"""
214
+ # For inbound connections, we don't know the remote peer ID yet
213
215
return await run_handshake (
214
216
self .local_peer , self .local_private_key , conn , False , None , self .peerstore
215
217
)
0 commit comments