私はアプリの暗号メッセージのアンドロイド実装を行います。Libsodium鍵交換(共有秘密)が異なる方法で
サーバ側では、クライアントとサーバの間で共有秘密情報を作成するためにlibsodiumライブラリにcrypto_kx_client_session_keys
を使用しています。
私はJava設計のNaClライブラリを使用していますが、そのような方法はありません(古いlibsodium APIの使用法)。 だから私はcrypto_scalarmult_curve25519
(Diffie Hellman)の中で共有秘密を作るが、最後の共有秘密鍵はサーバのものと一致しない。
マイコード:
// Shared secret generation
crypto_scalarmult_curve25519(result, serverPublicKey: PublicKey, clientSecretKey: PrivateKey)
// Shared secret decrypt (with SecretBox)
crypto_secretbox_xsalsa20poly1305_open(message, ciphertext, ciphertext.length, nonce, sharedkey)
は異なる方法で同一の共有秘密鍵を作るためにあらゆる可能性はありますか?または、私は同様のメソッドを手動で記述する必要がありますか?