xml.metadatasharing.DigitalSignatureObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stix Show documentation
Show all versions of stix Show documentation
The Java bindings for STIX v.1.2.0.2
/**
* Copyright (c) 2015, The MITRE Corporation. All rights reserved.
* See LICENSE for complete terms.
*/
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2015.06.23 at 10:59:44 AM EDT
//
package xml.metadatasharing;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
import javax.xml.transform.stream.StreamSource;
import org.jvnet.jaxb2_commons.lang.Equals;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
import org.jvnet.jaxb2_commons.lang.HashCode;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.ToString;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
import org.mitre.stix.DocumentUtilities;
import org.mitre.stix.STIXSchema;
import org.mitre.stix.ValidationEventHandler;
/**
* Digital signature object, used to hold information about digitally signed binaries with regards to the certificate used and its validity.
*
* Java class for digitalSignatureObject complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="digitalSignatureObject">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="certificateIssuer" type="{http://www.w3.org/2001/XMLSchema}string"/>
* <element name="certificateSubject" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="certificateValidity" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
* <element name="certificateRevocationTimestamp" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
* <element name="signingTimestamp" minOccurs="0">
* <complexType>
* <simpleContent>
* <extension base="<http://www.w3.org/2001/XMLSchema>dateTime">
* <attribute name="valid" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* </extension>
* </simpleContent>
* </complexType>
* </element>
* </sequence>
* <attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="type">
* <simpleType>
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
* <enumeration value="CatalogSigned"/>
* <enumeration value="CodeSigned"/>
* </restriction>
* </simpleType>
* </attribute>
* </restriction>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "digitalSignatureObject", propOrder = { "certificateIssuer",
"certificateSubject", "certificateValidity",
"certificateRevocationTimestamp", "signingTimestamp" })
public class DigitalSignatureObject implements Equals, HashCode, ToString {
@XmlElement(required = true)
protected String certificateIssuer;
protected String certificateSubject;
protected boolean certificateValidity;
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar certificateRevocationTimestamp;
protected DigitalSignatureObject.SigningTimestamp signingTimestamp;
@XmlAttribute(name = "id", required = true)
protected String id;
@XmlAttribute(name = "type")
protected String type;
/**
* Default no-arg constructor
*
*/
public DigitalSignatureObject() {
super();
}
/**
* Fully-initialising value constructor
*
*/
public DigitalSignatureObject(final String certificateIssuer,
final String certificateSubject, final boolean certificateValidity,
final XMLGregorianCalendar certificateRevocationTimestamp,
final DigitalSignatureObject.SigningTimestamp signingTimestamp,
final String id, final String type) {
this.certificateIssuer = certificateIssuer;
this.certificateSubject = certificateSubject;
this.certificateValidity = certificateValidity;
this.certificateRevocationTimestamp = certificateRevocationTimestamp;
this.signingTimestamp = signingTimestamp;
this.id = id;
this.type = type;
}
/**
* Gets the value of the certificateIssuer property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCertificateIssuer() {
return certificateIssuer;
}
/**
* Sets the value of the certificateIssuer property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCertificateIssuer(String value) {
this.certificateIssuer = value;
}
/**
* Gets the value of the certificateSubject property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCertificateSubject() {
return certificateSubject;
}
/**
* Sets the value of the certificateSubject property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCertificateSubject(String value) {
this.certificateSubject = value;
}
/**
* Gets the value of the certificateValidity property.
*
*/
public boolean isCertificateValidity() {
return certificateValidity;
}
/**
* Sets the value of the certificateValidity property.
*
*/
public void setCertificateValidity(boolean value) {
this.certificateValidity = value;
}
/**
* Gets the value of the certificateRevocationTimestamp property.
*
* @return
* possible object is
* {@link XMLGregorianCalendar }
*
*/
public XMLGregorianCalendar getCertificateRevocationTimestamp() {
return certificateRevocationTimestamp;
}
/**
* Sets the value of the certificateRevocationTimestamp property.
*
* @param value
* allowed object is
* {@link XMLGregorianCalendar }
*
*/
public void setCertificateRevocationTimestamp(XMLGregorianCalendar value) {
this.certificateRevocationTimestamp = value;
}
/**
* Gets the value of the signingTimestamp property.
*
* @return
* possible object is
* {@link DigitalSignatureObject.SigningTimestamp }
*
*/
public DigitalSignatureObject.SigningTimestamp getSigningTimestamp() {
return signingTimestamp;
}
/**
* Sets the value of the signingTimestamp property.
*
* @param value
* allowed object is
* {@link DigitalSignatureObject.SigningTimestamp }
*
*/
public void setSigningTimestamp(
DigitalSignatureObject.SigningTimestamp value) {
this.signingTimestamp = value;
}
/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getId() {
return id;
}
/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setId(String value) {
this.id = value;
}
/**
* Gets the value of the type property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getType() {
return type;
}
/**
* Sets the value of the type property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setType(String value) {
this.type = value;
}
public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator,
Object object, EqualsStrategy strategy) {
if (!(object instanceof DigitalSignatureObject)) {
return false;
}
if (this == object) {
return true;
}
final DigitalSignatureObject that = ((DigitalSignatureObject) object);
{
String lhsCertificateIssuer;
lhsCertificateIssuer = this.getCertificateIssuer();
String rhsCertificateIssuer;
rhsCertificateIssuer = that.getCertificateIssuer();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"certificateIssuer", lhsCertificateIssuer), LocatorUtils
.property(thatLocator, "certificateIssuer",
rhsCertificateIssuer), lhsCertificateIssuer,
rhsCertificateIssuer)) {
return false;
}
}
{
String lhsCertificateSubject;
lhsCertificateSubject = this.getCertificateSubject();
String rhsCertificateSubject;
rhsCertificateSubject = that.getCertificateSubject();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"certificateSubject", lhsCertificateSubject), LocatorUtils
.property(thatLocator, "certificateSubject",
rhsCertificateSubject), lhsCertificateSubject,
rhsCertificateSubject)) {
return false;
}
}
{
boolean lhsCertificateValidity;
lhsCertificateValidity = (true ? this.isCertificateValidity()
: false);
boolean rhsCertificateValidity;
rhsCertificateValidity = (true ? that.isCertificateValidity()
: false);
if (!strategy.equals(LocatorUtils.property(thisLocator,
"certificateValidity", lhsCertificateValidity),
LocatorUtils.property(thatLocator, "certificateValidity",
rhsCertificateValidity), lhsCertificateValidity,
rhsCertificateValidity)) {
return false;
}
}
{
XMLGregorianCalendar lhsCertificateRevocationTimestamp;
lhsCertificateRevocationTimestamp = this
.getCertificateRevocationTimestamp();
XMLGregorianCalendar rhsCertificateRevocationTimestamp;
rhsCertificateRevocationTimestamp = that
.getCertificateRevocationTimestamp();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"certificateRevocationTimestamp",
lhsCertificateRevocationTimestamp), LocatorUtils.property(
thatLocator, "certificateRevocationTimestamp",
rhsCertificateRevocationTimestamp),
lhsCertificateRevocationTimestamp,
rhsCertificateRevocationTimestamp)) {
return false;
}
}
{
DigitalSignatureObject.SigningTimestamp lhsSigningTimestamp;
lhsSigningTimestamp = this.getSigningTimestamp();
DigitalSignatureObject.SigningTimestamp rhsSigningTimestamp;
rhsSigningTimestamp = that.getSigningTimestamp();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"signingTimestamp", lhsSigningTimestamp), LocatorUtils
.property(thatLocator, "signingTimestamp",
rhsSigningTimestamp), lhsSigningTimestamp,
rhsSigningTimestamp)) {
return false;
}
}
{
String lhsId;
lhsId = this.getId();
String rhsId;
rhsId = that.getId();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "id", lhsId),
LocatorUtils.property(thatLocator, "id", rhsId), lhsId,
rhsId)) {
return false;
}
}
{
String lhsType;
lhsType = this.getType();
String rhsType;
rhsType = that.getType();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "type", lhsType),
LocatorUtils.property(thatLocator, "type", rhsType),
lhsType, rhsType)) {
return false;
}
}
return true;
}
public boolean equals(Object object) {
final EqualsStrategy strategy = JAXBEqualsStrategy.INSTANCE;
return equals(null, null, object, strategy);
}
public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
int currentHashCode = 1;
{
String theCertificateIssuer;
theCertificateIssuer = this.getCertificateIssuer();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"certificateIssuer", theCertificateIssuer),
currentHashCode, theCertificateIssuer);
}
{
String theCertificateSubject;
theCertificateSubject = this.getCertificateSubject();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"certificateSubject", theCertificateSubject),
currentHashCode, theCertificateSubject);
}
{
boolean theCertificateValidity;
theCertificateValidity = (true ? this.isCertificateValidity()
: false);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"certificateValidity", theCertificateValidity),
currentHashCode, theCertificateValidity);
}
{
XMLGregorianCalendar theCertificateRevocationTimestamp;
theCertificateRevocationTimestamp = this
.getCertificateRevocationTimestamp();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"certificateRevocationTimestamp",
theCertificateRevocationTimestamp), currentHashCode,
theCertificateRevocationTimestamp);
}
{
DigitalSignatureObject.SigningTimestamp theSigningTimestamp;
theSigningTimestamp = this.getSigningTimestamp();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"signingTimestamp", theSigningTimestamp), currentHashCode,
theSigningTimestamp);
}
{
String theId;
theId = this.getId();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "id", theId),
currentHashCode, theId);
}
{
String theType;
theType = this.getType();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "type", theType),
currentHashCode, theType);
}
return currentHashCode;
}
public int hashCode() {
final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
return this.hashCode(null, strategy);
}
public DigitalSignatureObject withCertificateIssuer(String value) {
setCertificateIssuer(value);
return this;
}
public DigitalSignatureObject withCertificateSubject(String value) {
setCertificateSubject(value);
return this;
}
public DigitalSignatureObject withCertificateValidity(boolean value) {
setCertificateValidity(value);
return this;
}
public DigitalSignatureObject withCertificateRevocationTimestamp(
XMLGregorianCalendar value) {
setCertificateRevocationTimestamp(value);
return this;
}
public DigitalSignatureObject withSigningTimestamp(
DigitalSignatureObject.SigningTimestamp value) {
setSigningTimestamp(value);
return this;
}
public DigitalSignatureObject withId(String value) {
setId(value);
return this;
}
public DigitalSignatureObject withType(String value) {
setType(value);
return this;
}
public String toString() {
final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
public StringBuilder append(ObjectLocator locator, StringBuilder buffer,
ToStringStrategy strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
public StringBuilder appendFields(ObjectLocator locator,
StringBuilder buffer, ToStringStrategy strategy) {
{
String theCertificateIssuer;
theCertificateIssuer = this.getCertificateIssuer();
strategy.appendField(locator, this, "certificateIssuer", buffer,
theCertificateIssuer);
}
{
String theCertificateSubject;
theCertificateSubject = this.getCertificateSubject();
strategy.appendField(locator, this, "certificateSubject", buffer,
theCertificateSubject);
}
{
boolean theCertificateValidity;
theCertificateValidity = (true ? this.isCertificateValidity()
: false);
strategy.appendField(locator, this, "certificateValidity", buffer,
theCertificateValidity);
}
{
XMLGregorianCalendar theCertificateRevocationTimestamp;
theCertificateRevocationTimestamp = this
.getCertificateRevocationTimestamp();
strategy.appendField(locator, this,
"certificateRevocationTimestamp", buffer,
theCertificateRevocationTimestamp);
}
{
DigitalSignatureObject.SigningTimestamp theSigningTimestamp;
theSigningTimestamp = this.getSigningTimestamp();
strategy.appendField(locator, this, "signingTimestamp", buffer,
theSigningTimestamp);
}
{
String theId;
theId = this.getId();
strategy.appendField(locator, this, "id", buffer, theId);
}
{
String theType;
theType = this.getType();
strategy.appendField(locator, this, "type", buffer, theType);
}
return buffer;
}
/**
* Java class for anonymous complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType>
* <simpleContent>
* <extension base="<http://www.w3.org/2001/XMLSchema>dateTime">
* <attribute name="valid" type="{http://www.w3.org/2001/XMLSchema}boolean" />
* </extension>
* </simpleContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = { "value" })
public static class SigningTimestamp implements Equals, HashCode, ToString {
@XmlValue
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar value;
@XmlAttribute(name = "valid")
protected Boolean valid;
/**
* Default no-arg constructor
*
*/
public SigningTimestamp() {
super();
}
/**
* Fully-initialising value constructor
*
*/
public SigningTimestamp(final XMLGregorianCalendar value,
final Boolean valid) {
this.value = value;
this.valid = valid;
}
/**
* Gets the value of the value property.
*
* @return
* possible object is
* {@link XMLGregorianCalendar }
*
*/
public XMLGregorianCalendar getValue() {
return value;
}
/**
* Sets the value of the value property.
*
* @param value
* allowed object is
* {@link XMLGregorianCalendar }
*
*/
public void setValue(XMLGregorianCalendar value) {
this.value = value;
}
/**
* Gets the value of the valid property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isValid() {
return valid;
}
/**
* Sets the value of the valid property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setValid(Boolean value) {
this.valid = value;
}
public boolean equals(ObjectLocator thisLocator,
ObjectLocator thatLocator, Object object,
EqualsStrategy strategy) {
if (!(object instanceof DigitalSignatureObject.SigningTimestamp)) {
return false;
}
if (this == object) {
return true;
}
final DigitalSignatureObject.SigningTimestamp that = ((DigitalSignatureObject.SigningTimestamp) object);
{
XMLGregorianCalendar lhsValue;
lhsValue = this.getValue();
XMLGregorianCalendar rhsValue;
rhsValue = that.getValue();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "value", lhsValue),
LocatorUtils.property(thatLocator, "value", rhsValue),
lhsValue, rhsValue)) {
return false;
}
}
{
Boolean lhsValid;
lhsValid = this.isValid();
Boolean rhsValid;
rhsValid = that.isValid();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "valid", lhsValid),
LocatorUtils.property(thatLocator, "valid", rhsValid),
lhsValid, rhsValid)) {
return false;
}
}
return true;
}
public boolean equals(Object object) {
final EqualsStrategy strategy = JAXBEqualsStrategy.INSTANCE;
return equals(null, null, object, strategy);
}
public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
int currentHashCode = 1;
{
XMLGregorianCalendar theValue;
theValue = this.getValue();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "value", theValue),
currentHashCode, theValue);
}
{
Boolean theValid;
theValid = this.isValid();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "valid", theValid),
currentHashCode, theValid);
}
return currentHashCode;
}
public int hashCode() {
final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
return this.hashCode(null, strategy);
}
public DigitalSignatureObject.SigningTimestamp withValue(
XMLGregorianCalendar value) {
setValue(value);
return this;
}
public DigitalSignatureObject.SigningTimestamp withValid(Boolean value) {
setValid(value);
return this;
}
public String toString() {
final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
public StringBuilder append(ObjectLocator locator,
StringBuilder buffer, ToStringStrategy strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
public StringBuilder appendFields(ObjectLocator locator,
StringBuilder buffer, ToStringStrategy strategy) {
{
XMLGregorianCalendar theValue;
theValue = this.getValue();
strategy.appendField(locator, this, "value", buffer, theValue);
}
{
Boolean theValid;
theValid = this.isValid();
strategy.appendField(locator, this, "valid", buffer, theValid);
}
return buffer;
}
}
/**
* Returns A Document representation of this instance that is not formatted.
*
* @return The Document representation for this instance.
*/
public org.w3c.dom.Document toDocument() {
return toDocument(false);
}
/**
* Returns A Document representation for this instance.
*
* @param prettyPrint
* True for pretty print, otherwise false
*
* @return The Document representation for this instance.
*/
public org.w3c.dom.Document toDocument(boolean prettyPrint) {
return DocumentUtilities.toDocument(toJAXBElement(), prettyPrint);
}
/**
* Returns JAXBElement for this instance.
*
* @return The JAXBElement for this instance.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public JAXBElement> toJAXBElement() {
QName qualifiedName = STIXSchema.getQualifiedName(this);
return new JAXBElement(qualifiedName, DigitalSignatureObject.class,
this);
}
/**
* Returns String representation of this instance that is not formatted.
*
* @return The String containing the XML mark-up.
*/
public String toXMLString() {
return toXMLString(false);
}
/**
* Returns XML String for JAXB Document Object Model object.
*
* @param prettyPrint
* True for pretty print, otherwise false
*
* @return The String containing the XML mark-up.
*/
public String toXMLString(boolean prettyPrint) {
return DocumentUtilities.toXMLString(toDocument(), prettyPrint);
}
/**
* Creates DigitalSignatureObject instance for XML String
*
* @param text
* XML String for the document
* @return The DigitalSignatureObject instance for the passed XML String
*/
public static DigitalSignatureObject fromXMLString(String text) {
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance(DigitalSignatureObject.class
.getPackage().getName());
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setSchema(STIXSchema.getInstance().getSchema());
unmarshaller.setEventHandler(new ValidationEventHandler());
StreamSource streamSource = new StreamSource(new StringReader(text));
return (DigitalSignatureObject) unmarshaller
.unmarshal(streamSource);
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
/**
* Validates the XML representation of this DigitalSignatureObject instance
* Returning true indicating a successful validation, false if not.
*
* @return boolean
*/
public boolean validate() {
return STIXSchema.getInstance().validate(toXMLString());
}
}