Я пытаюсь реализовать алгоритм X3DH из Signal в Go. Однако я застрял в том, как подписать Public Signed PreKey.
Согласно спецификациям, это должен быть ключ X25519. Глядя на предыдущие реализации на Github, они сгенерировали ключ [32]byte
из пакета curve25519
, а затем преобразовали его в ключ ed25519
, а затем подписали его.
Однако пакеты, которые они использовали для преобразования, устарели (github.com/agl/ed25519
). Поэтому мне нужно либо преобразовать ключи в ed25519
, чтобы я мог подписать их текущим пакетом ed25519
(golang.org/x/crypto/25519
), либо реализовать функцию подписи и проверки для ключей curve25519
.