さらに掘り下げた後、私はBouncy Castle TLS APIを見つけました。長い話はこれまでのところはうまくいきましたが、途中でいくつかのぶつかり合いをしたので、私が行った手順をリストアップします。
ソースファイルとクラスファイルのzipファイルはhttp://www.bouncycastle.org/latest_releases.htmlからダウンロードできます。 「ソースとJavadoc」セクションの下にJ2MEのリンクがあります。
まず、ビルドパスに外部JARとしてcldc_classes.zipを追加しようとしました。弾き語りの城コードのコード補完は、Eclipseで今働いていました。だから私はシミュレータを起動しましたが、私がアプリを起動しようとしたときに、「アプリ起動エラー:モジュール 'cldc_classes.zip」が見つかりませんでした」私は周りを検索し、ビルドパス設定の[注文とエクスポート]タブのチェックボックスをオンにする必要があることを発見しました。おっとっと!
私はそれをチェックして再度実行しようとしましたが、シミュレータが起動する前に「エラー:前提条件に失敗しました」というメッセージが表示されました。いくつかの検索結果が明らかになったので、zipファイルをあらかじめ確認しておくと、それは簡単なように思えました。
preverifyツールを使用すると、Javaパッケージ内のクラスの重複した作成と関係があるように見えるエラーや警告が多発しました。 Bouncy Castle FAQで、彼らはこのようなことに言及し、コードを難読化することを提案しました。
私はJavaの難読化ツールを見つけました。少しの手間をかけてクラスを難読化することができました。事前検証しようとしましたが、もう一度失敗しました...私は事前に確認していた以上に多くのことを学びたくなかったので、ソースファイルをインポートすることにしました。
パッケージの1つがArrayListに頼っているエラーがありましたが、必要ではないようで、削除しました。それを実行しようとすると、「重複する属性の不一致: 'MIDlet-name'」に関するエラーが発生しました。エラーを取り除くためにこれを削除したパッケージの1つに.jadファイルがありました。テストパッケージを削除することもできます。
私は "Eclipse I/Oエラー:プログラム" jar "を実行できません:CreateProcess error = 2"を実行しようとしています。いくつかの検索で、PATH環境変数にjava jdk binフォルダ(C:\ Program Files \ Java \ jdk \ binのようなもの)を追加する必要があることが明らかになりました。
最後に私は実行することができ、データを正常に接続、送信、受信することができました。おそらく、プロジェクトで弾むような城の瓶を使う方が良い/簡単な方法があります。実際にコードが実際に動作していることがわかったので、これを調べることがあります。以下は、接続のサンプルコードです。
SocketConnection con = (SocketConnection)Connector.open("socket://url:443");
TlsProtocolHandler tph = new TlsProtocolHandler(con.openInputStream(), con.openOutputStream());
tph.connect(new AlwaysValidVerifier());
is = tph.getInputStream();
os = tph.getOutputStream();