public class JarSignature
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
JarSignature.InputStreamSource |
private class |
JarSignature.ValidationStream |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
BLOB_SIGNATURE |
private java.security.cert.X509Certificate[] |
certChain |
private java.security.CodeSigner[] |
codeSigners |
private java.security.Signature |
sig |
private sun.security.pkcs.SignerInfo[] |
signerInfos |
| Modifier | Constructor and Description |
|---|---|
private |
JarSignature(java.security.Signature signature,
sun.security.pkcs.SignerInfo[] infos,
java.security.CodeSigner[] signers) |
private |
JarSignature(java.security.Signature signature,
java.security.cert.X509Certificate[] chain) |
| Modifier and Type | Method and Description |
|---|---|
private void |
addSignatureEntry(byte[] signature,
java.util.zip.ZipOutputStream jos) |
static JarSignature |
create(java.security.PrivateKey privateKey,
java.security.cert.X509Certificate[] chain)
Creates new signature for signing.
|
private static java.security.CodeSigner[] |
extractCodeSigners(sun.security.pkcs.SignerInfo[] infos,
sun.security.pkcs.PKCS7 block) |
java.security.CodeSigner[] |
getCodeSigners() |
private static java.lang.String |
getDigAlgFromSigAlg(java.lang.String signatureAlgorithm) |
(package private) sun.security.x509.AlgorithmId |
getDigestAlgorithm() |
private static java.lang.String |
getEncAlgFromSigAlg(java.lang.String signatureAlgorithm) |
byte[] |
getEncoded()
Returns encoded representation of signature.
|
(package private) sun.security.x509.AlgorithmId |
getKeyAlgorithm() |
private static java.security.Signature |
getSignature(sun.security.pkcs.SignerInfo info)
Derive Signature from signer info for use in validation.
|
private static java.security.Signature |
getSignature(java.lang.String keyAlgorithm)
Get default signature object base on default signature algorithm derived
from given key algorithm for use in encoding usage.
|
(package private) java.lang.String |
getSignatureAlgorithm() |
private static java.security.Timestamp |
getTimestamp(sun.security.pkcs.SignerInfo info,
java.security.cert.CertificateFactory certificateFactory) |
boolean |
isValid() |
boolean |
isValidationMode() |
static JarSignature |
load(byte[] rawSignature)
Loads jar signature from given byte array.
|
private static java.lang.String |
makeSigAlg(java.lang.String digAlg,
java.lang.String encAlg) |
private static void |
readFully(java.io.InputStream is) |
void |
signJarAsBLOB(JarSignature.InputStreamSource input,
java.util.zip.ZipOutputStream jos) |
void |
update(byte[] v) |
java.io.InputStream |
updateWithZipEntry(java.lang.String name,
java.io.InputStream is)
Performs partial validation of zip/jar entry with given name and
data stream.
|
public static final java.lang.String BLOB_SIGNATURE
private final java.security.Signature sig
private final java.security.cert.X509Certificate[] certChain
private final java.security.CodeSigner[] codeSigners
private final sun.security.pkcs.SignerInfo[] signerInfos
private JarSignature(java.security.Signature signature,
java.security.cert.X509Certificate[] chain)
private JarSignature(java.security.Signature signature,
sun.security.pkcs.SignerInfo[] infos,
java.security.CodeSigner[] signers)
public static JarSignature load(byte[] rawSignature) throws sun.security.pkcs.ParsingException, java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException
sun.security.pkcs.ParsingExceptionjava.security.cert.CertificateExceptionjava.io.IOExceptionjava.security.NoSuchAlgorithmExceptionjava.security.InvalidKeyExceptionjava.security.SignatureExceptionpublic static JarSignature create(java.security.PrivateKey privateKey, java.security.cert.X509Certificate[] chain) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
privateKey - Key to be used for signing.java.security.NoSuchAlgorithmExceptionjava.security.InvalidKeyExceptionpublic boolean isValidationMode()
private static java.security.Signature getSignature(java.lang.String keyAlgorithm)
throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmExceptionprivate static java.security.Signature getSignature(sun.security.pkcs.SignerInfo info)
throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmExceptionjava.lang.String getSignatureAlgorithm()
throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmExceptionsun.security.x509.AlgorithmId getDigestAlgorithm()
throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmExceptionsun.security.x509.AlgorithmId getKeyAlgorithm()
throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmExceptionprivate static java.lang.String makeSigAlg(java.lang.String digAlg,
java.lang.String encAlg)
private static java.lang.String getDigAlgFromSigAlg(java.lang.String signatureAlgorithm)
private static java.lang.String getEncAlgFromSigAlg(java.lang.String signatureAlgorithm)
public byte[] getEncoded()
throws java.security.NoSuchAlgorithmException,
java.security.SignatureException,
java.io.IOException
java.lang.UnsupportedOperationException - if called in validation mode.java.security.NoSuchAlgorithmExceptionjava.security.SignatureExceptionjava.io.IOExceptionpublic java.io.InputStream updateWithZipEntry(java.lang.String name,
java.io.InputStream is)
throws java.security.SignatureException
java.security.SignatureExceptionpublic void update(byte[] v)
throws java.security.SignatureException
java.security.SignatureExceptionpublic boolean isValid()
public java.security.CodeSigner[] getCodeSigners()
private static java.security.CodeSigner[] extractCodeSigners(sun.security.pkcs.SignerInfo[] infos,
sun.security.pkcs.PKCS7 block)
throws java.io.IOException,
java.security.NoSuchAlgorithmException,
java.security.SignatureException,
java.security.cert.CertificateException
java.io.IOExceptionjava.security.NoSuchAlgorithmExceptionjava.security.SignatureExceptionjava.security.cert.CertificateExceptionprivate static java.security.Timestamp getTimestamp(sun.security.pkcs.SignerInfo info,
java.security.cert.CertificateFactory certificateFactory)
throws java.io.IOException,
java.security.NoSuchAlgorithmException,
java.security.SignatureException,
java.security.cert.CertificateException
java.io.IOExceptionjava.security.NoSuchAlgorithmExceptionjava.security.SignatureExceptionjava.security.cert.CertificateExceptionpublic void signJarAsBLOB(JarSignature.InputStreamSource input, java.util.zip.ZipOutputStream jos) throws java.io.IOException, java.security.SignatureException, java.security.NoSuchAlgorithmException
java.io.IOExceptionjava.security.SignatureExceptionjava.security.NoSuchAlgorithmExceptionprivate void addSignatureEntry(byte[] signature,
java.util.zip.ZipOutputStream jos)
throws java.io.IOException
java.io.IOExceptionprivate static void readFully(java.io.InputStream is)
throws java.io.IOException
java.io.IOException