私はECDSA秘密鍵文字列をbase64で持っています(私はこの文字列をこのhttps://stackoverflow.com/a/8571649/7661555答えでregexpでチェックします)。Base64文字列からPrivateKeyを作成します。ECDSA秘密鍵
私はこの文字列からPrivateKeyインスタンスを生成しようとします。 私は私のプロジェクトでSpongyCastleを含め、このコードでそれを生成しよう:
PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(encKey);
KeyFactory keyFactory = KeyFactory.getInstance("ECDSA", "SC");
PrivateKey priv = keyFactory.generatePrivate(privKeySpec);
しかし、私はこのコードを実行すると、私は次の例外を取得:
W/System.errの:java.securityを。 spec.InvalidKeySpecException:エンコードされたキー仕様が認識されない
私は何が間違っているのか教えてもらえますか?
P.S. PrivateKeyを生成した後、別の文字列に署名する必要があります。この目的のために iは、次のコードを見つける:
Signature sig = Signature.getInstance("SHA256withECDSA");
sig.initSign(priv);
sig.update(token.getBytes());
は、この正しい方法ですか?それとも何かが別の例外につながる可能性がありますか?