私が理解しているように、デジタル署名は、自分の秘密鍵と受信者の公開鍵で暗号化(メッセージダイジェスト)することによって取得されます。
Javaでは、公開鍵を使用して署名の第2段階を実行する方法がわかりません。
Signature sig = Signature.getInstance("MD5WithRSA");
sig.initSign(privateKey);
sig.update(data);
byte[] signatureBytes = sig.sign();
APIを確認しましたが、公開鍵を使用する唯一のメソッドは検証用です...