Module jdk.jartool

Class JarSigner


  • public final class JarSigner
    extends Object
    An immutable utility class to sign a jar file.

    A caller creates a JarSigner.Builder object, (optionally) sets some parameters, and calls build to create a JarSigner object. This JarSigner object can then be used to sign a jar file.

    Unless otherwise stated, calling a method of JarSigner or JarSigner.Builder with a null argument will throw a NullPointerException.

    Example:

     JarSigner signer = new JarSigner.Builder(key, certPath)
             .digestAlgorithm("SHA-1")
             .signatureAlgorithm("SHA1withDSA")
             .build();
     try (ZipFile in = new ZipFile(inputFile);
             FileOutputStream out = new FileOutputStream(outputFile)) {
         signer.sign(in, out);
     }
     
    Since:
    9
    • Method Detail

      • sign

        public void sign​(ZipFile file,
                         OutputStream os)
        Signs a file into an OutputStream. This method will not close file or os.
        Parameters:
        file - the file to sign.
        os - the output stream.
        Throws:
        JarSignerException - if the signing fails.
      • getDigestAlgorithm

        public String getDigestAlgorithm()
        Returns the digest algorithm for this JarSigner.

        The return value is never null.

        Returns:
        the digest algorithm.
      • getSignatureAlgorithm

        public String getSignatureAlgorithm()
        Returns the signature algorithm for this JarSigner.

        The return value is never null.

        Returns:
        the signature algorithm.
      • getTsa

        public URI getTsa()
        Returns the URI of the Time Stamping Authority (TSA).
        Returns:
        the URI of the TSA.
      • getSignerName

        public String getSignerName()
        Returns the signer name of this JarSigner.

        The return value is never null.

        Returns:
        the signer name.
      • getProperty

        public String getProperty​(String key)
        Returns the value of an additional implementation-specific property indicated by the specified key. If a property is not set but has a default value, the default value will be returned.
        Implementation Note:
        See JarSigner.Builder.setProperty(java.lang.String, java.lang.String) for a list of properties this implementation supports. All property names are case-insensitive.
        Parameters:
        key - the name of the property.
        Returns:
        the value for the property.
        Throws:
        UnsupportedOperationException - if the key is not supported by this implementation.