httpsサーバーの証明書(公開鍵を使用)によってすでに暗号化されているメッセージがあります。このメッセージをさらに暗号化せずにhttpsサーバーに送信する必要があります(どの言語でも問題ありません)。
実際のケースは次のとおりです。1)サーバー上で証明書https(例:google)を使用して暗号化されたメッセージを作成します。2)このメッセージを友人(例:電子メール)に送信して、友人がメッセージの内容を「読み取る」ことができないようにします。 3)彼はこのメッセージ(暗号化されている)をグーグルに送信し、回答を受け取って読む必要があります。
英語でごめんなさい。ありがとうございます
私はおそらくひどく説明しました:私はpostメソッド(p1、p2)でhttpsサーバーに送信する2つのパラメーターを持っています:
String parms = "p1 = hello&p2 = world"; この文字列は、以下のようにサーバーhttpsの証明書の公開鍵で暗号化されています。
String encParms = encrpythWithCertificate (parms, "/tmp/localhost.localdomain.cer");
次に、この文字列(encParms)を同じ証明書を使用するhttpsサーバーに送信する必要があります。
だから私はこのコードを持っています:
HttpsURLConnection conn = .....
conn.setRequestProperty ("Content-Length", encParms.length ());
OutputStream outputStream = urlCon.getOutputStream ();
outputStream.write (encParms.toByteArray());
outputStream.close ();
parmsを送信すると、すべてが機能します。encParmsを送信しても機能しません。その理由は、encParmsがすでに暗号化されており、サーバーに対して理解できないメッセージを生成するための「2番目の暗号化パス」であるためだと思います。
私の質問は、httpsサーバーがメッセージを正しく受信できるようにメッセージencParmsを送信するにはどうすればよいですか?