diff options
| author | Bonato, Martin <martin.bonato@prime-sign.com> | 2018-02-08 22:19:55 +0100 | 
|---|---|---|
| committer | Bonato, Martin <martin.bonato@prime-sign.com> | 2018-02-08 22:19:55 +0100 | 
| commit | b9ccb62d35a755efb505d426ce924d5a8fbe937a (patch) | |
| tree | 00d17aa7dc660eb0e90ae753e36a623d672fc0e0 /STAL/src/main/java/at | |
| parent | 84794c877062fe0424f357be0e83bdd045d75d52 (diff) | |
| download | mocca-b9ccb62d35a755efb505d426ce924d5a8fbe937a.tar.gz mocca-b9ccb62d35a755efb505d426ce924d5a8fbe937a.tar.bz2 mocca-b9ccb62d35a755efb505d426ce924d5a8fbe937a.zip | |
BulkSignature implementationfb-bulksignature
Diffstat (limited to 'STAL/src/main/java/at')
6 files changed, 430 insertions, 2 deletions
| diff --git a/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java b/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java new file mode 100644 index 00000000..ce36a25c --- /dev/null +++ b/STAL/src/main/java/at/gv/egiz/stal/BulkSignRequest.java @@ -0,0 +1,92 @@ + +/* + * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + + +package at.gv.egiz.stal; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * <p>Java class for BulkSignRequestType complex type. + *  + * <p>The following schema fragment specifies the expected content contained within this class. + *  + * <pre> + * <complexType name="BulkSignRequestType"> + *   <complexContent> + *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + *       <sequence maxOccurs="unbounded"> + *         <element name="SignRequests" type="{http://www.egiz.gv.at/stal}SignRequestType"/> + *       </sequence> + *     </restriction> + *   </complexContent> + * </complexType> + * </pre> + *  + *  + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BulkSignRequestType", propOrder = { +    "signRequests" +}) +public class BulkSignRequest extends STALRequest { + +    @XmlElement(name = "SignRequests", required = true) +    protected List<SignRequest> signRequests; + +    /** +     * Gets the value of the signRequests property. +     *  +     * <p> +     * This accessor method returns a reference to the live list, +     * not a snapshot. Therefore any modification you make to the +     * returned list will be present inside the JAXB object. +     * This is why there is not a <CODE>set</CODE> method for the signRequests property. +     *  +     * <p> +     * For example, to add a new item, do as follows: +     * <pre> +     *    getSignRequests().add(newItem); +     * </pre> +     *  +     *  +     * <p> +     * Objects of the following type(s) are allowed in the list +     * {@link SignRequestType } +     *  +     *  +     */ +    public List<SignRequest> getSignRequests() { +        if (signRequests == null) { +            signRequests = new ArrayList<SignRequest>(); +        } +        return this.signRequests; +    } + +} diff --git a/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java b/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java new file mode 100644 index 00000000..1cc6e73e --- /dev/null +++ b/STAL/src/main/java/at/gv/egiz/stal/BulkSignResponse.java @@ -0,0 +1,91 @@ +/* + * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + + +package at.gv.egiz.stal; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * <p>Java class for BulkSignResponseType complex type. + *  + * <p>The following schema fragment specifies the expected content contained within this class. + *  + * <pre> + * <complexType name="BulkSignResponseType"> + *   <complexContent> + *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + *       <sequence maxOccurs="unbounded"> + *         <element name="SignResponse" type="{http://www.egiz.gv.at/stal}SignResponseType"/> + *       </sequence> + *     </restriction> + *   </complexContent> + * </complexType> + * </pre> + *  + *  + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BulkSignResponseType", propOrder = { +    "signResponse" +}) +public class BulkSignResponse extends STALResponse { + +    @XmlElement(name = "SignResponse", required = true) +    protected List<SignResponse> signResponse; + +    /** +     * Gets the value of the signResponse property. +     *  +     * <p> +     * This accessor method returns a reference to the live list, +     * not a snapshot. Therefore any modification you make to the +     * returned list will be present inside the JAXB object. +     * This is why there is not a <CODE>set</CODE> method for the signResponse property. +     *  +     * <p> +     * For example, to add a new item, do as follows: +     * <pre>SignRequestType +     *    getSignResponse().add(newItem); +     * </pre> +     *  +     *  +     * <p> +     * Objects of the following type(s) are allowed in the list +     * {@link SignResponseType } +     *  +     *  +     */ +    public List<SignResponse> getSignResponse() { +        if (signResponse == null) { +            signResponse = new ArrayList<SignResponse>(); +        } +        return this.signResponse; +    } + +} diff --git a/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java b/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java index 05c9bf1e..06d47bc5 100644 --- a/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java +++ b/STAL/src/main/java/at/gv/egiz/stal/HashDataInput.java @@ -25,6 +25,7 @@  package at.gv.egiz.stal; +import java.io.IOException;  import java.io.InputStream;  /** @@ -34,7 +35,8 @@ import java.io.InputStream;  public interface HashDataInput {      public final static String CMS_DEF_REFERENCE_ID = "Reference-1"; - +    public final static String DEFAULT_FILENAME = "SignatureData"; +          public String getReferenceId();      public String getMimeType(); @@ -42,7 +44,9 @@ public interface HashDataInput {      public String getEncoding();      public String getFilename(); +     +    public byte[] getDigest(); -    public InputStream getHashDataInput(); +    public InputStream getHashDataInput() throws IOException;  } diff --git a/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java b/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java index d4212b24..37d43877 100644 --- a/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java +++ b/STAL/src/main/java/at/gv/egiz/stal/SignRequest.java @@ -59,6 +59,8 @@ import javax.xml.bind.annotation.XmlValue;   *         </element>   *         <element name="SignatureMethod" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>   *         <element name="DigestMethod" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + *         <element name="displayName" type="{http://www.w3.org/2001/XMLSchema}string minOccurs="0"> + *         <element name="mimeType" type="{http://www.w3.org/2001/XMLSchema}string minOccurs="0"/>   *         <element name="ExcludedByteRange" minOccurs="0">   *           <complexType>   *             <complexContent> @@ -83,6 +85,7 @@ import javax.xml.bind.annotation.XmlValue;      "signedInfo",      "signatureMethod",      "digestMethod", +    "mimeType",      "excludedByteRange"  })  public class SignRequest @@ -96,6 +99,10 @@ public class SignRequest      protected String signatureMethod;      @XmlElement(name = "DigestMethod")      protected String digestMethod; +    @XmlElement(name = "displayName") +    protected String displayName; +    @XmlElement(name = "mimeType") +    protected String mimeType;      @XmlElement(name = "ExcludedByteRange")      protected SignRequest.ExcludedByteRange excludedByteRange;      @XmlTransient @@ -194,6 +201,55 @@ public class SignRequest      public void setDigestMethod(String value) {          this.digestMethod = value;      } +     +    /** +     * Sets the value of the displayName property. +     *  +     * @param value +     *     allowed object is +     *     {@link String } +     *      +     */ +    public void setDisplayName(String value) { +        this.displayName = value; +    } +     +    /** +     * Gets the value of the displayName property. +     *  +     * @return +     *     possible object is +     *     {@link String } +     *      +     */ +    public String getDisplayName() { +        return displayName; +    } +     +    /** +     * Gets the value of the mimeType property. +     *  +     * @return +     *     possible object is +     *     {@link String } +     *      +     */ +    public String getMimeType() { +        return mimeType; +    } +     +     +    /** +     * Sets the value of the mimeType property. +     *  +     * @param value +     *     allowed object is +     *     {@link String } +     *      +     */ +    public void setMimeType(String value) { +        this.mimeType = value; +    }      /**       * Gets the value of the excludedByteRange property. diff --git a/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java b/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java new file mode 100644 index 00000000..e0457b96 --- /dev/null +++ b/STAL/src/main/java/at/gv/egiz/stal/SignatureInfo.java @@ -0,0 +1,84 @@ +package at.gv.egiz.stal; + +import java.util.ArrayList; +import java.util.List; + +import at.gv.egiz.stal.signedinfo.ReferenceType; +import at.gv.egiz.stal.signedinfo.SignatureMethodType; +import at.gv.egiz.stal.signedinfo.SignedInfoType; + +/* + * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +/** + * This class wraps a {@link SignatureInfo} and adds the additional parameters displayName and mimeType. + * @author szoescher + * + */ +public class SignatureInfo { + +  private SignedInfoType signedInfo; + +  private String displayName; + +  private String mimeType; + +  public SignatureInfo(SignedInfoType signedInfo, String displayName, String mimeType) { +    this.signedInfo = signedInfo; +    this.displayName = displayName; +    this.mimeType = mimeType; +  } + +  public SignedInfoType getSignedInfo() { +    return signedInfo; +  } + +  public String getDisplayName() { +    return displayName; +  } + +  public String getMimeType() { +    return mimeType; +  } + +  public SignatureMethodType getSignatureMethod() { +    if (signedInfo != null) { +      return signedInfo.getSignatureMethod(); +    } +    return null; +  } + +  public String getId() { +    if (signedInfo != null) { +      return signedInfo.getId(); +    } +    return null; +  } + +  public List<ReferenceType> getReference() { + +    if (signedInfo != null && signedInfo.getReference() != null) { + +      return signedInfo.getReference(); +    } +    return new ArrayList<ReferenceType>(); +  } +} diff --git a/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java b/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java new file mode 100644 index 00000000..3b74be50 --- /dev/null +++ b/STAL/src/main/java/at/gv/egiz/stal/hashdata/StubHashDataInput.java @@ -0,0 +1,101 @@ +/* + * Copyright 2015 Datentechnik Innovation GmbH and Prime Sign GmbH, Austria + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + +package at.gv.egiz.stal.hashdata; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; + +import at.gv.egiz.stal.HashDataInput; +import at.gv.egiz.stal.signedinfo.ReferenceType; + +/** + * A StabHashDataInput is used as a placeholder at client side. + * The reference is used to load the corresponding HashDataInput from STAL. + * @author szoescher + */ +public class StubHashDataInput implements HashDataInput { + +  private byte[] data; +  private String mimeType; +  private ReferenceType reference; +  private String fileName; + + +  public StubHashDataInput(ReferenceType reference, String fileName, String mimeType) { +    this.mimeType = mimeType; +    this.fileName = fileName; +    this.reference = reference; +  } + +  @Override +  public String getReferenceId() { +    if (reference != null) { +      return reference.getId(); +    } +    return null; +  } + +  @Override +  public String getMimeType() { +    return mimeType; +  } + +  @Override +  public String getEncoding() { +    return null; +  } + +  @Override +  public String getFilename() { +    if (fileName != null) { +      return fileName; +    } +    return DEFAULT_FILENAME; +  } + +  @Override +  public InputStream getHashDataInput() { + +    if (data != null) { +      return new ByteArrayInputStream(data); +    } + +    return null; +  } + +  @Override +  public byte[] getDigest() { +    if (reference != null) { +      return reference.getDigestValue(); +    } +    return null; +  } + +  public void setFilename(String fileName) { +    this.fileName = fileName; +  } + +  public ReferenceType getReference() { +    return reference; +  }	 + +} | 
