Получение параметров ECPoint / ECPublicKeyParameters из байта [] в Bouncy Castle

Пока мне удалось сгенерировать пару ECDHE в легковесном API надувного замка. Однако у меня возникают проблемы с попыткой воссоздать открытый ключ из байта [].

Поскольку объект ECPublicKeyParameters имеет только один метод getQ (), я предполагаю, что это все, что требуется для восстановления ключа. Другие параметры, такие как используемая кривая (P-521), остаются постоянными.

Я делаю следующее:

AsymmetricCipherKeyPair kp = kpgen.generateKeyPair(); //ECDHE Key Generator

ECPublicKeyParameters pubKey = (ECPublicKeyParameters)kp.getPublic();
byte[] aPubKeybytes = pubKey.getQ().getEncoded(false); //Should I set to true or false?

Если нет другого способа получить необработанные байты открытого ключа pubKey, я не вижу способа получить байты без вызова метода getQ (), который возвращает объект ECPoint.

Мой вопрос в том, как реконструировать byte [] в объект ECPoint, используя облегченный API надувного замка. Или, еще лучше, как восстановить весь объект ECPublicKeyParameter, используя массив байтов, каким-то образом полученный из исходного объекта pubKey.


person initramfs    schedule 26.10.2013    source источник


Ответы (1)


Кого бы это ни касалось, я решил эту проблему, используя PublicKeyFactory и SubjectPublicKeyInfoFactory для кодирования и декодирования ключа.

С использованием:

byte[] key = SubjectPublicKeyInfoFactory.createSubjectPublicKeyInfo(pubKey).getEncoded();

Мне удалось получить необработанные байты ключа.

и используя:

ECPublicKeyParameters bpubKey = (ECPublicKeyParameters)PublicKeyFactory.createKey(key);

Мне удалось воссоздать открытый ключ.

person initramfs    schedule 27.10.2013