<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.m1
        {mso-style-name:m1;
        color:blue;}
span.t1
        {mso-style-name:t1;
        color:#990000;}
span.b1
        {mso-style-name:b1;
        font-family:"Courier New";
        color:red;
        font-weight:bold;
        text-decoration:none none;}
span.ns1
        {mso-style-name:ns1;
        color:red;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#002060">Hi Shibboleth Developers,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white">I am implementing an SP initiated web browser SAML 2.0 SSO profile in JBOSS.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060">I am testing it with a Shibboleth IDP.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060"><br>
<span style="background:white">I have managed to get a full authentication workflow with the SAML IDP using opensaml, when sending an unsigned AuthenRequest.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white">Now I am trying to add a signature to the AuthenRequest, but getting an error
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">-
</span><strong><span style="font-family:"Calibri","sans-serif"">Error decoding authentication request message.<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong><span style="font-family:"Calibri","sans-serif""><o:p> </o:p></span></strong></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">In the
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#7030A0;background:white">idp-process.log
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">I see that there is an</span>
<span style="color:#7030A0">org.opensaml.xml.parse.XMLParserException: Invalid XML
</span>error.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">It seems that the
</span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif";color:#990000">ec:InclusiveNamespaces
</span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">tag is missing from the signature.</span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:-12.0pt"><b><span style="font-size:10.0pt;font-family:"Courier New";color:red"> </span></b><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">Here’s the Transforms part created by me:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Courier New""></span></b><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><</span></span><span class="t1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">ds:Transforms</span></span><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">></span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span class="b1"><span style="font-size:10.0pt"> </span>
</span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><span class="m1"><</span><span class="t1">ds:Transform</span>
<span class="t1">Algorithm</span><span class="m1">="</span><b>http://www.w3.org/2000/09/xmldsig#enveloped-signature</b><span class="m1">" /></span>
<o:p></o:p></span></p>
<p class="MsoNormal"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
<span class="m1"><</span><span class="t1">ds:Transform</span> <span class="t1">Algorithm</span><span class="m1">="</span><b>http://www.w3.org/2001/10/xml-exc-c14n#</b><span class="m1">" /></span>
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:-12.0pt"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""> <span class="m1"></</span><span class="t1">ds:Transforms</span><span class="m1">><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-indent:-12.0pt"><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">And here’s an example from the valid SAMLResponse coming back from the IDP:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Courier New"">
</span></b><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><</span></span><span class="t1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">ds:Transforms</span></span><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">></span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p></o:p></span></p>
<p class="MsoNormal"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""> <span class="m1"><</span><span class="t1">ds:Transform</span>
<span class="t1">Algorithm</span><span class="m1">="</span><b>http://www.w3.org/2000/09/xmldsig#enveloped-signature</b><span class="m1">" /></span>
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><</span></span><span class="t1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">ds:Transform Algorithm</span></span><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">="</span></span><b><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">http://www.w3.org/2001/10/xml-exc-c14n#</span></b><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">"></span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in;text-indent:.5in"><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><</span></span><span class="t1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif";background:yellow;mso-highlight:yellow">ec:InclusiveNamespaces</span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif";background:yellow;mso-highlight:yellow">
<span class="ns1">xmlns:ec</span></span><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">="</span></span><b><span style="font-size:10.0pt;font-family:"Verdana","sans-serif";color:red">http://www.w3.org/2001/10/xml-exc-c14n#</span></b><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">"</span></span><span class="t1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
PrefixList</span></span><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">="</span></span><b><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">ds saml samlp xenc</span></b><span class="m1"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">"
/></span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:-12.0pt"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
<span class="m1"></</span><span class="t1">ds:Transform</span><span class="m1">></span><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:-12.0pt"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""> <span class="m1"></</span><span class="t1">ds:Transforms</span><span class="m1">><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">When adding the tag manually the authentication works fine.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">Am I missing something in the creation of the Signature?
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">Is there a way to set this tag?
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white">Here’s the code I use:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> Signature signature = (Signature) Configuration.<i>getBuilderFactory</i>()</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> .getBuilder(Signature.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">DEFAULT_ELEMENT_NAME</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">).buildObject(Signature.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">DEFAULT_ELEMENT_NAME</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> KeyStore keyStore = getKS();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> RSAPrivateKey privateKey = (RSAPrivateKey) keyStore.getKey(</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">JKS_ALIAS</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">,</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">
</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">PWD</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">.toCharArray());</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> BasicX509Credential decryptionCredential =
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">new</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> BasicX509Credential();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> decryptionCredential.setPrivateKey(privateKey);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> signature.setSigningCredential(decryptionCredential);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> signature.setSignatureAlgorithm(SignatureConstants.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">ALGO_ID_SIGNATURE_RSA_SHA1</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> signature.setCanonicalizationAlgorithm(SignatureConstants.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">ALGO_ID_C14N_EXCL_OMIT_COMMENTS</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> KeyInfo keyinfo = (KeyInfo) Configuration.<i>getBuilderFactory</i>().getBuilder(KeyInfo.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">DEFAULT_ELEMENT_NAME</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">)</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> .buildObject(KeyInfo.</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">DEFAULT_ELEMENT_NAME</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> X509Certificate certificate = (X509Certificate) keyStore.getCertificate(</span><i><span style="font-size:10.0pt;font-family:Consolas;color:#0000C0">JKS_ALIAS</span></i><span style="font-size:10.0pt;font-family:Consolas;color:black">);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> KeyInfoHelper.<i>addCertificate</i>(keyinfo, certificate);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> signature.setKeyInfo(keyinfo);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> SecurityConfiguration secConfig = Configuration.<i>getGlobalSecurityConfiguration</i>();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> String keyInfoGeneratorProfile =
</span><span style="font-size:10.0pt;font-family:Consolas;color:#2A00FF">"XMLSignature"</span><span style="font-size:10.0pt;font-family:Consolas;color:black">;</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">try</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> SecurityHelper.<i>prepareSignatureParams</i>(signature, decryptionCredential, secConfig,</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> keyInfoGeneratorProfile);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">catch</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> (SecurityException e) {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> e.printStackTrace();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> …<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> authnRequest.setSignature(signature);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> Marshaller marshaller = Configuration.<i>getMarshallerFactory</i>().getMarshaller(authnRequest);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> Element authDOM =
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">null</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black">;</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">try</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> authDOM = marshaller.marshall(authnRequest);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">catch</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> (MarshallingException e) {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> e.printStackTrace();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">try</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> Signer.<i>signObject</i>(signature);</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7F0055">catch</span></b><span style="font-size:10.0pt;font-family:Consolas;color:black"> (SignatureException e) {</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> e.printStackTrace();</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> }</span><span style="font-size:10.0pt;font-family:Consolas"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana","sans-serif""><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-indent:-24.0pt"><span class="b1"><span style="font-size:10.0pt"> </span></span><span style="font-size:10.0pt;font-family:"Verdana","sans-serif"">
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:#002060;background:white">Asaf<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:black;background:white"><o:p> </o:p></span></p>
</div>
</body>
</html>