如果您的智能卡(PKCS11)中有私钥,则无法将此密钥包装在java.security.interfaces.RSAPrivateKey中,因为您的密钥材料位于安全设备中。
所以你可能必须在代码中更改提供程序:
ExternalSignature es = new PrivateKeySignature(pk, "SHA-1", "BC");
对于:
ExternalSignature es = new PrivateKeySignature(pk, "SHA-1", pkcs11Provider.getName());
希望这可以帮助,