2013-07-04 1 views
1

Я новичок в разработке апплетов java-карт. Я хочу создать приложение, которое отправит мне открытый ключ для будущей аутентификации. Для движения я использовал алгоритм RSA для создания открытого ключа и закрытый ключ.отправить открытый ключ для размещения приложения в java-карте

keys = new KeyPair(KeyPair.ALG_RSA_CRT, KeyBuilder.LENGTH_RSA_2048); 
     keys.genKeyPair(); 
     rsa_publicKey = (RSAPublicKey) keys.getPublic(); 

теперь я хочу, чтобы отправить открытый ключ моего хозяина application.i нашел способ, используя модуль и экспоненту отправить открытый ключ для размещения application.but я не знаю, как осуществить это one.can некоторые один, пожалуйста, помогите мне реализовать отправку открытого ключа в принимающее приложение. Спасибо SSV

ответ

2

Если у вас уже есть экземпляр RSAPublicKey, это легко. Там у вас есть методы для получения модуля и экспонента. Оба метода get-copy копируют запрошенное значение в массив байтов, который вы можете вернуть в результате APDU.

Обратите внимание, что для обычной карты JavaCard без удлиненной APDU 2048-разрядный ключ RSA является большим, чтобы возвращать его в один ответ APDU. В зависимости от доступных байтов в APDU ответа вам может потребоваться разделить модуль и экспоненту на 2 или более части для их возврата на хост.

+0

+1 хотя максимальный размер в 256 байт должен быть достаточным для отправки даже модуля за один раз (если размер буфера не слишком мал или когда используется безопасный канал). На самом деле, у вас есть один бит, чтобы сэкономить: P –

+0

Спасибо. Олстед и Роберт.и в полной мере используя getModulus и getExponent.i будут очень полезны ваши комментарии. Для движения я получил 256 байт открытого ключа. У меня другая проблема. Это вопрос , http://stackoverflow.com/questions/17481157/genarate-key-token-using-mac-hash-funtion-in-java-card – Need

Смежные вопросы