/** * Returns the digest algorithm associated to the given JCE name. * * @param name * @param defaultValue * @return */ public static DigestAlgorithm forName(final String name, final DigestAlgorithm defaultValue) { final String c14nName = DSSUtils.replaceStrStr(name, "-", ""); final DigestAlgorithm algorithm = Registry.ALGORITHMS.get(c14nName); if (algorithm == null) { return defaultValue; } return algorithm; }
public static String replaceStrStr(final String string, final String oldPattern, final String newPattern) { final StringBuffer stringBuffer = replaceStrStr(new StringBuffer(string), oldPattern, newPattern); return stringBuffer.toString(); }
/** * Returns the digest algorithm associated to the given JCE name. * * @param name * @return */ public static DigestAlgorithm forName(final String name) { final String c14nName = DSSUtils.replaceStrStr(name, "-", ""); final DigestAlgorithm algorithm = Registry.ALGORITHMS.get(c14nName); if (algorithm == null) { throw new DSSException("Unsupported algorithm: " + name + "/" + c14nName); } return algorithm; }
/** * This method converts the resource path to the absolute root resource path in source folder. * * @param resourcePath resource path * @return converted absolute resource source folder */ public String getAbsoluteSourceResourceFolder(final String resourcePath) throws DSSException { final URL uri = anyClass.getResource(resourcePath); if (uri == null) { return null; } final String absolutePath = uri.getPath(); try { final String decodedAbsoluteFolder = URLDecoder.decode(absolutePath, "UTF-8"); String finalFolder = DSSUtils.replaceStrStr(decodedAbsoluteFolder, "target/test-classes", "src/test/resources"); finalFolder = DSSUtils.replaceStrStr(finalFolder, "target/classes", "src/main/resources"); if (finalFolder.endsWith("/")) { finalFolder = finalFolder.substring(0, finalFolder.length() - 1); } return finalFolder; } catch (UnsupportedEncodingException e) { throw new DSSException(e); } }
/** * This method converts the resource path to the absolute root resource path in main source folder. * * @param resourcePath resource path * @return converted absolute resource main source folder */ public String getAbsoluteSourceMainResourceFolder(final String resourcePath) throws DSSException { final URL uri = anyClass.getResource(resourcePath); if (uri == null) { return null; } final String absolutePath = uri.getPath(); try { final String decodedAbsoluteFolder = URLDecoder.decode(absolutePath, "UTF-8"); String finalFolder = DSSUtils.replaceStrStr(decodedAbsoluteFolder, "target/test-classes", "src/main/resources"); finalFolder = DSSUtils.replaceStrStr(finalFolder, "target/classes", "src/main/resources"); if (finalFolder.endsWith("/")) { finalFolder = finalFolder.substring(0, finalFolder.length() - 1); } return finalFolder; } catch (UnsupportedEncodingException e) { throw new DSSException(e); } }
final String levelOnly = DSSUtils.replaceStrStr(level, "XADES-", "").toLowerCase();
private File prepareTargetFileName(final File file, final SignaturePackaging signaturePackaging, final String signatureLevel) { final File parentDir = file.getParentFile(); final String originalName = DSSUtils.substringBeforeLast(file.getName(), "."); final String originalExtension = "." + DSSUtils.substringAfterLast(file.getName(), "."); final String level = signatureLevel.toUpperCase(); if ((SignaturePackaging.ENVELOPING == signaturePackaging || SignaturePackaging.DETACHED == signaturePackaging) && level.startsWith("XADES")) { final String form = "xades"; final String levelOnly = DSSUtils.replaceStrStr(level, "XADES-", "").toLowerCase(); final String packaging = signaturePackaging.name().toLowerCase(); return new File(parentDir, originalName + "-" + form + "-" + packaging + "-" + levelOnly + ".xml"); } if (level.startsWith("CADES") && !originalExtension.toLowerCase().equals(".p7m")) { return new File(parentDir, originalName + originalExtension + ".p7m"); } if (level.startsWith("ASIC-S")) { return new File(parentDir, originalName + originalExtension + ".asics"); } if (level.startsWith("ASIC-E")) { return new File(parentDir, originalName + originalExtension + ".asice"); } return new File(parentDir, originalName + "-signed" + originalExtension); } }
private void addSignedBy(final XmlNode signatureNode, final XmlDom signCert) { String signedBy = "?"; if (signCert != null) { final String dn = signCert.getValue("./SubjectDistinguishedName[@Format='RFC2253']/text()"); final X509Principal principal = new X509Principal(dn); final Vector<?> values = principal.getValues(new ASN1ObjectIdentifier("2.5.4.3")); if (values != null && values.size() > 0) { final String string = (String) values.get(0); if (DSSUtils.isNotBlank(string)) { signedBy = DSSUtils.replaceStrStr(string, "&", "&"); } if (DSSUtils.isEmpty(signedBy)) { signedBy = DSSUtils.replaceStrStr(dn, "&", "&"); } } } signatureNode.addChild(NodeName.SIGNED_BY, signedBy); }