Построение P2P-сети и узловые соединения требуют обмена сертификатами. Сертификат имеет вид json:
[[time(),
requestingPeersID,
localPeersPublicRSAkey],
RSAsignature]
- PeerID - это SHA512 [: 16] ha sh их опубликованных c ключей.
- Криптография - это библиотека I Я использую для ключевых функций (настройки по умолчанию).
Цель состоит в том, чтобы получить все в байтах для отправки через sendall ().
Проблема:
def cert(self, ID):
ID = ID.decode()
cert = dumps([time(), ID, self.public.decode()])
return dumps([cert, self.sign(cert.encode()).decode()]).encode()
Когда я пытаюсь преобразовать свою подпись RSA в строку (чтобы я мог выгрузить весь сертификат в строку, я получаю:
UnicodeDecodeError: 'utf-8' code c не могу декодировать байт 0xae в позиции 2: недопустимый начальный байт
Я читал, что существуют другие форматы, кроме utf-8. Было бы неплохо использовать один из них?