@Override public String toString(String indentStr) { final StringWriter out = new StringWriter(); out.append(indentStr).append("OCSPToken["); out.append("ProductionTime: ").append(DSSUtils.formatInternal(productionDate)).append("; "); out.append("ThisUpdate: ").append(DSSUtils.formatInternal(thisUpdate)).append("; "); out.append("NextUpdate: ").append(DSSUtils.formatInternal(nextUpdate)).append('\n'); out.append("SignedBy: ").append(getIssuerX500Principal().toString()).append('\n'); indentStr += "\t"; out.append(indentStr).append("Signature algorithm: ").append(signatureAlgorithm == null ? "?" : signatureAlgorithm.getJCEId()).append('\n'); indentStr = indentStr.substring(1); out.append(indentStr).append("]"); return out.toString(); }
@Override public SignatureValue sign(ToBeSigned toBeSigned, DigestAlgorithm digestAlgorithm, MaskGenerationFunction mgf, DSSPrivateKeyEntry keyEntry) throws DSSException { if (!(keyEntry instanceof KSPrivateKeyEntry)) { throw new IllegalArgumentException("Only KSPrivateKeyEntry are supported"); } final EncryptionAlgorithm encryptionAlgorithm = keyEntry.getEncryptionAlgorithm(); final SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.getAlgorithm(encryptionAlgorithm, digestAlgorithm, mgf); final String javaSignatureAlgorithm = signatureAlgorithm.getJCEId(); LOG.info("Signature algorithm : {}", javaSignatureAlgorithm); try { final Signature signature = getSignatureInstance(javaSignatureAlgorithm); signature.initSign(((KSPrivateKeyEntry) keyEntry).getPrivateKey()); if (mgf != null) { signature.setParameter(createPSSParam(digestAlgorithm)); } signature.update(toBeSigned.getBytes()); final byte[] signatureValue = signature.sign(); SignatureValue value = new SignatureValue(); value.setAlgorithm(signatureAlgorithm); value.setValue(signatureValue); return value; } catch (Exception e) { throw new DSSException(e); } }