struct SignatureReferenceInformation
{
SignatureReferenceType nType;
OUString ouURI; // For ODF: XAdES digests (SHA256) or the old SHA1, from css::xml::crypto::DigestID
sal_Int32 nDigestID;
OUString ouDigestValue; /// Type of the reference: a URI (newer idSignedProperties references) or empty.
OUString ouType;
namespace svl::crypto
{ /// Specifies the algorithm used for signature generation and validation. enumclass SignatureMethodAlgorithm
{
RSA,
ECDSA
};
}
struct SignatureInformation
{
sal_Int32 nSecurityId;
css::xml::crypto::SecurityOperationStatus nStatus;
SignatureReferenceInformations vSignatureReferenceInfors; struct X509CertInfo
{
OUString X509IssuerName;
OUString X509SerialNumber;
OUString X509Certificate; /// OOXML certificate SHA-256 digest, empty for ODF except when doing XAdES signature.
OUString CertDigest; /// The certificate owner (aka subject).
OUString X509Subject;
}; typedef std::vector<X509CertInfo> X509Data; // note: at parse time, it's unknown which one is the signing certificate; // ImplVerifySignatures() figures it out and puts it at the back
std::vector<X509Data> X509Datas;
OUString ouSignatureId; // signature may contain multiple time stamps - check they're consistent bool hasInconsistentSigningTime = false; //We also keep the date and time as string. This is done when this //structure is created as a result of a XML signature being read. //When then a signature is added or another removed, then the original //XML signatures are written again (unless they have been removed). //If the date time string is converted into the DateTime structure //then information can be lost because it only holds a fractional //of a second with an accuracy of one hundredth of second. //If the string contains //milliseconds (because the document was created by an application other than OOo) //and the converted time is written back, then the string looks different //and the signature is broken.
OUString ouDateTime; /// The Id attribute of the <SignatureProperty> element that contains the <dc:date>.
OUString ouDateTimePropertyId; /// Characters of the <dc:description> element inside the signature.
OUString ouDescription; /// The Id attribute of the <SignatureProperty> element that contains the <dc:description>.
OUString ouDescriptionPropertyId; /// Valid and invalid signature line images
css::uno::Reference<css::graphic::XGraphic> aValidSignatureImage;
css::uno::Reference<css::graphic::XGraphic> aInvalidSignatureImage; /// Signature Line Id, used to map signatures to their respective signature line images.
OUString ouSignatureLineId; /// A full OOXML signature for unchanged roundtrip, empty for ODF.
css::uno::Sequence<sal_Int8> aSignatureBytes; /// For PDF: digest format, from css::xml::crypto::DigestID
sal_Int32 nDigestID; /// For PDF: has id-aa-signingCertificateV2 as a signed attribute. bool bHasSigningCertificate; /// For PDF: the byte range doesn't cover the whole document. bool bPartialDocumentSignature;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.