Class SignerInformation
java.lang.Object
org.bouncycastle.cms.SignerInformation
an expanded SignerInfo block from a CMS Signed message
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.bouncycastle.asn1.x509.AlgorithmIdentifierprotected final org.bouncycastle.asn1.x509.AlgorithmIdentifierprotected final org.bouncycastle.asn1.cms.SignerInfoprotected final org.bouncycastle.asn1.ASN1Setprotected final org.bouncycastle.asn1.ASN1Set -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSignerInformation(SignerInformation baseInfo) Protected constructor.protectedSignerInformation(SignerInformation baseInfo, org.bouncycastle.asn1.cms.SignerInfo info) Protected constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic SignerInformationaddCounterSigners(SignerInformation signerInformation, SignerId targetCounterSigner, SignerInformationStore counterSigners) Return a signer information object with the supplied counter-signers attached as an unsigned attribute of the counter-signer (anywhere in the counter-signature subtree ofsignerInformation) whose SID matchestargetCounterSigner.static SignerInformationaddCounterSigners(SignerInformation signerInformation, SignerInformationStore counterSigners) Return a signer information object with passed in SignerInformationStore representing counter signatures attached as an unsigned attribute.byte[]return the content digest that was calculated during verification.org.bouncycastle.asn1.ASN1ObjectIdentifierReturn a SignerInformationStore containing the counter signatures attached to this signer.return the object identifier for the signature.org.bouncycastle.asn1.x509.AlgorithmIdentifierbyte[]return the signature parameters, or null if there aren't any.byte[]return the DER encoding of the signed attributes.return the object identifier for the signature.byte[]return the signature/encryption algorithm parameters, or null if there aren't any.getSID()byte[]return the encoded signatureorg.bouncycastle.asn1.cms.AttributeTablereturn a table of the signed attributes - indexed by the OID of the attribute.org.bouncycastle.asn1.cms.AttributeTablereturn a table of the unsigned attributes indexed by the OID of the attribute.intreturn the version number for this objects underlying SignerInfo structure.booleanstatic SignerInformationreplaceUnsignedAttributes(SignerInformation signerInformation, org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes) Return a signer information object with the passed in unsigned attributes replacing the ones that are current associated with the object passed in.org.bouncycastle.asn1.cms.SignerInfoReturn the underlying ASN.1 object defining this SignerInformation object.booleanverify(SignerInformationVerifier verifier) Verify that the given verifier can successfully verify the signature on this SignerInformation object.
-
Field Details
-
info
protected final org.bouncycastle.asn1.cms.SignerInfo info -
digestAlgorithm
protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm -
encryptionAlgorithm
protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgorithm -
signedAttributeSet
protected final org.bouncycastle.asn1.ASN1Set signedAttributeSet -
unsignedAttributeSet
protected final org.bouncycastle.asn1.ASN1Set unsignedAttributeSet
-
-
Constructor Details
-
SignerInformation
Protected constructor. In some cases clients have their own idea about how to encode the signed attributes and calculate the signature. This constructor is to allow developers to deal with that by extending off the class and overriding methods like getSignedAttributes().- Parameters:
baseInfo- the SignerInformation to base this one on.
-
SignerInformation
Protected constructor. In some cases clients also have their own ideas about what goes in various SignerInfo fields. This constructor is to allow developers to deal with that by also tweaking the SignerInfo so that these issues can be dealt with.- Parameters:
baseInfo- the SignerInformation to base this one on.info- the SignerInfo to associate with the existing baseInfo data.
-
-
Method Details
-
isCounterSignature
public boolean isCounterSignature() -
getContentType
public org.bouncycastle.asn1.ASN1ObjectIdentifier getContentType() -
getSID
-
getVersion
public int getVersion()return the version number for this objects underlying SignerInfo structure. -
getDigestAlgorithmID
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getDigestAlgorithmID() -
getDigestAlgOID
return the object identifier for the signature. -
getDigestAlgParams
public byte[] getDigestAlgParams()return the signature parameters, or null if there aren't any. -
getContentDigest
public byte[] getContentDigest()return the content digest that was calculated during verification. -
getEncryptionAlgOID
return the object identifier for the signature. -
getEncryptionAlgParams
public byte[] getEncryptionAlgParams()return the signature/encryption algorithm parameters, or null if there aren't any. -
getSignedAttributes
public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes()return a table of the signed attributes - indexed by the OID of the attribute. -
getUnsignedAttributes
public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes()return a table of the unsigned attributes indexed by the OID of the attribute. -
getSignature
public byte[] getSignature()return the encoded signature -
getCounterSignatures
Return a SignerInformationStore containing the counter signatures attached to this signer. If no counter signatures are present an empty store is returned. -
getEncodedSignedAttributes
return the DER encoding of the signed attributes.- Throws:
IOException- if an encoding error occurs.
-
verify
Verify that the given verifier can successfully verify the signature on this SignerInformation object.- Parameters:
verifier- a suitably configured SignerInformationVerifier.- Returns:
- true if the signer information is verified, false otherwise.
- Throws:
CMSVerifierCertificateNotValidException- if the provider has an associated certificate and the certificate is not valid at the time given as the SignerInfo's signing time.CMSException- if the verifier is unable to create a ContentVerifiers or DigestCalculators.
-
toASN1Structure
public org.bouncycastle.asn1.cms.SignerInfo toASN1Structure()Return the underlying ASN.1 object defining this SignerInformation object.- Returns:
- a SignerInfo.
-
replaceUnsignedAttributes
public static SignerInformation replaceUnsignedAttributes(SignerInformation signerInformation, org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes) Return a signer information object with the passed in unsigned attributes replacing the ones that are current associated with the object passed in.- Parameters:
signerInformation- the signerInfo to be used as the basis.unsignedAttributes- the unsigned attributes to add.- Returns:
- a copy of the original SignerInformationObject with the changed attributes.
-
addCounterSigners
public static SignerInformation addCounterSigners(SignerInformation signerInformation, SignerInformationStore counterSigners) Return a signer information object with passed in SignerInformationStore representing counter signatures attached as an unsigned attribute. The supplied counter-signers become peers of any counter-signers already attached tosignerInformation— to nest a counter- signature underneath an existing counter-signer (a counter-counter-signature) use the three-argument overload that takes a target SignerId.- Parameters:
signerInformation- the signerInfo to be used as the basis.counterSigners- signer info objects carrying counter signature.- Returns:
- a copy of the original SignerInformationObject with the changed attributes.
-
addCounterSigners
public static SignerInformation addCounterSigners(SignerInformation signerInformation, SignerId targetCounterSigner, SignerInformationStore counterSigners) Return a signer information object with the supplied counter-signers attached as an unsigned attribute of the counter-signer (anywhere in the counter-signature subtree ofsignerInformation) whose SID matchestargetCounterSigner. The containing SignerInfos are rebuilt on the way back up; counter-signatures live in unsignedAttributes which is not covered by the enclosing signer's signature, so no re-signing is performed and all existing signatures remain valid.If multiple counter-signers in the subtree match the SID, the supplied counter-signers are appended to each of them.
- Parameters:
signerInformation- the signerInfo whose counter-signature subtree is to be enriched.targetCounterSigner- SID identifying the counter-signer to attach to.counterSigners- signer info objects carrying counter-signatures to nest under the target.- Returns:
- a copy of
signerInformationwith the change applied. - Throws:
IllegalArgumentException- if no counter-signer in the subtree matchestargetCounterSigner.
-