public class SmimeMultipartSigned extends javax.mail.internet.MimeMultipart implements SmimeSignedObject
Please do not create wrapped messages containing a multipart signed message.
Constructor and Description |
---|
SmimeMultipartSigned(javax.activation.DataSource ds)
Create a new
SmimeMultipartSigned by reading from a DataSource. |
SmimeMultipartSigned(javax.mail.internet.MimeBodyPart bodyPart, oracle.security.crypto.core.AlgorithmIdentifier digestAlgID)
Create a new
SmimeMultipartSigned with the given body and algorithm identifier. |
Modifier and Type | Method and Description |
---|---|
void |
addCertificate(java.security.cert.X509Certificate cert)
Add a Certificate.
|
void |
addCRL(oracle.security.crypto.cert.CRL crl)
Add a CRL.
|
void |
addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert)
Add a Signature.
|
void |
addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, oracle.security.crypto.core.AlgorithmIdentifier digestAlgID, oracle.security.crypto.cert.AttributeSet signedAttributes)
Add a Signature.
|
void |
addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, java.util.Date timeStamp)
Add a Signature.
|
void |
addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, java.util.Date timeStamp, SmimeCapabilities smimeCaps)
Add a Signature.
|
void |
addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, SmimeCapabilities smimeCaps)
Add a Signature.
|
java.lang.String |
generateContentType()
Returns the content type.
|
java.lang.String |
generateContentType(boolean useStandardContentTypes)
Returns the content type.
|
java.util.Vector |
getCertificates()
Returns the list of X509 certificates included with this signed data object.
|
java.lang.String |
getContentType()
Returns the content type.
|
java.util.Vector |
getCRLs()
Returns the list of CRLs included with this signed data object.
|
javax.mail.internet.MimeBodyPart |
getEnclosedBodyPart()
Returns the message content that was signed.
|
EquivalentLabels |
getEquivalentLabels(java.security.cert.X509Certificate signerCert)
Returns the
EquivalentLabels if present or null . |
ESSSecurityLabel |
getESSSecurityLabel(java.security.cert.X509Certificate signerCert)
Returns the
ESSSecurityLabel if present or null . |
MLExpansionHistory |
getMLExpansionHistory(java.security.cert.X509Certificate signerCert)
Returns the
MLExpansionHistory attribute if present or null . |
ReceiptRequest |
getReceiptRequest(java.security.cert.X509Certificate signerCert)
Returns the
ReceiptRequest attribute if present or null . |
SigningCertificate |
getSigningCertificate(java.security.cert.X509Certificate signerCert)
Returns the
SigningCertificate Attribute if present or null . |
java.util.Enumeration |
signers()
Returns the list of signers.
|
protected void |
updateHeaders() |
void |
verify(oracle.security.crypto.cert.CertificateTrustPolicy trustPolicy)
Verify the Signature using the specified trust policy.
|
void |
verify(oracle.security.crypto.cert.CertificateTrustPolicy trustPolicy, javax.mail.Address[] senderAddresses)
Verify the Signature using the specified trust policy and list of email addresses.
|
void |
verifySignature(java.security.cert.X509Certificate signerCert)
Verify the Signature using the specified certificate.
|
void |
verifySignature(java.security.cert.X509Certificate signerCert, javax.mail.Address[] senderAddresses)
Verify the Signature using the specified certificate and list of email addresses.
|
void |
writeTo(java.io.OutputStream os, java.lang.String contentType)
Writes this
SmimeMultipartSigned to the given output stream. |
addBodyPart, addBodyPart, createInternetHeaders, createMimeBodyPart, createMimeBodyPart, getBodyPart, getBodyPart, getCount, getPreamble, initializeProperties, isComplete, parse, removeBodyPart, removeBodyPart, setPreamble, setSubType, writeTo
public SmimeMultipartSigned(javax.mail.internet.MimeBodyPart bodyPart, oracle.security.crypto.core.AlgorithmIdentifier digestAlgID) throws javax.mail.MessagingException
SmimeMultipartSigned
with the given body and algorithm identifier. Relevant canonicalizations, such as transforming text line-breaks to CRLF
, are applied to the body.bodyPart
- The message content.digestAlgID
- The digest algorithm.javax.mail.MessagingException
- An error occurred while setting the message content.public SmimeMultipartSigned(javax.activation.DataSource ds) throws javax.mail.MessagingException, java.io.IOException
SmimeMultipartSigned
by reading from a DataSource.ds
- The data source.java.io.IOException
- An I/O error error occurred or the message format is not correct.javax.mail.MessagingException
- An error occurred while initializing the message content.public void addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.io.IOException, java.security.cert.CertificateEncodingException, java.security.SignatureException
Note the changes in the method signature
Previously : public void addSignature (oracle.security.crypto.core.PrivateKey, X509 )
Now : public void addSignature (java.security.PrivateKey, X509Certificate )
Note the changes in the exceptions
Exceptions introduced -- NoSuchAlgorithmException,IOException,CertificateEncodingException,java.security.InvalidKeyException, java.security.SignatureException
Exceptions no longer thrown-- AlgorithmIdentifierException , oracle.security.crypto.core.InvalidKeyException, oracle.security.crypto.core.signatureException
signerKey
- The private key of the signer.signerCert
- The X509 certificate of the signer.java.security.NoSuchAlgorithmException
- Algorithm is not supported.java.security.InvalidKeyException
- Private Key format is not valid.java.security.SignatureException
- An error occurred while adding the signature.java.security.cert.CertificateEncodingException
- Specifies an encoding errorjava.io.IOException
- Input/Output Exception while instantiating X509 from an inputstreampublic void addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, java.util.Date timeStamp) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, java.security.cert.CertificateEncodingException
Note the changes in the method signature
Previously : public void addSignature (oracle.security.crypto.core.PrivateKey, X509,Date )
Now : public void addSignature (java.security.PrivateKey, X509Certificate ,Date )/
Note the changes in the exceptions
Exceptions introduced -- NoSuchAlgorithmException,IOException,CertificateEncodingException,java.security.InvalidKeyException, java.security.SignatureException
Exceptions no longer thrown-- AlgorithmIdentifierException , oracle.security.crypto.core.InvalidKeyException, oracle.security.crypto.core.signatureException
signerKey
- The private key of the signer.signerCert
- The X509 certificate of the signer.timeStamp
- The signingTime attriibute value.java.security.NoSuchAlgorithmException
- Algorithm is not supported.java.security.InvalidKeyException
- Private Key format is not valid.java.security.SignatureException
- An error occurred while adding the signature.java.security.cert.CertificateEncodingException
- Specifies an encoding errorjava.io.IOException
- Input/Output Exception while instantiating X509 from an inputstreampublic void addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, SmimeCapabilities smimeCaps) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, java.security.cert.CertificateEncodingException
Note the changes in the method signature
Previously : public void addSignature (oracle.security.crypto.core.PrivateKey, X509,SmimeCapabilities )
Now : public void addSignature (java.security.PrivateKey, X509Certificate ,SmimeCapabilities )
Note the changes in the exceptions
Exceptions introduced -- NoSuchAlgorithmException,IOException,CertificateEncodingException,java.security.InvalidKeyException, java.security.SignatureException
Exceptions no longer thrown-- AlgorithmIdentifierException , oracle.security.crypto.core.InvalidKeyException, oracle.security.crypto.core.signatureException
signerKey
- The private key of the signer.signerCert
- The X509 certificate of the signer.timeStamp
- The signingTime attriibute value.smimeCaps
- The SmimeCapabilities attribute value.java.security.NoSuchAlgorithmException
- Algorithm is not supported.java.security.InvalidKeyException
- Private Key format is not valid.java.security.SignatureException
- An error occurred while adding the signature.java.security.cert.CertificateEncodingException
- Specifies an encoding errorjava.io.IOException
- Input/Output Exception while instantiating X509 from an inputstreampublic void addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, java.util.Date timeStamp, SmimeCapabilities smimeCaps) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, java.security.cert.CertificateEncodingException
Note the changes in the method signature
Previously : public void addSignature (oracle.security.crypto.core.PrivateKey, X509,Date,SmimeCapabilities )
Now : public void addSignature (java.security.PrivateKey, X509Certificate ,Date,SmimeCapabilities )
Note the changes in the exceptions
Exceptions introduced -- NoSuchAlgorithmException,IOException,CertificateEncodingException,java.security.InvalidKeyException, java.security.SignatureException
Exceptions no longer thrown-- AlgorithmIdentifierException , oracle.security.crypto.core.InvalidKeyException, oracle.security.crypto.core.signatureException
signerKey
- The private key of the signer.signerCert
- The X509 certificate of the signer.timeStamp
- The signingTime attriibute value.smimeCaps
- The SmimeCapabilities attribute value.java.security.NoSuchAlgorithmException
- Algorithm is not supported.java.security.InvalidKeyException
- Private Key format is not valid.java.security.SignatureException
- An error occurred while adding the signature.java.security.cert.CertificateEncodingException
- Specifies an encoding errorjava.io.IOException
- Input/Output Exception while instantiating X509 from an inputstreampublic void addSignature(java.security.PrivateKey signerKey, java.security.cert.X509Certificate signerCert, oracle.security.crypto.core.AlgorithmIdentifier digestAlgID, oracle.security.crypto.cert.AttributeSet signedAttributes) throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.SignatureException, java.io.IOException, java.security.cert.CertificateEncodingException
The contentType and messageDigest must not be present in the AttributeSet signedAttributes.
Note the changes in the method signature
Previously : public void addSignature (oracle.security.crypto.core.PrivateKey, X509,AlgorithmIdentifier,AtrributeSet)
Now : public void addSignature (java.security.PrivateKey, X509Certificate ,AlgorithmIdentifier,AtrributeSet)
Note the changes in the exceptions
Exceptions introduced -- NoSuchAlgorithmException,IOException,CertificateEncodingException,java.security.InvalidKeyException, java.security.SignatureException
Exceptions no longer thrown-- AlgorithmIdentifierException , oracle.security.crypto.core.InvalidKeyException, oracle.security.crypto.core.signatureException
signerKey
- The private key of the signer.signerCert
- The X509 certificate of the signer.signedAttributes
- The set of Signed Attributes.AlgorithmIdentifierException
- Algorithm is not supported.java.security.InvalidKeyException
- Private Key format is not valid.java.security.SignatureException
- An error occurred while adding the signature.java.security.cert.CertificateEncodingException
- Specifies an encoding errorjava.io.IOException
- Input/Output Exception while instantiating X509 from an inputstreamjava.security.NoSuchAlgorithmException
public void addCertificate(java.security.cert.X509Certificate cert)
Note the changes in the method signature
Previously : public void addCertificate (X509)
Now : public void addCertificate (X509Certificate )
cert
- The X509 certificate.public void addCRL(oracle.security.crypto.cert.CRL crl)
crl
- The CRL.public javax.mail.internet.MimeBodyPart getEnclosedBodyPart() throws oracle.security.crypto.util.InvalidInputException, javax.mail.MessagingException
getEnclosedBodyPart
in interface SmimeSignedObject
MimeBodyPart
.oracle.security.crypto.util.InvalidInputException
- The message content type is not correct.javax.mail.MessagingException
- An error occurred while initializing the content.public java.util.Enumeration signers()
signers
in interface SmimeSignedObject
Vector
containing CMSSignerInfo
objects.public java.util.Vector getCertificates()
getCertificates
in interface SmimeSignedObject
Vector
containing X509
objects or null
if no list of certificates is present.public java.util.Vector getCRLs()
getCRLs
in interface SmimeSignedObject
Vector
containing CRL
objects or null
if no list of CRLs is present.public void verifySignature(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
Note the changes in the method signature
Previously : public void addCertificate (X509)
Now : public void addCertificate (X509Certificate )
verifySignature
in interface SmimeSignedObject
signerCert
- The X509 certificate.oracle.security.crypto.core.AuthenticationException
- Signature verification failed.java.security.SignatureException
- The specified certificate does not belong to any of the message signers.public void verifySignature(java.security.cert.X509Certificate signerCert, javax.mail.Address[] senderAddresses) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
Note the changes in the method signature
Previously : public void verifySignature (X509, Address[] )
Now :public void verifySignature (X509Certificate , Address[])
verifySignature
in interface SmimeSignedObject
signerCert
- The X509 certificate.oracle.security.crypto.core.AuthenticationException
- Signature verification failed or the email address in the certificate did not match any in the email address list.java.security.SignatureException
- The specified certificate does not belong to any of the message signers.public void verify(oracle.security.crypto.cert.CertificateTrustPolicy trustPolicy) throws oracle.security.crypto.core.AuthenticationException
verify
in interface SmimeSignedObject
trustPolicy
- The certificate trust policy.oracle.security.crypto.core.AuthenticationException
- Signature verification failed.public void verify(oracle.security.crypto.cert.CertificateTrustPolicy trustPolicy, javax.mail.Address[] senderAddresses) throws oracle.security.crypto.core.AuthenticationException
verify
in interface SmimeSignedObject
signerCert
- The certificate trust policy.oracle.security.crypto.core.AuthenticationException
- Signature verification failed or the email address in the certificate did not match any in the email address list.public ESSSecurityLabel getESSSecurityLabel(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
ESSSecurityLabel
if present or null
.
The signature of the SignerInfo that covers the ESSSecurityLabel is first verified. Then, it verifies that all the ESSSecurityLabels in the signed message are identical.
Note the changes in the method signature
Previously : public ESSSecurityLabel getESSSecurityLabel(X509)
Now :public ESSSecurityLabel getESSSecurityLabel(X509Certificate)
getESSSecurityLabel
in interface SmimeSignedObject
oracle.security.crypto.core.AuthenticationException
- Signature verification did not succeed on any SignerInfo.java.security.SignatureException
- No valid security label could be found.public EquivalentLabels getEquivalentLabels(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
EquivalentLabels
if present or null
.
The signature of the SignerInfo that covers the EquivalentLabels is first verified. Then, it verifies that all the EquivalentLabel's in the signed message are identical.
Note the changes in the method signature
Previously : public EquivalentLabels getEquivalentLabels(X509)
Now : public EquivalentLabels getEquivalentLabels(X509Certificate)
getEquivalentLabels
in interface SmimeSignedObject
oracle.security.crypto.core.AuthenticationException
- Signature verification did not succeed on any SignerInfo.java.security.SignatureException
- No valid equivalent labels could be found.public SigningCertificate getSigningCertificate(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
SigningCertificate
Attribute if present or null
.
The signature of the SignerInfo that covers the SigningCertificate is verified.
Note the changes in the method signature
Previously : public SigningCertificate getSigningCertificate (X509)
Now : public SigningCertificate getSigningCertificate (X509Certificate)
getSigningCertificate
in interface SmimeSignedObject
oracle.security.crypto.core.AuthenticationException
- Signature verification did not succeed on any SignerInfo.java.security.SignatureException
- No valid signing certificate could be found.public MLExpansionHistory getMLExpansionHistory(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
MLExpansionHistory
attribute if present or null
.
The signature of the SignerInfo that covers the MLExpansionHistory is first verified. Then, it verifies that all the MLExpansionHistory's in the signed message are identical.
Note the changes in the method signature
Previously : public MLExpansionHistory getMLExpansionHistory(X509)
Now : public MLExpansionHistory getMLExpansionHistory(X509Certificate )
getMLExpansionHistory
in interface SmimeSignedObject
oracle.security.crypto.core.AuthenticationException
- Signature verification did not succeed on any SignerInfo.java.security.SignatureException
- No valid mailing list expansion history could be found.public ReceiptRequest getReceiptRequest(java.security.cert.X509Certificate signerCert) throws oracle.security.crypto.core.AuthenticationException, java.security.SignatureException
ReceiptRequest
attribute if present or null
.
The signature of the SignerInfo that covers the ReceiptRequest is first verified. Then, it verifies that all the ReceiptRequest's in the signed message are identical.
Note the changes in the method signature
Previously : public ReceiptRequest getReceiptRequest (X509)
Now : public ReceiptRequest getReceiptRequest (X509Certificate )
getReceiptRequest
in interface SmimeSignedObject
oracle.security.crypto.core.AuthenticationException
- Signature verification did not succeed on any SignerInfo.java.security.SignatureException
- No valid receipt request could be found.public java.lang.String generateContentType(boolean useStandardContentTypes)
generateContentType
in interface SmimeObject
useStandardContentTypes
- If true
the standard content type is generated; If false
the experimental content type is generated.public java.lang.String generateContentType()
generateContentType
in interface SmimeObject
public java.lang.String getContentType()
getContentType
in class javax.mail.Multipart
protected void updateHeaders()
updateHeaders
in class javax.mail.internet.MimeMultipart
public void writeTo(java.io.OutputStream os, java.lang.String contentType) throws java.io.IOException, javax.mail.MessagingException
SmimeMultipartSigned
to the given output stream.writeTo
in interface SmimeObject
os
- The output stream to which this SmimeMultipartSigned
will be written.contentType
- The content type for this SmimeMultipartSigned
.java.io.IOException
- An I/O error occurred.javax.mail.MessagingException
- An error occurred while writing the smime message.