final byte[] paramP = key.getParams().getP().toByteArray();
final byte[] paramQ = key.getParams().getQ().toByteArray();
final byte[] paramG = key.getParams().getG().toByteArray();
final byte[] paramY = key.getY().toByteArray();
dsa = signatureFactory.newDSAKeyValue(paramP,paramQ,paramG,paramY,null,null,null);
keyValue = signatureFactory.newKeyValue(Collections.singletonList(dsa));
} else if (pubKey instanceof java.security.interfaces.RSAPublicKey) {
RSAKeyValue rsa = null;
final RSAPublicKey key = (RSAPublicKey)pubKey;
rsa = signatureFactory.newRSAKeyValue(key.getModulus().toByteArray(),key.getPublicExponent().toByteArray());