Конвертировать объект в byte[] в Java Card

Как я могу преобразовать объект (экземпляр PublicKey) чтобы byte[] и наоборот в апплетах Java Card?

Я использую Java Card 2.1.1 и JCDK 2.1.2.

1 ответ

Решение

Java Card не предоставляет никакого встроенного механизма для сериализации PublicKey объект (или объекты в целом) в байтовый массив или десериализацию байтового массива обратно в объект.

Следовательно, вам потребуется вручную выполнить такую ​​сериализацию / десериализацию. Для объекта, который реализует PublicKey интерфейс, это будет означать, что вам сначала нужно выяснить, какой тип ключевого объекта это, например, RSAPublicKey, Например, если вы знаете, что открытый ключ является RSAPublicKey, вы можете извлечь тип (getType()), размер (getSize()), показатель степени (getExponent()) и модуль (getModulus()) параметров и сохраните их в байтовом массиве. Позже вы можете десериализовать байтовый массив, извлекая эти значения и создавая новый ключ, используя KeyBuilder.buildKey() метод.

Другие вопросы по тегам