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.ParsingException
java.security.cert.CertificateException
java.io.IOException
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException
java.security.SignatureException
public 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.NoSuchAlgorithmException
java.security.InvalidKeyException
public boolean isValidationMode()
private static java.security.Signature getSignature(java.lang.String keyAlgorithm) throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
private static java.security.Signature getSignature(sun.security.pkcs.SignerInfo info) throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
java.lang.String getSignatureAlgorithm() throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
sun.security.x509.AlgorithmId getDigestAlgorithm() throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
sun.security.x509.AlgorithmId getKeyAlgorithm() throws java.security.NoSuchAlgorithmException
java.security.NoSuchAlgorithmException
private 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.NoSuchAlgorithmException
java.security.SignatureException
java.io.IOException
public java.io.InputStream updateWithZipEntry(java.lang.String name, java.io.InputStream is) throws java.security.SignatureException
java.security.SignatureException
public void update(byte[] v) throws java.security.SignatureException
java.security.SignatureException
public 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.IOException
java.security.NoSuchAlgorithmException
java.security.SignatureException
java.security.cert.CertificateException
private 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.IOException
java.security.NoSuchAlgorithmException
java.security.SignatureException
java.security.cert.CertificateException
public void signJarAsBLOB(JarSignature.InputStreamSource input, java.util.zip.ZipOutputStream jos) throws java.io.IOException, java.security.SignatureException, java.security.NoSuchAlgorithmException
java.io.IOException
java.security.SignatureException
java.security.NoSuchAlgorithmException
private void addSignatureEntry(byte[] signature, java.util.zip.ZipOutputStream jos) throws java.io.IOException
java.io.IOException
private static void readFully(java.io.InputStream is) throws java.io.IOException
java.io.IOException