<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Coldfusion SIM HMAC-SHA512 Update in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66039#M39634</link>
    <description>A third problem is you are missing a caret at the beginning of your string.</description>
    <pubDate>Thu, 24 Jan 2019 05:03:18 GMT</pubDate>
    <dc:creator>Renaissance</dc:creator>
    <dc:date>2019-01-24T05:03:18Z</dc:date>
    <item>
      <title>Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/65999#M39594</link>
      <description>&lt;P&gt;Hi all... I currently have a working SIM MD5 solution and am updating to SHA512.&amp;nbsp; I believe that I have walked through the necessary steps as outlined here ( &lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_blank"&gt;https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how&lt;/A&gt;&amp;nbsp;), however continue to receive an Error Code 99.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Essentially, the only changes are, as I read them&lt;BR /&gt;&amp;nbsp;-- to request a Signature Key, change to binary, use this as the HMAC key&lt;BR /&gt;&amp;nbsp;-- change the&amp;nbsp;algorithm from HMACMD5 to HMACSHA512&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;MD5 Solution:&lt;BR /&gt;&amp;lt;cfset digest=HMAC("#authNetLogin#^#sequence#^#fp_timestamp#^#x_amount#^","#authNetTrnxKey#","HMACMD5") /&amp;gt;&lt;BR /&gt;&lt;BR /&gt;SHA512:&lt;BR /&gt;&amp;lt;cfset authNetHexSignatureKey =&amp;nbsp;"REMOVED_FROM_CODE" /&amp;gt;&lt;BR /&gt;&amp;lt;cfset authNetBinarySignatureKey = toBinary(authNetHexSignatureKey) /&amp;gt;&lt;BR /&gt;&amp;lt;cfset&amp;nbsp;digest=HMAC("#authNetLogin#^#sequence#^#fp_timestamp#^#x_amount#^","#authNetBinarySignatureKey#","HMACSHA512")&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The existing Error 99 tool ( &lt;A href="https://developer.authorize.net/api/reference/responseCode99.html" target="_blank"&gt;https://developer.authorize.net/api/reference/responseCode99.html&lt;/A&gt;&amp;nbsp;) appears to be for use in the old MD5 method.&amp;nbsp; Is there another tool for this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have looked at the data being posted using the dump tool here ( &lt;A href="http://developer.authorize.net/bin/developer/paramdump" target="_blank"&gt;http://developer.authorize.net/bin/developer/paramdump&lt;/A&gt;&amp;nbsp;) and everything LOOKS ok.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any assistance would be appreciated.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Jan 2019 18:00:41 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/65999#M39594</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-23T18:00:41Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66038#M39633</link>
      <description>I would venture that your issue is one or more of the following, with a disclaimer that I have never used sim:&lt;BR /&gt;&lt;BR /&gt;-for MD5, as I understand it, you created part of your string in the merchant interface. You do not do that for the new hash. The sequence is an arbitrary number that you make up.&lt;BR /&gt;&lt;BR /&gt;-the above creates a new step in the process where you have to pass the value of your sequence in the request (because Authorize doesn’t have it in the interface anymore)</description>
      <pubDate>Thu, 24 Jan 2019 05:01:33 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66038#M39633</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-01-24T05:01:33Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66039#M39634</link>
      <description>A third problem is you are missing a caret at the beginning of your string.</description>
      <pubDate>Thu, 24 Jan 2019 05:03:18 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66039#M39634</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-01-24T05:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66049#M39641</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;A third problem is you are missing a caret at the beginning of your string.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The &lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_blank"&gt;Do I need to upgrade my transaction...&lt;/A&gt; linked in the first post and the &lt;A href="https://www.authorize.net/content/dam/authorize/documents/SIM_guide.pdf" target="_blank"&gt;SIM Guide&lt;/A&gt; (page 30) do not specify a caret at the beginning of the string used to generate the hash.&amp;nbsp; Both show the format to be "x_login^x_fp_sequence^x_fp_timestamp^x_amount^".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having this exact same problem, only with a Java implementation.&amp;nbsp; Ours is also currently working by generating an MD5 hash using the above string and the Transaction Key, and passing that in the x_fp_hash field.&amp;nbsp; However, when SHA512 is used with the same string above and the Signature Key instead, I get Error 99 every time (&lt;EM&gt;The server-generated fingerprint does not match the merchant-specified fingerprint in the x_fp_hash field&lt;/EM&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Interesting that the &lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_blank"&gt;Do I need to upgrade my transaction...&lt;/A&gt; page says the Signature Key needs to first be converted to binary before computing SHA512 hash but the &lt;A href="https://www.authorize.net/content/dam/authorize/documents/SIM_guide.pdf" target="_blank"&gt;SIM Guide&lt;/A&gt; does not.&amp;nbsp; I have tried it both ways and still always get Error 99.&amp;nbsp; What are we missing here?&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2019 16:26:49 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66049#M39641</guid>
      <dc:creator>ebuist1</dc:creator>
      <dc:date>2019-01-24T16:26:49Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66050#M39642</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;A third problem is you are missing a caret at the beginning of your string.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;I appreciate the input, however, for the initial fingerprint, a leading ^ was not necessary in the MD5 implementation nor is called for in the SHA512 implentation, according to here (&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_blank"&gt;https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Taken from link ...&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;For example, if we presume an API Login ID of "authnettest", a sequence number of "789", a timestamp of "67897654," an amount of "10.50", and no currency code, the hash input would look like this:&lt;/EM&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;EM&gt;authnettest^789^67897654^10.50^&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;The leading ^ instruction comes from here ( &lt;A href="https://developer.authorize.net/support/hash_upgrade/" target="_blank"&gt;https://developer.authorize.net/support/hash_upgrade/&lt;/A&gt;&amp;nbsp;), this page discusses how to validate the AuthNet response from the Hosted Payment Form by comparing the transHashSHA2, with a locally calculated value... however, using SHA512 (and the new signature key method) I haven't been able to successfully submit the initial SIM request ... to load the Hosted Payment Form.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Thu, 24 Jan 2019 16:55:04 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66050#M39642</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-24T16:55:04Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66051#M39643</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;I appreciate your time and your input, however...&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;-for MD5, as I understand it, you created part of your string in the merchant interface. You do not do that for the new hash. The sequence is an arbitrary number that you make up.&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BLOCKQUOTE&gt;In the MD5 method, we used a Transaction Key for the HMAC key.&amp;nbsp; The Transaction Key was pulled from the merchant interface and used directly in the HMAC function, without any changes made.&amp;nbsp; The new hash method uses a Signature Key that is also taken from the merchant interface, however it is not used directly in the HMAC function.&amp;nbsp; It is, in its inital state, a hex string, that is to be converted to binary prior to using as the key in the HMAC function.&lt;BR /&gt;&lt;BR /&gt;Taken from ( &lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_blank"&gt;Do I need to upgrade my ...&lt;/A&gt; )&lt;BR /&gt;&lt;EM&gt;It is important to note that the Signature Key is presented in the Merchant Interface, in hexadecimal format. You will need to convert the Signature Key to binary format&amp;nbsp;before calculating the&amp;nbsp;HMAC-SHA512 hash.&lt;BR /&gt;&lt;/EM&gt;&lt;EM&gt;...&lt;BR /&gt;&lt;/EM&gt;&lt;EM&gt;You would then hash this input with the HMAC-SHA512 algorithm, using the binary-encoded Signature Key as the HMAC key.&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;It is my understanding that the toBinary() function would accomplish this in CF.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;-the above creates a new step in the process where you have to pass the value of your sequence in the request (because Authorize doesn’t have it in the interface anymore)&lt;BR /&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BLOCKQUOTE&gt;I &lt;EM&gt;believe &lt;/EM&gt;that you are using the term &lt;STRONG&gt;sequence&lt;/STRONG&gt;&amp;nbsp;to refere to the Key (Transaction vs Signature), I've outline (as I understand them) the difference between these two values and the MD5 vs SHA512 methods.&amp;nbsp; To be clear, both methods, MD5 and SHA512, require a sequence to both be passed as a form field key/value pair and used inte the creation of the HMAC fingerprint... this is supposed to be a value that you create (generally an invoice number or other unique value)&amp;nbsp;&lt;P class="1548349706255"&gt;&amp;nbsp;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The unique merchant-generated sequence number (x_fp_sequence);&lt;/LI&gt;&lt;/UL&gt;&lt;P class="1548349706255"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Thu, 24 Jan 2019 17:12:59 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66051#M39643</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-24T17:12:59Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66052#M39644</link>
      <description>&lt;P&gt;You are right. I've been helping people with this. I don't use SIM/DPM and the other methods have a leading caret.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am not versed in this, but am I not correct that using MD5 you had to enter a number in the merchant inferface, and that number was going to be used in calculating the hash? I keep hearing of "the merchant will lose the ability to put xzy in the merchant interface".&amp;nbsp; I may be totally off.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That was what I was referring to as possibly your problem. From what I read, you don't use the value inputted in the merchant interface. You just randomly generate a number on your end and use it. So you could just do "123" and use that for the sequence. This is totally separate from the signature key or transaction key.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then you pass along the 123 in the request.&amp;nbsp; I won't be on here anymore today, but I'll see what you've got later on.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2019 17:19:22 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66052#M39644</guid>
      <dc:creator>Renaissance</dc:creator>
      <dc:date>2019-01-24T17:19:22Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66053#M39645</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/26959"&gt;@Renaissance&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;P&gt;&lt;FONT size="2"&gt;... but am I not correct that using MD5 you had to enter a number in the merchant inferface, and that number was going to be used in calculating the hash? I keep hearing of "the merchant will lose the ability to put xzy in the merchant interface".&amp;nbsp; I may be totally off.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;That was what I was referring to as possibly your problem. From what I read, you don't use the value inputted in the merchant interface. You just randomly generate a number on your end and use it. So you could just do "123" and use that for the sequence. This is totally separate from the signature key or transaction key.&lt;/FONT&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;From &lt;A href="https://support.authorize.net/s/article/MD5-Hash-End-of-Life-Signature-Key-Replacement" target="_blank"&gt;MD5 Hash End of Life....&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;EM&gt;&lt;STRONG&gt;Phase 1&lt;/STRONG&gt;&amp;nbsp;- Starting later this month to early February 2019, we will remove ability to configure or update MD5 Hash setting in the Merchant Interface. There are no changes to the existing API response.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I read it, the change in the Merchant Interface is that the user will no longer be able to enable/update MD5 Hash as an authorized method.&amp;nbsp; So they are disabling the option of selecting MD5.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You are correct, we are not using the MD5 Hash string inputed in the Merchant Interface &amp;gt; MD5-Hash, that is/was used to encrypt the responses from AuthNet, not for calculating the signature when submitting a request for load of the Hosted Payment Form.&amp;nbsp; We are using the key values assigned by AuthNet.&amp;nbsp; The Signature Key, once made binary, is the new version of the old Transaction Key.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The usage of &lt;STRONG&gt;sequence&lt;/STRONG&gt; itself hasn't changed and is a unique value used within the hashed string and passed as a form element.&amp;nbsp; Taken from &lt;A href="https://support.authorize.net/s/article/Do-I-need-to-upgrade-my-transaction-fingerprint-from-HMAC-MD5-to-HMAC-SHA512-and-how" target="_self"&gt;Do I need to upgrade ...&lt;/A&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;FONT size="2"&gt;The API Login ID (x_login);&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;&lt;FONT size="2"&gt;The unique merchant-generated sequence number (x_fp_sequence);&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="2"&gt;The transaction's timestamp in UNIX Epoch time, i.e. how many seconds have passed since Midnight UTC&amp;nbsp;on January 1, 1970 (x_fp_timestamp);&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="2"&gt;The transaction amount (x_amount);&lt;/FONT&gt;&lt;/LI&gt;&lt;LI&gt;&lt;FONT size="2"&gt;The currency code (x_currency_code&lt;SPAN&gt;), which should be blank if no currency code is submitted.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;For example, if we presume an API Login ID of "authnettest", &lt;STRONG&gt;a sequence number of "789&lt;/STRONG&gt;", a timestamp of "67897654," an amount of "10.50", and no currency code, the&lt;/SPAN&gt;&lt;SPAN&gt; hash input would look like this:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;FONT size="2"&gt;authnettest^&lt;STRONG&gt;789&lt;/STRONG&gt;^67897654^10.50^&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;The only changes, as I read them, are&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;use SHA512 instead of MD5&lt;/LI&gt;&lt;LI&gt;use binary converted Signature Key, instead of plain text Transaction Key&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;everything else is supposed to be the same, even the field that the hash/fingerprint is submitted via and AuthNet will determine which method you've used.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2019 18:04:02 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66053#M39645</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-24T18:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66055#M39647</link>
      <description>&lt;P&gt;I am still working on a Coldfusion solution, however since I am beginning to believe this has more to do with the underlying Java libraries than my implimentation, I have put into place a solution using PHP 5.3 to generate the fingerprint and pass back to CF for use in the existing calls.&amp;nbsp; This works.&amp;nbsp; Eventually, we will migrate away from SIM/DPM to the API, however for now...&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I make a cfhttp call to the PHP form, that receives the necessary pieces to calc the fingerprint and returns the timestamp and fingerprint for use by the existing CF process.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have read that users have had success using hex2bin(), base_convert(), and pack()... since hex2bin is not available in 5.3, I had to try the other two.&amp;nbsp; The &lt;SPAN&gt;HMAC-SHA512&amp;nbsp;&lt;/SPAN&gt;fingerprint calculated using base_convert() received Error 99, however the HMAC-SHA512 fingerprint calculated using pack() was successful and I was able to load the Direct Payment Form.&lt;/P&gt;</description>
      <pubDate>Thu, 24 Jan 2019 19:09:19 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66055#M39647</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-24T19:09:19Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66194#M39764</link>
      <description>&lt;P&gt;I was unable to develop a fully CF/Java implementation ... time simply too limited at this point and with a working solution in PHP, having to mark it as done step away.&lt;/P&gt;</description>
      <pubDate>Thu, 31 Jan 2019 14:54:35 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66194#M39764</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-01-31T14:54:35Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66529#M40054</link>
      <description>&lt;P&gt;Here is code that works in CF/Lucee.&lt;/P&gt;&lt;P&gt;authSignature = the signature key&lt;/P&gt;&lt;P&gt;message = Built message from API, CIM, AIM or whatever.&lt;/P&gt;&lt;PRE&gt;key=binaryDecode(authSignature, "hex" );
hashResult = hmac(message, key, 'HMACSHA512');&lt;/PRE&gt;</description>
      <pubDate>Tue, 26 Feb 2019 00:47:36 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66529#M40054</guid>
      <dc:creator>kabutotx</dc:creator>
      <dc:date>2019-02-26T00:47:36Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66530#M40055</link>
      <description>&lt;P&gt;Not sure if you still need this, but I was able to get this to work. The signature key is in a hex format and the toBinary function is expecting base64 data. The binaryDecode function though allows you to specify that the data is hex. So your HMAC script should look like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;cfset authNetHexSignatureKey = "REMOVED_FROM_CODE" /&amp;gt;&lt;BR /&gt;&amp;lt;cfset authNetBinarySignatureKey = binaryDecode(authNetHexSignatureKey, "hex") /&amp;gt;&lt;BR /&gt;&amp;lt;cfset digest=HMAC("#authNetLogin#^#sequence#^#fp_timestamp#^#x_amount#^","#authNetBinarySignatureKey#","HMACSHA512")&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This worked for me.&lt;/P&gt;</description>
      <pubDate>Tue, 26 Feb 2019 00:53:52 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66530#M40055</guid>
      <dc:creator>deanlaw</dc:creator>
      <dc:date>2019-02-26T00:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66531#M40056</link>
      <description>&lt;P&gt;I appreciate your help&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/18439"&gt;@kabutotx&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/17837"&gt;@deanlaw&lt;/a&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/18439"&gt;@kabutotx&lt;/a&gt;&amp;nbsp;, the use of binaryDecode() was the solution.&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/17837"&gt;@deanlaw&lt;/a&gt;&amp;nbsp;, thank you for pointing out the difference between binaryDecode() and toBinary()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have updated our CF code and successfully removed the PHP script.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Feb 2019 02:07:16 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66531#M40056</guid>
      <dc:creator>mojenals</dc:creator>
      <dc:date>2019-02-26T02:07:16Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66580#M40100</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/17837"&gt;@deanlaw&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What version of CF are you using?&amp;nbsp; I'm attempting to get this working also and so far no go with CF 10 BUT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using Auth.net sandbox&lt;/P&gt;&lt;P&gt;I'm also just using what is called the Silent Post Url which means auth.net posts data to my site and so I'm attempting to generate this hashed string and compare that to the value from Auth.net form field&amp;nbsp;&lt;SPAN&gt;X_SHA2_HASH.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It's not very clear what the hashed sting should be but I believe it needs to be constructed of the 30 form fields separated by ^ and maybe a trailing ^ or prepended ^ or both..i've tried all 4 options and so far my result doesn't match but no clue if the problem is CF10 or auth.net sandbox or me.&amp;nbsp; So any clues would be appreciated.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Feb 2019 23:21:02 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66580#M40100</guid>
      <dc:creator>MinneSnowtain</dc:creator>
      <dc:date>2019-02-26T23:21:02Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66585#M40104</link>
      <description>&lt;P&gt;It should work with CF 10+.&amp;nbsp; The hmac function is the newset and CF 10+.&amp;nbsp;&lt;BR /&gt;(There is a CF_HMAC addon available that might work for older CF) I see you are following the other thread on the Silent Post URL.&amp;nbsp; I am using the API version for CF.&amp;nbsp; Each API builds a different message, so check with that API.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 00:37:01 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66585#M40104</guid>
      <dc:creator>kabutotx</dc:creator>
      <dc:date>2019-02-27T00:37:01Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66586#M40105</link>
      <description>&lt;P&gt;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/28789"&gt;@MinneSnowtain&lt;/a&gt;I am using ACF 2016. I also have ACF 11 running on another server, which I have not tested yet, but it should work the same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you look at this guide,&amp;nbsp;&lt;A href="https://www.authorize.net/content/dam/authorize/documents/SIM_guide.pdf" target="_self"&gt;SIM Guide,&lt;/A&gt; starting at the bottom of page 29, it outlines what the fingerprint is comprised of. "x_login^x_fp_sequence^x_fp_timestamp^x_amount^". There is also a 5th field that you can use, which is for currency, which looks like this: "x_login^x_fp_sequence^x_fp_timestamp^x_amount^US" (notice, no trailing carat). You can see this in example 2 on page 30. You would then use your binary converted Session Key (not your Transaction Key) to generate the SHA512 hash.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;cfset authNetHexSignatureKey = "REMOVED_FROM_CODE" /&amp;gt;
&amp;lt;cfset authNetBinarySignatureKey = binaryDecode(authNetHexSignatureKey, "hex") /&amp;gt;
&amp;lt;cfset digest=HMAC("#x_login#^#x_fp_sequence#^#fp_timestamp#^#x_amount#^","#authNetBinarySignatureKey#","HMACSHA512")&amp;gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, after generating the digest variable above, I submit it using the x_fp_hash field. I don't know if this is different using the Silent Post feature.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 00:45:07 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66586#M40105</guid>
      <dc:creator>deanlaw</dc:creator>
      <dc:date>2019-02-27T00:45:07Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66588#M40107</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/17837"&gt;@deanlaw&lt;/a&gt;&amp;nbsp; and&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/18439"&gt;@kabutotx&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/18439"&gt;@kabutotx&lt;/a&gt;&amp;nbsp;did you try using CF10? or are you just guessing that it should work?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately I'm not using the API and I'm not sending this hashed result but comparing my hash result with what I get posted (just a regular ole form post) from auth.net.&amp;nbsp; Unfortunately the string that Auth.net uses to hash is a bit of a mystery to me which makes this harder yet.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 01:39:51 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66588#M40107</guid>
      <dc:creator>MinneSnowtain</dc:creator>
      <dc:date>2019-02-27T01:39:51Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66589#M40108</link>
      <description>&lt;P&gt;Didn't try CF 10 but hmac builtin function was added to CF at that version.&lt;/P&gt;&lt;P&gt;I assume you are using the old SIM API, so follow&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/17837"&gt;@deanlaw&lt;/a&gt; posted above.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 02:01:28 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66589#M40108</guid>
      <dc:creator>kabutotx</dc:creator>
      <dc:date>2019-02-27T02:01:28Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66617#M40135</link>
      <description>&lt;P&gt;I am happy to report that my posted signature TO auth.net is valid using:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;cfset authNetBinarySignatureKey = binaryDecode(x_secret_key,"hex") /&amp;gt;&lt;BR /&gt;&amp;lt;cfset x_fp_hash=HMAC("#x_login#^#x_fp_sequence#^#x_fp_timestamp#^#x_amount#^#x_currency_code#","#authNetBinarySignatureKey#","HMACSHA512")&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now if only I could validate what sandbox returns back to me via the silent post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This now confirms there is something wrong with the string I create that is hashed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So far this is what I've tried&lt;/P&gt;&lt;P&gt;&amp;lt;cfset stringToHash=""&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash##form.x_trans_id#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_test_request#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_response_code#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_auth_code#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_cvv2_resp_code#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_cavv_response#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_avs_code#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_method#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_account_number#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_amount#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_company#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_first_name#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_last_name#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_address#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_city#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_state#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_zip#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_country#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_phone#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_fax#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_email#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_company#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_first_name#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_last_name#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_address#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_city#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_state#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_zip#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_ship_to_country#"&amp;gt;&lt;BR /&gt;&amp;lt;cfset stringToHash="#stringToHash#^#form.x_invoice_num#"&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;that string did not result is a match&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;same string as above but added&lt;/P&gt;&lt;P&gt;&amp;lt;cfset stringToHash="#orgstringToHash#^"&amp;gt;&lt;/P&gt;&lt;P&gt;it did not match&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;same as orignal string but added&lt;/P&gt;&lt;P&gt;&amp;lt;cfset stringToHash="^#orgstringToHash#"&amp;gt;&lt;/P&gt;&lt;P&gt;it did not match&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;same as orignal string but added&lt;/P&gt;&lt;P&gt;&amp;lt;cfset stringToHash="^#orgstringToHash#^"&amp;gt;&lt;/P&gt;&lt;P&gt;it did not match&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 17:03:46 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66617#M40135</guid>
      <dc:creator>MinneSnowtain</dc:creator>
      <dc:date>2019-02-27T17:03:46Z</dc:date>
    </item>
    <item>
      <title>Re: Coldfusion SIM HMAC-SHA512 Update</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66618#M40136</link>
      <description>&lt;P&gt;Per page 73 It is ^field and an ending ^.&amp;nbsp; So each of your form. field should start with a ^ and then the data and the whole thing (string of all form fields) should end with a ^.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Feb 2019 17:48:08 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Coldfusion-SIM-HMAC-SHA512-Update/m-p/66618#M40136</guid>
      <dc:creator>kabutotx</dc:creator>
      <dc:date>2019-02-27T17:48:08Z</dc:date>
    </item>
  </channel>
</rss>

