0

私はJavaCard用のアプレットを試しています-それは非常に単純なSCWSサーバーレット(基本的にはGemalto Dev Suiteのテンプレート)です。カードにデータを保存したいのですが、どうすればよいですか?線形ファイルと循環ファイルに関する理論的な資料はいくつか見つかりました。

//編集

私はなんとかこのようなものを見つけることができました:

private byte createfile()
    {
        try{
            AdminFileView uiccAdminFileView = AdminFileViewBuilder.getTheUICCAdminFileView(JCSystem.CLEAR_ON_RESET);
            if(uiccAdminFileView == null){
                return 'a';
            }
            uiccAdminFileView.select((short)0x7F60);
            EditHandler editHandler = (EditHandler) HandlerBuilder.buildTLVHandler(HandlerBuilder.EDIT_HANDLER,
                    (short) 50);
            editHandler.clear();
            editHandler.appendArray(CreateEF, (short) 0,(short) CreateEF.length);
            uiccAdminFileView.createFile(editHandler);
            data[0] = (byte) 0x12;
            data[1] = (byte) 0x34;
            data[2] = (byte) 0x56;
            uiccAdminFileView.select((short)0xEE00);
            uiccAdminFileView.updateBinary((short) 0, data, (short)0, (short)3);
        } catch(UICCException e){

            return (byte)e.getReason();
        }
        return 'b';
    }

しかし、この時点では、毎回「a」が返されます。私が知る限り、アプレットのアクセス権と関係があります。

4

3 に答える 3

1

かつてJava CardにISO 7816-4ファイルベースのAPIがありましたが、それはずっと前に沈んでしまいました。あとは自分でプログラムするだけです。ファイルベースのカードとリモートで互換性を持たせるには、少なくとも ISO 7816-4 (2005) 規格が手元に必要です。

本当の「楽しみ」は、ファイルの選択とアクセス権を監視しながら、安全なメッセージング チャネルを介して 32K を超えるオフセットからファイル データを送信する必要があるときに始まります。この古い質問への答えを読んでいる人は誰でも、頑張ってください - そしてそれができることを知っています.

于 2012-02-14T21:03:57.423 に答える
0

あなたの問題はここで答えられているようです: http://developer.gemalto.com/nc/forums.html?view=single_thread&cat_uid=3&conf_uid=2&thread_uid=154

于 2012-03-22T08:22:53.397 に答える
0

「本物の」スマート カードの場合、APDU コマンドと呼ばれる標準的な方法でデータを作成/編集/削除します。これが機能するには、APDU を処理してファイルの作成/更新/読み取りなどを行うことができる OS がカードにインストールされている必要があります。 API を使用するか、仕様を読んですべてを自分で行います (アセンブリを扱う可能性が非常に高くなります)。私はあなたのカードが何であるかわからないので、具体的な指示を与えることはできません。マニュアルを読んでください。

于 2011-11-10T15:30:28.087 に答える