XML Digital Signature throws NAMESPACE_ERR exception under OpenJDK 11 that works under Java SE 8

Open eSignForms yozons at gmail.com
Thu Jan 31 00:18:56 UTC 2019


The last bit we've discovered is that under OpenJDK 11, it appears that the
XML digitally signed documents are verified fine; it's just creating new
digitally signed that throws the NAMESPACE_ERR issue.  When we retrieve XML
digitally signed documents, we verify that the signature is valid, and that
code appears to work and find the prior signature to be valid.


On Wed, Jan 30, 2019 at 2:03 PM Open eSignForms <yozons at gmail.com> wrote:

> Created internal review id: 9059185
> I have our source code, but it's part of a large suite of code (all can be
> accessed under the AGPL), so it's not clear what all would help in the
> report.  If you need anything more, I'd be happy to share that so it can be
> part of the bug report.
>
> On Wed, Jan 30, 2019 at 1:54 PM Sean Mullan <sean.mullan at oracle.com>
> wrote:
>
>> Hi,
>>
>> Thanks for reporting the issue. Can you please file a bug at
>> https://bugreport.java.com/bugreport/ so that it can be tracked and
>> further evaluated?
>>
>> --Sean
>>
>> On 1/30/19 3:59 PM, Open eSignForms wrote:
>>
>> My XML Digital Signature code runs fine under Java 8 (1.8.0_161), but on
>> upgrading to OpenJDK 11 (11.0.2, ), it now traps with an NAMESPACE_ERR
>> exception:
>>
>>
>>
>> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
>> change an object in a way which is incorrect with regard to namespaces.
>>
>> at
>> java.xml/com.sun.org.apache.xerces.internal.dom.ElementNSImpl.setName(ElementNSImpl.java:109)
>>
>> at
>> java.xml/com.sun.org.apache.xerces.internal.dom.ElementNSImpl.<init>(ElementNSImpl.java:84)
>>
>> at
>> java.xml/com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElementNS(CoreDocumentImpl.java:2089)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeStartElement(XmlWriterToTree.java:99)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:303)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:286)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:251)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:247)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.XmlWriterToTree.marshalStructure(XmlWriterToTree.java:200)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLObject.marshal(DOMXMLObject.java:180)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.marshal(DOMXMLSignature.java:233)
>>
>> at
>> java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:325)
>>
>> at
>> com.esignforms.open.crypto.XmlDigitalSignature.sign(XmlDigitalSignature.java:208)
>>
>>
>>
>> If I revert back to Java 8, it works again.
>>
>> I noted that our XML digital signature code makes no direct references to
>> namespaces.  Basic code does set the DocumentBuildFactory to be namespace
>> aware:
>>
>>
>>
>>   DocumentBuilderFactory dbf = DocumentBuilderFactory.*newInstance*();
>>
>>   dbf.setNamespaceAware(*true*);
>>
>>
>>
>> When we sign under Java 8, this is the resulting digitally signed output
>> for our XML <snapshot> element, which does have a namespace of our own:
>>
>>
>>
>> <snapshot xmlns="http://open.esignforms.com/XMLSchema/2011" timestamp=
>> "2019-01-30T12:40:46-08:00" type="document"><![CDATA[<!DOCTYPE html
>> PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
>> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>
>> <html xmlns="http://www.w3.org/1999/xhtml">
>>
>> <head>
>>
>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
>>
>> <title>Date Doc 1</title>
>>
>> <meta name="robots" content="noindex, nofollow" />
>>
>> <meta name="Description" content="Confidential document" />
>>
>> <meta name="viewport" content="width=device-width, initial-scale=1" />
>>
>> <meta name="Generator" content="Yozons Open eSignForms document generator
>> version 19.1.19_p0129_1657" />
>>
>> <meta name="DeploymentId" content="bbfe9bed-918d-446b-9518-8ec303bafb83"
>> />
>>
>> <meta name="TransactionId" content="5163276c-d8aa-436f-8a96-5bc0c9eca931"
>> />
>>
>> <meta name="TransactionTemplateId"
>> content="d15a91a3-87b8-457e-84bc-0b56ac7ebb10" />
>>
>> <meta name="TransactionMode" content="Test" />
>>
>> <meta name="PackageId" content="60301b59-ca07-429e-bb76-7083bfd6e642" />
>>
>> <meta name="PackageVersionId"
>> content="61afd6f3-b79e-4d14-844d-3a38541020ea" />
>>
>> <meta name="PackageVersionPartyName" content="FirstParty" />
>>
>> <meta name="DocumentId" content="e105af31-4b37-4092-9795-48b7c762ae97" />
>>
>> <meta name="DocumentName" content="Date Doc 1" />
>>
>> <meta name="DocumentVersionId"
>> content="52248c28-187e-43f0-8de8-98357fa63654" />
>>
>> <meta name="DocumentVersionPageId"
>> content="62edfd59-be00-435a-9bd5-583cc84d220a" />
>>
>> <meta name="DocumentVersionPartyName" content="FirstParty" />
>>
>> <meta name="DocumentPageMode" content="REVIEW" />
>>
>> <meta name="HtmlRenderTimestamp" content="2019-01-30 12:40:43.041 PST" />
>>
>> <meta name="RequestIpAddr" content="50-46-115-249.evrt.wa.frontiernet.net
>> (50.46.115.249)" />
>>
>> <meta name="RequestUserAgent" content="Mozilla/5.0 (Macintosh; Intel Mac
>> OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3
>> Safari/605.1.15" />
>>
>> <base href="https://open.esignforms.com/demo/" />
>>
>> <style type="text/css">
>>
>> /* platform esf.css */
>>
>> @import url(//fonts.googleapis.com/css?family=Pacifico);
>>
>>
>>
>> body.esf { font-family: Calibri, Arial, Helvetica, sans-serif; font-size:
>> 1em; }
>>
>>
>>
>> .esf a img { border: none; }
>>
>>
>>
>> .esf table.center, .esf div.center { margin-left: auto; margin-right:
>> auto; }
>>
>>
>>
>> .esf p.left, .esf span.left, .esf div.left, .esf th.left, .esf td.left {
>> text-align: left; }
>>
>> .esf p.right, .esf span.right, .esf div.right, .esf th.right, .esf
>> td.right { text-align: right; }
>>
>> .esf p.center, .esf span.center, .esf th.center, .esf td.center {
>> text-align: center; }
>>
>> .esf p.justify, .esf span.justify, .esf div.justify { text-align:
>> justify; }
>>
>>
>>
>> .esf .bottom { vertical-align: bottom; }
>>
>> .esf .top { vertical-align: top; }
>>
>> .esf .middle { vertical-align: middle; }
>>
>>
>>
>> .esf .w5 { width: 5%; }
>>
>> .esf .w10 { width: 10%; }
>>
>> .esf .w15 { width: 15%; }
>>
>> .esf .w20 { width: 20%; }
>>
>> .esf .w25 { width: 25%; }
>>
>> .esf .w30 { width: 30%; }
>>
>> .esf .w33 { width: 33%; }
>>
>> .esf .w34 { width: 34%; }
>>
>> .esf .w35 { width: 35%; }
>>
>> .esf .w40 { width: 40%; }
>>
>> .esf .w45 { width: 45%; }
>>
>> .esf .w48 { width: 48%; }
>>
>> .esf .w50 { width: 50%; }
>>
>> .esf .w60 { width: 60%; }
>>
>> .esf .w70 { width: 70%; }
>>
>> .esf .w75 { width: 75%; }
>>
>> .esf .w80 { width: 80%; }
>>
>> .esf .w85 { width: 85%; }
>>
>> .esf .w90 { width: 90%; }
>>
>> .esf .w95 { width: 95%; }
>>
>> .esf .w98 { width: 98%; }
>>
>> .esf .w100 { width: 100%; }
>>
>>
>>
>> .esf .boT { border-top: 1px solid black; }
>>
>> .esf .boB { border-bottom: 1px solid black; }
>>
>> .esf .boTB { border-top: 1px solid black; border-bottom: 1px solid black;
>> }
>>
>> .esf .boL { border-left: 1px solid black; }
>>
>> .esf .boR { border-right: 1px solid black; }
>>
>> .esf .boLR { border-left: 1px solid black; border-right: 1px solid black;
>> }
>>
>> .esf .boBdash { border-bottom: 1px dashed black; }
>>
>> .esf .boBdot { border-bottom: 1px dotted black; }
>>
>> .esf .boBthick { border-bottom: 4px solid black; }
>>
>>
>>
>> .esf .box { border: 1px solid black; }
>>
>> .esf .boxthicker { border: 2px solid black; }
>>
>> .esf .boxthick { border: 4px solid black; }
>>
>>
>>
>> .esf .underline { text-decoration: underline; }
>>
>> .esf .bold { font-weight: bold; }
>>
>> .esf .italic { font-style: italic; }
>>
>>
>>
>> .esf ::-webkit-input-placeholder { font-style: italic; }
>>
>> .esf :-moz-placeholder { font-style: italic; }
>>
>> .esf ::-moz-placeholder { font-style: italic; }
>>
>> .esf :-ms-input-placeholder { font-style: italic; }
>>
>>
>>
>> .esf .caps { text-transform: uppercase; }
>>
>> .esf .smallcaps { font-variant: small-caps; }
>>
>> .esf .lowercase { text-transform: lowercase; }
>>
>>
>>
>> .esf .f6 { font-size: 6pt; }
>>
>> .esf .f7 { font-size: 7pt; }
>>
>> .esf .f8 { font-size: 8pt; }
>>
>> .esf .f9 { font-size: 9pt; }
>>
>> .esf .f10 { font-size: 10pt; }
>>
>> .esf .f11 { font-size: 11pt; }
>>
>> .esf .f12 { font-size: 12pt; }
>>
>> .esf .f14 { font-size: 14pt; }
>>
>> .esf .f16 { font-size: 16pt; }
>>
>> .esf .f18 { font-size: 18pt; }
>>
>> .esf .f20 { font-size: 20pt; }
>>
>> .esf .f22 { font-size: 22pt; }
>>
>> .esf .f24 { font-size: 24pt; }
>>
>> .esf .f28 { font-size: 28pt; }
>>
>> .esf .f32 { font-size: 32pt; }
>>
>> .esf .f36 { font-size: 36pt; }
>>
>> .esf .f40 { font-size: 40pt; }
>>
>> .esf .f48 { font-size: 48pt; }
>>
>> .esf .f60 { font-size: 60pt; }
>>
>> .esf .f72 { font-size: 72pt; }
>>
>> .esf .f96 { font-size: 96pt; }
>>
>>
>>
>> .esf .red {color: red;}
>>
>> .esf .green {color: green;}
>>
>> .esf .blue {color: blue;}
>>
>> .esf .white {color: white;}
>>
>> .esf .black {color: black;}
>>
>> .esf .gray  {color: gray;}
>>
>>
>>
>> .esf .nomargin { margin: 0; }
>>
>> .esf .nomarginT { margin-top: 0; }
>>
>> .esf .nomarginB { margin-bottom: 0; }
>>
>> .esf .nomarginTB { margin-top: 0; margin-bottom: 0; }
>>
>> .esf .nomarginL { margin-left: 0; }
>>
>> .esf .nomarginR { margin-right: 0; }
>>
>> .esf .nomarginLR { margin-left: 0; margin-right: 0; }
>>
>> .esf .nowrap { white-space: nowrap; }
>>
>>
>>
>> /* HTML5 versions for table cellpadding="0" through cellpadding="5" */
>>
>> .esf table.cellpadding0 th, .esf table.cellpadding0 td { padding: 0; }
>>
>> .esf table.cellpadding1 th, .esf table.cellpadding1 td { padding: 1px; }
>>
>> .esf table.cellpadding2 th, .esf table.cellpadding2 td { padding: 2px; }
>>
>> .esf table.cellpadding3 th, .esf table.cellpadding3 td { padding: 3px; }
>>
>> .esf table.cellpadding4 th, .esf table.cellpadding4 td { padding: 4px; }
>>
>> .esf table.cellpadding5 th, .esf table.cellpadding5 td { padding: 5px; }
>>
>>
>>
>> /* HTML5 versions for table cellspacing="0" through cellspacing="5" */
>>
>> .esf table.cellspacing0 { border-spacing: 0; }
>>
>> .esf table.cellspacing1 { border-spacing: 1px; }
>>
>> .esf table.cellspacing2 { border-spacing: 2px; }
>>
>> .esf table.cellspacing3 { border-spacing: 3px; }
>>
>> .esf table.cellspacing4 { border-spacing: 4px; }
>>
>> .esf table.cellspacing5 { border-spacing: 5px; }
>>
>>
>>
>> /* HTML5 version of border="1" through border="2" */
>>
>> table.gridBorder { border-top: 1px solid black; border-left: 1px solid
>> black; }
>>
>> table.gridBorder th, table.gridBorder td { border-bottom: 1px solid
>> black; border-right: 1px solid black; }
>>
>> table.gridBorder2 { border-top: 2px solid black; border-left: 2px solid
>> black; }
>>
>> table.gridBorder2 th, table.gridBorder2 td { border-bottom: 2px solid
>> black; border-right: 2px solid black; }
>>
>>
>>
>> .esf div.newPage { border-top: 1px dotted gray; }
>>
>> .esf .doNotPrint { } /* do nothing normally, but we override in @print so
>> suppress the element */
>>
>> .esf div.pagediv { } /* do nothing, but allows you to style as each page
>> is wrapped in a div */
>>
>>
>>
>> .esf div.inline { display: inline-block; }
>>
>> .esf span.inlineblock { display: inline-block; }
>>
>>
>>
>> /* The following are generally not useful for a document, but are used in
>> the auto-rendering of fields, labels, errors, etc. Many of these can be set
>> via DocumentStyles in Open ESF. */
>>
>>
>>
>> /* For the Field Label rendering */
>>
>> .esf label.normal { }
>>
>> .esf label.normal-error { color: red; font-weight: bold;
>> background-color: yellow; }
>>
>> .esf label.small { font-size: 8pt; }
>>
>> .esf label.small-error { font-size: 8pt; color: red; font-weight: bold;
>> background-color: yellow; }
>>
>>
>>
>> .esf span.viewFieldData { width: inherit; } /* when viewing field data --
>> not in input mode */
>>
>> .esf span.viewFieldData-error { font-weight: bold; font-style: italic;
>> background-color: pink; border: 2px dashed red; } /* when viewing data that
>> was not known -- not in input mode */
>>
>>
>>
>> .esf span.labelFieldArea { display: inline-block; } /* sets the width for
>> the label and field area */
>>
>>
>>
>> .esf span.labelFieldArea span.labelAreaStacked { display: block;
>> white-space: nowrap; }
>>
>> .esf span.labelFieldArea span.labelAreaRightStacked { display: block;
>> text-align: right; white-space: nowrap; }
>>
>> .esf span.labelFieldArea span.labelAreaCenterStacked { display: block;
>> text-align: center; white-space: nowrap; }
>>
>> .esf span.labelFieldArea span.labelArea { display: inline-block;
>> white-space: nowrap; }
>>
>> .esf span.labelFieldArea span.labelAreaRight { display: inline-block;
>> text-align: right; white-space: nowrap; }
>>
>> .esf span.labelFieldArea span.labelAreaCenter { display: inline-block;
>> text-align: center; white-space: nowrap; }
>>
>>
>>
>> .esf span.labelFieldArea span.fieldAreaStacked { display: block; width:
>> 100%; }
>>
>> .esf span.labelFieldArea span.fieldAreaLeftStacked { display: block;
>> width: 100%; text-align: left; }
>>
>> .esf span.labelFieldArea span.fieldAreaRightStacked { display: block;
>> width: 100%; text-align: right; }
>>
>> .esf span.labelFieldArea span.fieldAreaCenterStacked { display: block;
>> width: 100%; text-align: center; }
>>
>> .esf span.labelFieldArea span.fieldArea { display: inline-block; width:
>> 100%; }
>>
>> .esf span.labelFieldArea span.fieldAreaLeft { display: inline-block;
>> width: 100%; text-align: left; }
>>
>> .esf span.labelFieldArea span.fieldAreaRight { display: inline-block;
>> width: 100%; text-align: right; }
>>
>> .esf span.labelFieldArea span.fieldAreaCenter { display: inline-block;
>> width: 100%; text-align: center; }
>>
>>
>>
>> .esf span.labelFieldArea span.fieldAreaStackedAuto { display: block;
>> width: auto; }
>>
>> .esf span.labelFieldArea span.fieldAreaLeftStackedAuto { display: block;
>> width: auto; text-align: left; }
>>
>> .esf span.labelFieldArea span.fieldAreaRightStackedAuto { display: block;
>> width: auto; text-align: right; }
>>
>> .esf span.labelFieldArea span.fieldAreaCenterStackedAuto { display:
>> block; width: auto; text-align: center; }
>>
>> .esf span.labelFieldArea span.fieldAreaAuto { display: inline-block;
>> width: auto; }
>>
>> .esf span.labelFieldArea span.fieldAreaLeftAuto { display: inline-block;
>> width: auto; text-align: left; }
>>
>> .esf span.labelFieldArea span.fieldAreaRightAuto { display: inline-block;
>> width: auto; text-align: right; }
>>
>> .esf span.labelFieldArea span.fieldAreaCenterAuto { display:
>> inline-block; width: auto; text-align: center; }
>>
>>
>>
>> .esf span.fieldArea { display: inline-block; }
>>
>> .esf span.fieldAreaLeft { display: inline-block; text-align: left; }
>>
>> .esf span.fieldAreaRight { display: inline-block; text-align: right; }
>>
>> .esf span.fieldAreaCenter { display: inline-block; text-align: center; }
>>
>>
>>
>> .esf span.fieldAreaAuto { display: inline; }
>>
>> /* Auto widths do not make sense really with alignment as the field
>> should be no bigger than the contents; we'll keep it inline-blocked */
>>
>> .esf span.fieldAreaLeftAuto { display: inline-block; text-align: left; }
>>
>> .esf span.fieldAreaRightAuto { display: inline-block; text-align: right; }
>>
>> .esf span.fieldAreaCenterAuto { display: inline-block; text-align:
>> center; }
>>
>>
>>
>> /* For signature/initials display */
>>
>> .esf .signature, .esf .signature input { font-family: 'Pacifico',
>> 'Bradley Hand ITC', 'Lucida Handwriting', 'Comic Sans MS', cursive;
>> font-size: 14pt; color: blue; white-space: nowrap; }
>>
>> .esf div.signatureBlock { border: 3px solid #9899c4; border-radius: 10px;
>> background-color: #efffff; padding: 0px 3px 3px 12px; width: 720px;
>> page-break-inside: avoid; }
>>
>> .esf div.signatureBlock p.signatureHeader { font-size: 11pt; font-weight:
>> bold; text-decoration: underline; margin-bottom: 0px; }
>>
>> .esf .signatureMetadata { font-size: 8pt; font-family: 'Courier New',
>> Courier, monospace; white-space: nowrap; }
>>
>>
>>
>> /* For optional/required/error input fields; uses span.viewFieldData for
>> showing the data when in non-edit mode */
>>
>> .esf input.required { background-color: #FFFFE7; font-weight: bold;
>> border: 1px solid #7F9DB9; width: inherit; }
>>
>> .esf input.optional { background-color: white; font-weight: bold; border:
>> 1px solid #7F9DB9; width: inherit; }
>>
>> .esf input.error { background-color: #FFC0CB; font-weight: bold; border:
>> 1px solid red; width: inherit; }
>>
>> .esf select.required { background-color: #FFFFE7; font-weight: bold;
>> border: 1px solid #7F9DB9; width: inherit; }
>>
>> .esf select.optional { background-color: white; font-weight: bold;
>> border: 1px solid #7F9DB9; width: inherit; }
>>
>> .esf select.error { background-color: #FFC0CB; font-weight: bold; border:
>> 1px solid red; width: inherit; }
>>
>> .esf textarea.required { background-color: #FFFFE7; font-weight: bold;
>> border: 1px solid #7F9DB9; width: inherit; }
>>
>> .esf textarea.optional { background-color: white; font-weight: bold;
>> border: 1px solid #7F9DB9; width: inherit; }
>>
>> .esf textarea.error { background-color: #FFC0CB; font-weight: bold;
>> border: 1px solid red; width: inherit; }
>>
>> /* Special override for optional checkboxes to not have a border around
>> them */
>>
>> .esf input[type="checkbox"].required { border: 0 none !important;
>> outline-color: #FFFFE7; outline-style: solid; outline-width: medium; }
>>
>> .esf input[type="checkbox"].optional { border: 0 none !important; }
>>
>> .esf input[type="checkbox"].error { outline: 1px solid red; }
>>
>> /* Special override for optional radio to not have a border around them */
>>
>> .esf input[type="radio"].required { border: 0 none !important;
>> outline-color: #FFFFE7; outline-style: solid; outline-width: medium; }
>>
>> .esf input[type="radio"].optional { border: 0 none !important; }
>>
>> .esf input[type="radio"].error { outline: 1px solid red; }
>>
>> .esf input[type="radio"] { margin-bottom: 3px; } /* push it up a bit so
>> fits with label better */
>>
>>
>>
>> /* For buttons */
>>
>> .esf p.buttons { margin-top: 2em; margin-left: 2em; }
>>
>> .esf p.buttons input { margin-right: 2em; font-size: 1.1em; padding: 5px
>> 10px; margin-top: 5px; }
>>
>> .esf p.buttons input.caution { color: #FF8000; }
>>
>> .esf p.buttons input.preferredFlow { font-weight: bold; color: green;
>> font-size: 1.3em; padding: 8px 15px; }
>>
>>
>>
>> .esf p.extraButtons { text-align: right; margin-top: -3em; }
>>
>> .esf p.extraButtons input { color: blue; font-size: 0.6em; padding: 2px
>> 3px; margin-right: 1em; }
>>
>>
>>
>> .esf div.documentAndPageNumbersInfo { font-family: 'Courier New',
>> Courier, monospace; font-size: 8pt; text-align: right; color: lightgray; }
>>
>>
>>
>> /* For image overlays */
>>
>> .esf div.imageOverlay { position: relative; display: inline-block; }
>>
>> .esf div.imageOverlay img { margin: 0; padding: 0; }
>>
>> .esf div.imageOverlay span.imageOverlayFieldArea { position: absolute;
>> margin: 0; padding: 0; }
>>
>> .esf div.imageOverlay span.imageOverlayFieldArea input[type="radio"] {
>> margin: 0; padding: 0; }
>>
>> .esf div.imageOverlay span.imageOverlayFieldArea input[type="checkbox"] {
>> margin: 0; padding: 0; }
>>
>>
>>
>> .esf input.small { font-size: 8pt; }
>>
>> .esf input.upload { color: green; }
>>
>>
>>
>> /* For file uploads of images displayed inline */
>>
>> .esf img.fileUploadInlineImage200 { max-width: 200px; border: 2px solid
>> black; page-break-inside: avoid; }
>>
>> .esf img.fileUploadInlineImage400 { max-width: 400px; border: 2px solid
>> black; page-break-inside: avoid; }
>>
>> .esf img.fileUploadInlineImage600 { max-width: 800px; border: 2px solid
>> black; page-break-inside: avoid; }
>>
>> .esf img.fileUploadInlineImage800 { max-width: 800px; border: 2px solid
>> black; page-break-inside: avoid; }
>>
>>
>>
>> /* For standard display of ErrorEntry[] arrays from Errors */
>>
>> .esf table.errorEntryArea { margin-left: 1em; border: 1px solid #FBD777;
>> border-radius: 5px; background-color: #FDE8A5; width: 95%; padding-top:
>> 2px; padding-bottom: 2px; }
>>
>> .esf ul.errorEntryArea { padding-left: 20px; }
>>
>> .esf li.error-ErrorEntry { list-style-type: circle; font-size: 1em;
>> font-weight: bold; color: red; margin-left: 0px; margin-right: 1em; }
>>
>> .esf li.warning-ErrorEntry { list-style-type: circle; font-size: 1em;
>> font-weight: bold; color: blue; margin-left: 0px; margin-right: 1em; }
>>
>> .esf li.success-ErrorEntry { list-style-type: circle; font-size: 1em;
>> font-weight: bold; color: green; margin-left: 0px; margin-right: 1em; }
>>
>> .esf li.info-ErrorEntry { list-style-type: circle; font-size: 1em;
>> font-weight: bold; color: black; margin-left: 0px; margin-right: 1em; }
>>
>>
>>
>> /* Used for multi-line reports to separate them like "greenbar paper" of
>> old */
>>
>> .esf .bgGreenbarLight { background-color: transparent; }
>>
>> .esf .bgGreenbarDark { background-color: #E8E6E6; }
>>
>>
>>
>> .esf span.jspfooter { font-size: 8pt; color: gray; }
>>
>>
>>
>> .esf div.jspErrorPageMessage { margin-left: 1em; width: 700px;
>> font-weight: bold; background-color: pink; border: 1px solid black;
>> border-radius: 10px; padding: 0px 1em 0px 1em; }
>>
>>
>>
>> @media print {
>>
>>   body.esf { margin: 0; padding: 0; font-size: 80% !important; }
>>
>>   .esf div.newPage { border-top: none; page-break-after: always; }
>>
>>   .esf a.showURL:link:after, a.showURL:visited:after { content: " ("
>> attr(href) ")"; font-size: 80%; }
>>
>>   .esf .doNotPrint { display: none; }
>>
>> }
>>
>>
>>
>>
>>
>> /* Begin document style id: 9a000404-5f56-4a1c-ad4a-be6382c67d97, version
>> id: 86f339d5-81e2-4117-95c2-8f747f5a6fe3 */
>>
>> body.esf { font-family: Calibri, Arial, Helvetica, sans-serif; font-size:
>> 11pt;    }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 span.signature { font-family:
>> Pacifico, cursive; font-size: 14pt; color: blue; font-style: normal;
>> font-weight: normal; font-variant: normal; text-transform: inherit;  }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 span.signature input {
>> font-family: Pacifico, cursive; font-size: 14pt; color: blue; font-style:
>> normal; font-weight: normal; font-variant: normal; text-transform:
>> inherit;  }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 span.viewFieldData {      }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3
>> input[type='checkbox'].required { border: 0 none !important; outline-color:
>> #FFFFE7; outline-style: solid; outline-width: medium; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input[type='radio'].required
>> { border: 0 none !important; outline-color: #FFFFE7; outline-style: solid;
>> outline-width: medium; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input.required {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: #FFFFE7; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 select.required {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: #FFFFE7; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 textarea.required {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: #FFFFE7; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input.optional {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: white; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 select.optional {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: white; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 textarea.optional {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: white; border: 1px solid
>> #7F9DB9; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input[type='checkbox'].error
>> { border: 0 none !important; outline: 1px solid red; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input[type='radio'].error {
>> border: 0 none !important; outline: 1px solid red; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 input.error {    font-style:
>> normal; font-weight: bold; font-variant: normal; text-transform: inherit;
>> background-color: #FFC0CB; border: 1px solid red; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 select.error {    font-style:
>> normal; font-weight: bold; font-variant: normal; text-transform: inherit;
>> background-color: #FFC0CB; border: 1px solid red; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 textarea.error {
>> font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: #FFC0CB; border: 1px solid red; }
>>
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 label.normal {      }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 label.normal-error {   color:
>> red; font-style: normal; font-weight: bold; font-variant: normal;
>> text-transform: inherit; background-color: yellow; }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 label.small {  font-size:
>> 8pt;    }
>>
>> .esf .X86f339d5_81e2_4117_95c2_8f747f5a6fe3 label.small-error {
>> font-size: 8pt; color: red; font-style: normal; font-weight: bold;
>> font-variant: normal; text-transform: inherit; background-color: yellow; }
>>
>>
>> /* End document style */
>>
>> </style>
>>
>> <script type="text/javascript">
>>
>> (function() {
>>
>>   // If not defined yet, ensure our top "JavaScript namespace" variable
>> 'esf' is created.
>>
>>   if ( typeof esf == "undefined" ) {
>>
>>   esf = {
>>
>>   version: {
>>
>>   major: 19, minor: 1, update: '19',
>>
>>   toString: function(){
>>
>>   with(esf.version){
>>
>>   return major + "." + minor + "." + update;
>>
>>   }
>>
>>   }
>>
>>   },
>>
>>   appname: 'Open eSignForms',
>>
>>   htmlCopyright: '© 2019 Yozons, Inc.',
>>
>>   textCopyright: 'Copyright (c) 2009-2019 Yozons, Inc.'
>>
>>   };
>>
>>
>>
>>   esf.getRelease = function() {
>>
>>   return this.appname + " " + this.version.toString();
>>
>>   };
>>
>>
>>
>>   if ( typeof console != "undefined") console.log(esf.getRelease() + ' -
>> ' + esf.textCopyright);
>>
>>
>>
>>   esf.saveScrollPosition = function(elem) {
>>
>>   var currLeft = window.pageXOffset ||
>> document.documentElement.scrollLeft;
>>
>>   var currTop  = window.pageYOffset || document.documentElement.scrollTop;
>>
>>   elem.form.ESF_PAGE_SCROLLLEFT.value = currLeft;  // form field name
>> must match DocumentPageBean.HIDDEN_PAGE_SCROLLLEFT
>>
>>   elem.form.ESF_PAGE_SCROLLTOP.value  = currTop;   // form field name
>> must match DocumentPageBean.HIDDEN_PAGE_SCROLLTOP
>>
>>   }
>>
>>
>>
>>   esf.autoPost = function(inputField) {
>>
>>   esf.confirmOnPageUnloadMessage = null; // do not block leaving page for
>> autopost
>>
>>   esf.hideAllSubmitInputFields();
>>
>>   inputField.form.ESF_AUTO_POST_FIELD_ID.value = inputField.id; // form
>> field name must match DocumentPageBean.HIDDEN_AUTO_POST_FIELD_ID
>>
>>   esf.saveScrollPosition(inputField);
>>
>>   inputField.form.submit();
>>
>>   };
>>
>>
>>
>>   esf.blockEnterKeyViaInputFields = function(e) {
>>
>>   var evt = e || window.event;
>>
>>   var node = (evt.target) ? evt.target : ((evt.srcElement) ?
>> evt.srcElement : null);
>>
>>   if ((evt.keyCode == 13) && (node.type=="text")) {
>>
>>   return false;
>>
>>   }
>>
>>   };
>>
>>
>>
>>   esf.checkConfirmOnPageUnload = function(confirm,durationMsec) {
>>
>>   if (! confirm) {
>>
>>   window.onbeforeunload = null;
>>
>>   }
>>
>>   if ( durationMsec && durationMsec > 0 )
>>
>>   esf.hideAllSubmitInputFieldsTemporarily(durationMsec);
>>
>>   else
>>
>>   esf.hideAllSubmitInputFields();
>>
>>   };
>>
>>
>>
>>   // For links, we don't hide buttons and we don't clear the unload
>> unless requested AND the target is _top or _self (or no target set)
>>
>>   esf.checkLinkConfirmOnPageUnload = function(confirm,atag) {
>>
>>   if (! confirm && (atag.target == "_top" || atag.target == "_self" ||
>> atag.target == "") ) {
>>
>>   window.onbeforeunload = null;
>>
>>   }
>>
>>   };
>>
>>
>>
>>   // Default is no message to display on page unload
>>
>>   esf.confirmOnPageUnloadMessage = null;
>>
>>
>>
>>   esf.confirmOnPageUnload = function(e) {
>>
>>   e = e || window.event;
>>
>>
>>
>>           if ( esf.confirmOnPageUnloadMessage ) {
>>
>>           if (e) {
>>
>>           e.returnValue = esf.confirmOnPageUnloadMessage;
>>
>>           }
>>
>>               return esf.confirmOnPageUnloadMessage;
>>
>>           }
>>
>>   };
>>
>>
>>
>>   esf.hideAllSubmitInputFields = function() {
>>
>>     if ( document.getElementsByTagName ) {
>>
>>     var inputFields = document.getElementsByTagName("input");
>>
>>     for( var i=0; i < inputFields.length; ++i ) {
>>
>>       if ( inputFields[i].type == "submit" )
>>
>>           esf.makeInvisible(inputFields[i]);
>>
>>     }
>>
>>     var buttonFields = document.getElementsByTagName("button");
>>
>>     for( var i=0; i < buttonFields.length; ++i ) {
>>
>>     esf.makeInvisible(buttonFields[i]);
>>
>>     }
>>
>>     return true;
>>
>>     }
>>
>>   };
>>
>>
>>
>>   esf.showAllSubmitInputFields = function() {
>>
>>     if ( document.getElementsByTagName ) {
>>
>>       var inputFields = document.getElementsByTagName("input");
>>
>>     for( var i=0; i < inputFields.length; ++i ) {
>>
>>       if ( inputFields[i].type == "submit" )
>>
>>           esf.makeVisible(inputFields[i]);
>>
>>     }
>>
>>     var buttonFields = document.getElementsByTagName("button");
>>
>>     for( var i=0; i < buttonFields.length; ++i ) {
>>
>>     esf.makeVisible(buttonFields[i]);
>>
>>     }
>>
>>     return true;
>>
>>     }
>>
>>   };
>>
>>
>>
>>   esf.hideAllSubmitInputFieldsTemporarily = function(durationMsec) {
>>
>>   esf.hideAllSubmitInputFields();
>>
>>   setTimeout( esf.showAllSubmitInputFields, durationMsec );
>>
>>   };
>>
>>
>>
>>   esf.displayById = function(id) {
>>
>>   if ( document.getElementById && document.getElementById(id) )
>>
>>   esf.display(document.getElementById(id));
>>
>>   };
>>
>>
>>
>>   esf.display = function(elem) {
>>
>>   if ( elem && elem.style )
>>
>>   elem.style.display = "block";
>>
>>   };
>>
>>
>>
>>   esf.hideById = function(id) {
>>
>>   if ( document.getElementById && document.getElementById(id) )
>>
>>   esf.hide(document.getElementById(id));
>>
>>   };
>>
>>
>>
>>   esf.hide = function(elem) {
>>
>>   if ( elem && elem.style )
>>
>>   elem.style.display = "none";
>>
>>   };
>>
>>
>>
>>   esf.makeVisibleById = function(id) {
>>
>>   if ( document.getElementById && document.getElementById(id) )
>>
>>   esf.makeVisible(document.getElementById(id));
>>
>>   };
>>
>>
>>
>>   esf.makeVisible = function(elem) {
>>
>>     if ( elem && elem.style )
>>
>>     elem.style.visibility = 'visible';
>>
>>   };
>>
>>
>>
>>   esf.makeInvisibleById = function(id) {
>>
>>   if ( document.getElementById && document.getElementById(id) )
>>
>>   esf.makeInvisible(document.getElementById(id));
>>
>>   };
>>
>>
>>
>>   esf.makeInvisible = function(elem) {
>>
>>     if ( elem && elem.style )
>>
>>     elem.style.visibility = 'hidden';
>>
>>   };
>>
>>
>>
>>   esf.makeTemporarilyInvisible = function(elem, durationMsec) {
>>
>>   esf.makeInvisible(elem);
>>
>>       setTimeout( function(){esf.makeVisible(elem);}, durationMsec );
>>
>>   };
>>
>>
>>
>>   esf.ensureTopWindow = function() {
>>
>>     if (window != window.top)
>>
>>   top.location.href = location.href;
>>
>>   };
>>
>>
>>
>>   esf.getElementsByFieldName = function(fieldName) {
>>
>>     if ( document.getElementsByName ) {
>>
>>     return document.getElementsByName(fieldName.toLowerCase()); // Field
>> names are all lowercase in the HTML DOM
>>
>>     }
>>
>>     return []; // not really an empty node list, but an empty array so it
>> has a 'length' property to query before accessing
>>
>>   };
>>
>>
>>
>>   esf.getElementByFieldName = function(fieldName) {
>>
>>     var elemNL = esf.getElementsByFieldName(fieldName);
>>
>>     return elemNL.length > 0 ? elemNL[0] : null;
>>
>>   };
>>
>>
>>
>>   esf.setAllCheckboxesByName = function(name,b) {
>>
>>     var checkboxes = esf.getElementsByFieldName(name);
>>
>>     for( var i=0; i < checkboxes.length; ++i ) {
>>
>>       if ( checkboxes[i].type == "checkbox" )
>>
>>           checkboxes[i].checked = b;
>>
>>     }
>>
>>   };
>>
>>   esf.checkAllCheckboxesByName = function(name) {
>>
>>       esf.setAllCheckboxesByName(name,true);
>>
>>   };
>>
>>   esf.uncheckAllCheckboxesByName = function(name) {
>>
>>       esf.setAllCheckboxesByName(name,false);
>>
>>   };
>>
>>
>>
>>   /* Expects two radiobuttons to be laid out as [] Yes  [] No order --
>> can also be stacked as long as Yes is first */
>>
>>   esf.setupDisplayIfYesNoRadioButtonGroupIsYes =
>> function(yesNoRadioButtonGroupName,elemIdToShowIfYes,currentRadioButtonGroupFieldValue)
>> {
>>
>>     var rbYesNoElems =
>> document.getElementsByName(yesNoRadioButtonGroupName.toLowerCase());
>>
>>     if ( rbYesNoElems && rbYesNoElems.length == 2 ) { /* radio buttons
>> will only exist in EDIT mode */
>>
>>     rbYesNoElems[0].onclick = function() {
>> esf.displayById(elemIdToShowIfYes); }; /* yes rb */
>>
>>     rbYesNoElems[1].onclick = function() {
>> esf.hideById(elemIdToShowIfYes); }; /* no rb */
>>
>>     }
>>
>>     var lowerValue = currentRadioButtonGroupFieldValue.toLowerCase();
>>
>>     if ( lowerValue.startsWith('y') || lowerValue.startsWith('t') ||
>> lowerValue == '1' )
>>
>>         esf.displayById(elemIdToShowIfYes);
>>
>>     else
>>
>>         esf.hideById(elemIdToShowIfYes);
>>
>>   };
>>
>>
>>
>>   /* Expects two radiobuttons to be laid out as [] Yes  [] No order --
>> can also be stacked as long as Yes is first */
>>
>>   esf.setupDisplayIfYesNoRadioButtonGroupIsNo =
>> function(yesNoRadioButtonGroupName,elemIdToShowIfNo,currentRadioButtonGroupFieldValue)
>> {
>>
>>         var rbYesNoElems =
>> document.getElementsByName(yesNoRadioButtonGroupName.toLowerCase());
>>
>>     if ( rbYesNoElems && rbYesNoElems.length == 2 ) { /* radio buttons
>> will only exist in EDIT mode */
>>
>>     rbYesNoElems[0].onclick = function() {
>> esf.hideById(elemIdToShowIfNo); }; /* yes rb */
>>
>>     rbYesNoElems[1].onclick = function() {
>> esf.displayById(elemIdToShowIfNo); }; /* no rb */
>>
>>     }
>>
>>     var lowerValue = currentRadioButtonGroupFieldValue.toLowerCase();
>>
>>     if ( lowerValue.startsWith('n') || lowerValue.startsWith('f') ||
>> lowerValue == '0' )
>>
>>     esf.displayById(elemIdToShowIfNo);
>>
>>     else
>>
>>     esf.hideById(elemIdToShowIfNo);
>>
>>       };
>>
>>
>>
>>   esf.setupDisplayIfChecked =
>> function(checkboxName,elemIdToShowIfChecked,currentCheckboxFieldValue,checkboxValueWhenChecked)
>> {
>>
>>     var cbElems = document.getElementsByName(checkboxName.toLowerCase());
>>
>>     if ( cbElems && cbElems.length == 1 ) { /* checkboxes will only exist
>> in EDIT mode */
>>
>>     cbElems[0].onchange = function() {
>>
>>     if ( this.checked )
>>
>>     esf.displayById(elemIdToShowIfChecked);
>>
>>     else
>>
>>     esf.hideById(elemIdToShowIfChecked);
>>
>>     };
>>
>>     }
>>
>>     if ( currentCheckboxFieldValue == checkboxValueWhenChecked )
>>
>>         esf.displayById(elemIdToShowIfChecked);
>>
>>     else
>>
>>         esf.hideById(elemIdToShowIfChecked);
>>
>>   };
>>
>>
>>
>>
>>
>>   esf.containsSpace = function(s) {
>>
>>   if ( s == null )
>>
>>   return false;
>>
>>   i = 0;
>>
>>   while( i < s.length ) {
>>
>>   if ( s.charAt(i) == ' ' )
>>
>>   return true;
>>
>>   ++i;
>>
>>   }
>>
>>
>>
>>   return false;
>>
>>   };
>>
>>
>>
>>   esf.isOnlyNumbers = function(s) {
>>
>>   if ( s == null )
>>
>>   return false;
>>
>>   var i = 0;
>>
>>   while( i < s.length ) {
>>
>>   if ( "0123456789".indexOf(s.charAt(i)) < 0 )
>>
>>   return false;
>>
>>   i++;
>>
>>   }
>>
>>   return true;
>>
>>   };
>>
>>
>>
>>   // Trims whitespace from the front and end of a string
>>
>>   esf.trimSpace = function(s) {
>>
>>   if ( s == null || s.length == 0 )
>>
>>   return s;
>>
>>
>>
>>   var beginIndex = 0;
>>
>>   var endIndex   = s.length - 1;
>>
>>   while( beginIndex < s.length && s.charAt(beginIndex) == ' ' )
>>
>>   ++beginIndex;
>>
>>   while( endIndex >= 0 && s.charAt(endIndex) == ' ' )
>>
>>   --endIndex;
>>
>>   ++endIndex;
>>
>>
>>
>>   if ( beginIndex >= endIndex )
>>
>>   return '';
>>
>>
>>
>>   return s.substring(beginIndex,endIndex);
>>
>>   };
>>
>>
>>
>>   // Opens a window -- for a given name, width and height
>>
>>   esf.showWindow = function(url,name,width,height) {
>>
>>   var win =
>> window.open(url,name,'width='+width+',height='+height+',scrollbars=yes,resizable=yes');
>>
>>   win.focus();
>>
>>   return false;
>>
>>   };
>>
>>
>>
>>   }
>>
>> })();
>>
>>
>>
>> /* Workaround for IE, the only browser in the world that doesn't support
>> standard JavaScript String.startsWith() */
>>
>> if ( ! String.prototype.startsWith ) {
>>
>>   String.prototype.startsWith = function(searchString, position) {
>>
>>   position = position || 0;
>>
>>   return this.indexOf(searchString, position) === position;
>>
>>   };
>>
>> }
>>
>>
>>
>>
>>
>> </script>
>>
>> </head>
>>
>> <body class="esf">
>>
>> <div id="X52248c28_187e_43f0_8de8_98357fa63654"
>> class="X86f339d5_81e2_4117_95c2_8f747f5a6fe3 pagediv">
>>
>> <div id="ESF_TEST_TRANSACTION_HEADER" style="background-color: pink;
>> text-align: center; width: 100%;">* * *   T E S T   T R A N S A C T I O N
>> * * *</div>
>>
>>
>>
>>
>>
>>
>>
>> <div id="X62edfd59_be00_435a_9bd5_583cc84d220a" class="Page1">
>>
>>
>>
>> <p><span class="labelFieldArea bottom" style="width: 10em;"><span
>> class="labelAreaStacked"><label class="small">Current
>> Date: </label></span><span class="bottom fieldArea viewFieldData " >January
>> 30, 2019</span></span></p>
>>
>>
>>
>> </div>
>>
>>
>>
>>
>>
>>
>>
>> </div>
>>
>> </body>
>>
>> </html>
>>
>> ]]><Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id=
>> "OpenESignForms_Seal"><SignedInfo><CanonicalizationMethod Algorithm="
>> http://www.w3.org/2006/12/xml-c14n11#WithComments"/><SignatureMethod
>> Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/><Reference
>>  Id="Payload_Reference_ID" URI=""><Transforms><Transform Algorithm="
>> http://www.w3.org/2000/09/xmldsig#enveloped-signature"
>> /></Transforms><DigestMethod Algorithm="
>> http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>
>> 82PhK9E99GBG/pq5PSLRIGqpz0QbwwN8wlYQJsR3e4r5g1M8yhD3J0XhxNcMHmJIyyyb7yzo947O
>>
>> y2T9M/EHQw==</DigestValue></Reference><Reference URI="#KeyInfo_ID"
>> ><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"
>> /><DigestValue>
>> zqVVsv0tdx1Fp/c1rrj5b7aKdVtwtq2u0R0RsUnwCja3aMXGjsfqA68lZawt5wCtZqLWsKllPUom
>>
>> Z5quVeBVBg==</DigestValue></Reference><Reference URI=
>> "#QualifyingProperties_ID"><DigestMethod Algorithm="
>> http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>
>> AKs1UqheswdoyC7xfofmnZoCOF8dmFISw0Cnqfp9n294EgvP5dnZAWWXH+yspvhnNr3qOJmcaP3N
>>
>> ZYoN6rG5XA==</DigestValue></Reference><Reference URI=
>> "#OpenESignForms_Seal_ID"><DigestMethod Algorithm="
>> http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>
>> PzDq2Q3GpkgsnMmD//3bp5q+IksCxpR106yL1hx+WdxNvZWeAdT3SFAoHgLZtx4KL814iqLbiL5U
>>
>> kwwmI2q8DA==</DigestValue></Reference></SignedInfo><SignatureValue>
>> ID9zJVDWmIjJzv2TWdq3RjZ4MdF3+gX2LX2du7uRw0A2BJ7u8DAg33Wzlg0EnGNyOFC/P8obaegE
>>
>>
>> xCaomRhZXqrLdCoyobe5zWxAFZ+cEHvUY4IwZKdf06i8UEgWiREdHTLfmqqbrhWrnXSnyFoSzAR3
>>
>>
>> pn4WssvP4LlJqoMPVQfHtO2aPJQpBBbnQe9wa8K0DgEpAy3ge6OwTtOZ48F27AweZPnFQOBhcmw4
>>
>>
>> Rfsri9CmZKUWI46RmLuSBv5uyxSwaZIX88uGPd4bG2zXcHd2VBxDyKblpGgIU+xcG+nxuSYNN8Y6
>>
>>
>> rs5o9/XoMM6T8x8LTdNWIgMRf11VhJ1bCh6uF8nEi/QYnV5GcRys/14a8J1oq7l/RNwEk1rMU1m/
>>
>>
>> VWDWhQT591S8hD4ZCVx7tokHdqtPg7hGHBbNdpcDYDKAhwRm3PJJBJ9XBHTgByrxnCqVk1W7D50f
>>
>>
>> bSiITGvsOIp3ooX3wsq44zv/GVl6BamUPMLhgDq30YZmMNDobJsZxY+CoxQPINfv325R4solQ6s0
>>
>>
>> WXqg5RzHHjRTfTK6uNNX931iCb9o3HzKZhtyfZcLygUY69og0etvVpUXjMc2m590eUFUs14ekKwU
>>
>>
>> hvB8rN0Qz+FVFH/jwR7AsNgDwE2KGaHEgypEOG5m3vLfLlJXP9ocGuCTp8IpOetx3GAndDFmizU=
>> </SignatureValue><KeyInfo Id="KeyInfo_ID"><KeyName>
>> 021eddcd-ebd0-4603-8b26-24b3f7fee682
>> </KeyName><KeyValue><RSAKeyValue><Modulus>
>> iSEKAXeyDOq1RKCwypjN5iuU2uR//YM4ssMBGBCtfpq7eF6pXm0rU5Zz4LnmoptUyu4IcnrStgRr
>>
>>
>> JP3NPOeHgibR8i/Ef9frzd4rCwX2JpY3tztCGYByzk93ln7tzRYnMug9q0IVk6Far7JxBIuMy/eg
>>
>>
>> LOyptCZGnRU8wV6D+gydsdoFsaR+zghMtBmoZ8sArGd81rzq28B3NDdqrd4camU7viI+5mMTRGJn
>>
>>
>> UtBzU/4p7kxv2gePzUc2vJ76+8I1eUGbqc7Co12q8vS+wGpQ4a0lUiWJwj7BRXR21oPz+Qo5fiqb
>>
>>
>> a/mSo0gv11s3T2oHTTzWSyvTPb2wbwyBSFAVVaoqJ0g01UEjU2Lv2RkTi/YZpyyPPUDh4OA1KMfX
>>
>>
>> f3M7wxzS0+tJFfE4O4ELsaYlcRElVIor1y98LPKmqWgTg0olfU8H00igjbJdU37SzyqygqNadZlC
>>
>>
>> ocTtaMvveNIkDURAPPZS/Llp1KUm4YY29m+Of0JK0ZoEBLIj5R0uEIpOBe0MWhH4d8l5mxn8IKpR
>>
>>
>> chGgxgJ4P7bNpPQmPUH2rpFukV0NIPe946X7oJE/NubjePyQxpQwwE6zzavz0rf9s4OQpW7tdG/+
>>
>>
>> fyubGHXq4H/DH4ZZt0KBuIhLfqjEd3mgyzp4waihnkn4bhcRFm8s5UJEuszp6BkD0EHcPfN76Uk=
>> </Modulus><Exponent>AQAB
>> </Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>
>> MIIKkDCCCHigAwIBAgIIXjPAnc0XFeIwDQYJKoZIhvcNAQENBQAwgcIxOTA3BgNVBAMMME9wZW5f
>>
>>
>> ZVNpZ25Gb3Jtc19odHRwczovL29wZW4uZXNpZ25mb3Jtcy5jb20vZGVtbzE6MDgGA1UECgwxRGVw
>>
>>
>> bG95bWVudElEL2JiZmU5YmVkLTkxOGQtNDQ2Yi05NTE4LThlYzMwM2JhZmI4MzE8MDoGA1UECwwz
>>
>>
>> U2lnbmF0dXJlS2V5SUQvMDIxZWRkY2QtZWJkMC00NjAzLThiMjYtMjRiM2Y3ZmVlNjgyMQswCQYD
>>
>>
>> VQQGEwJVUzAeFw0xMTA0MTYwMzIxMzhaFw0yMTA0MTYwMzIxMzhaMIHCMTkwNwYDVQQDDDBPcGVu
>>
>>
>> X2VTaWduRm9ybXNfaHR0cHM6Ly9vcGVuLmVzaWduZm9ybXMuY29tL2RlbW8xOjA4BgNVBAoMMURl
>>
>>
>> cGxveW1lbnRJRC9iYmZlOWJlZC05MThkLTQ0NmItOTUxOC04ZWMzMDNiYWZiODMxPDA6BgNVBAsM
>>
>>
>> M1NpZ25hdHVyZUtleUlELzAyMWVkZGNkLWViZDAtNDYwMy04YjI2LTI0YjNmN2ZlZTY4MjELMAkG
>>
>>
>> A1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCJIQoBd7IM6rVEoLDKmM3m
>>
>>
>> K5Ta5H/9gziywwEYEK1+mrt4XqlebStTlnPgueaim1TK7ghyetK2BGsk/c0854eCJtHyL8R/1+vN
>>
>>
>> 3isLBfYmlje3O0IZgHLOT3eWfu3NFicy6D2rQhWToVqvsnEEi4zL96As7Km0JkadFTzBXoP6DJ2x
>>
>>
>> 2gWxpH7OCEy0GahnywCsZ3zWvOrbwHc0N2qt3hxqZTu+Ij7mYxNEYmdS0HNT/inuTG/aB4/NRza8
>>
>>
>> nvr7wjV5QZupzsKjXary9L7AalDhrSVSJYnCPsFFdHbWg/P5Cjl+Kptr+ZKjSC/XWzdPagdNPNZL
>>
>>
>> K9M9vbBvDIFIUBVVqionSDTVQSNTYu/ZGROL9hmnLI89QOHg4DUox9d/czvDHNLT60kV8Tg7gQux
>>
>>
>> piVxESVUiivXL3ws8qapaBODSiV9TwfTSKCNsl1TftLPKrKCo1p1mUKhxO1oy+940iQNREA89lL8
>>
>>
>> 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
>>
>> 9zGxY4cvR4vn4VtWcebg9AVMJCwhV85c7l0P0uU=
>> </X509Certificate></X509Data></KeyInfo><Object><QualifyingProperties Id=
>> "QualifyingProperties_ID"
>> ><SignedProperties><SignedSignatureProperties><SigningTime>
>> 2019-01-30T12:40:46-08:00
>> </SigningTime></SignedSignatureProperties><SignedDataObjectProperties><DataObjectFormat
>>  ObjectReference="#Payload_Reference_ID"><Description>document.html
>> </Description><MimeType>text/html
>> </MimeType></DataObjectFormat></SignedDataObjectProperties></SignedProperties></QualifyingProperties></Object><Object><SignatureProperties><SignatureProperty
>>  Id="OpenESignForms_Seal_ID" Target="#OpenESignForms_Seal"
>> ><OpenESignForms_XmlDigitalSignatureSeal DeploymentHostAddress=
>> "104.239.136.116"DeploymentHostName="open.esignforms.com" DeploymentId=
>> "bbfe9bed-918d-446b-9518-8ec303bafb83" SignerAddress="
>> 50-46-115-249.evrt.wa.frontiernet.net (50.46.115.249)" SignerAgent="Mozilla/5.0
>> (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like
>> Gecko) Version/12.0.3 Safari/605.1.15" Timestamp=
>> "2019-01-30T12:40:46-08:00" Version="19.1.19_p0129_1657"
>> /></SignatureProperty></SignatureProperties></Object></Signature></snapshot>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/security-dev/attachments/20190130/d2541249/attachment-0001.html>


More information about the security-dev mailing list