Существует приложение, которое создает открытый ключ в кодировке base64 с помощью следующих команд:
openssl ecparam -genkey -name prime256v1 -out ecdsa.pem
openssl ec -noout -text -conv_form compressed -in ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64
Как использовать этот открытый ключ в Java? Согласно моим исследованиям, он должен работать с этим кодом, но я получаю исключение, что ключ слишком длинный:
EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode("base64-from-above");
KeyFactory keyFactory = KeyFactory.getInstance("EC");
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);