Как я могу создать java.security.Key из сжатого ByteArray, закодированного в SEC-1? ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Как я могу создать java.security.Key из сжатого ByteArray, закодированного в SEC-1?

Сообщение Anonymous »

Я использую кривую P-256, и у меня есть сжатый массив ByteArray, закодированный SEC-1, представляющий открытый ключ. Я хотел бы создать из него java.security.PublicKey для запуска ECDH, например:

Код: Выделить всё

val ka = KeyAgreement.getInstance("ECDH")
ka.init(myPrivateKey)
ka.doPhase(somePublicKey, true)
val sharedSecret = ka.generateSecret()
где myPrivateKey — мой закрытый ключ (у меня он есть как java.security.PrivateKey, это нормально), и somePublicKey должен быть получен из этого ByteArray Мне дано.
Из спецификации SEC 1 (точнее, главы 2.3.4) я понимаю, что построить java.security.spec.ECPoint (а затем java.security.PublicKey), соответствующий этой сжатой кодировке SEC-1, но с другой стороны, это кажется очень стандартным.
Есть ли способ сделать это с помощью java.security? Или с другой библиотекой?
Есть X509EncodedKeySpec(ByteArray), я наивно надеялся, что смогу найти какой-нибудь SEC1EncodedKeySpec(ByteArray)...

Подробнее здесь: https://stackoverflow.com/questions/793 ... -bytearray

Вернуться в «Android»