Azure RSA HSM signing - bad chars in base64












1














We are trying to use Azure HSM for digital signatures. Unfortunately, there are differences between what we have from PHP and from HSM.



I.e. the same content signed from PHP with openssl_sign methods returns



string(344) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9+B9kQO0t3mxObZ2+EndJ0MEDIuYEcj20BaIlXuM+IAFz25jeZy7VnoGsq+r/L3nxi4b+C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66/Lm0DHMs1r/7XcQhpYEKhZsMCwnk4KzPt3YdE/WpdO+yyVoaM19l+4vVu/GMOKLbQhTtNPEZ+2dw4YtIiUmJz/9o/ARdTaI8XMFWQxQCEgdnii+I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ+RjRoJoQLTxQ=="


Content signed by Azure HSM looks like this



string(342) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9-B9kQO0t3mxObZ2-EndJ0MEDIuYEcj20BaIlXuM-IAFz25jeZy7VnoGsq-r_L3nxi4b-C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66_Lm0DHMs1r_7XcQhpYEKhZsMCwnk4KzPt3YdE_WpdO-yyVoaM19l-4vVu_GMOKLbQhTtNPEZ-2dw4YtIiUmJz_9o_ARdTaI8XMFWQxQCEgdnii-I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ-RjRoJoQLTxQ"


There are just few differences:
instead of + char Azure HSM returns -
instead of / char Azure HSM returns _
and signature from Azure is not padded.



These characters are not allowed by base 64: https://en.wikipedia.org/wiki/Base64#Base64_table



Does anyone have an idea from where these differences may come from?










share|improve this question





























    1














    We are trying to use Azure HSM for digital signatures. Unfortunately, there are differences between what we have from PHP and from HSM.



    I.e. the same content signed from PHP with openssl_sign methods returns



    string(344) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9+B9kQO0t3mxObZ2+EndJ0MEDIuYEcj20BaIlXuM+IAFz25jeZy7VnoGsq+r/L3nxi4b+C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66/Lm0DHMs1r/7XcQhpYEKhZsMCwnk4KzPt3YdE/WpdO+yyVoaM19l+4vVu/GMOKLbQhTtNPEZ+2dw4YtIiUmJz/9o/ARdTaI8XMFWQxQCEgdnii+I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ+RjRoJoQLTxQ=="


    Content signed by Azure HSM looks like this



    string(342) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9-B9kQO0t3mxObZ2-EndJ0MEDIuYEcj20BaIlXuM-IAFz25jeZy7VnoGsq-r_L3nxi4b-C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66_Lm0DHMs1r_7XcQhpYEKhZsMCwnk4KzPt3YdE_WpdO-yyVoaM19l-4vVu_GMOKLbQhTtNPEZ-2dw4YtIiUmJz_9o_ARdTaI8XMFWQxQCEgdnii-I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ-RjRoJoQLTxQ"


    There are just few differences:
    instead of + char Azure HSM returns -
    instead of / char Azure HSM returns _
    and signature from Azure is not padded.



    These characters are not allowed by base 64: https://en.wikipedia.org/wiki/Base64#Base64_table



    Does anyone have an idea from where these differences may come from?










    share|improve this question



























      1












      1








      1







      We are trying to use Azure HSM for digital signatures. Unfortunately, there are differences between what we have from PHP and from HSM.



      I.e. the same content signed from PHP with openssl_sign methods returns



      string(344) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9+B9kQO0t3mxObZ2+EndJ0MEDIuYEcj20BaIlXuM+IAFz25jeZy7VnoGsq+r/L3nxi4b+C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66/Lm0DHMs1r/7XcQhpYEKhZsMCwnk4KzPt3YdE/WpdO+yyVoaM19l+4vVu/GMOKLbQhTtNPEZ+2dw4YtIiUmJz/9o/ARdTaI8XMFWQxQCEgdnii+I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ+RjRoJoQLTxQ=="


      Content signed by Azure HSM looks like this



      string(342) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9-B9kQO0t3mxObZ2-EndJ0MEDIuYEcj20BaIlXuM-IAFz25jeZy7VnoGsq-r_L3nxi4b-C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66_Lm0DHMs1r_7XcQhpYEKhZsMCwnk4KzPt3YdE_WpdO-yyVoaM19l-4vVu_GMOKLbQhTtNPEZ-2dw4YtIiUmJz_9o_ARdTaI8XMFWQxQCEgdnii-I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ-RjRoJoQLTxQ"


      There are just few differences:
      instead of + char Azure HSM returns -
      instead of / char Azure HSM returns _
      and signature from Azure is not padded.



      These characters are not allowed by base 64: https://en.wikipedia.org/wiki/Base64#Base64_table



      Does anyone have an idea from where these differences may come from?










      share|improve this question















      We are trying to use Azure HSM for digital signatures. Unfortunately, there are differences between what we have from PHP and from HSM.



      I.e. the same content signed from PHP with openssl_sign methods returns



      string(344) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9+B9kQO0t3mxObZ2+EndJ0MEDIuYEcj20BaIlXuM+IAFz25jeZy7VnoGsq+r/L3nxi4b+C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66/Lm0DHMs1r/7XcQhpYEKhZsMCwnk4KzPt3YdE/WpdO+yyVoaM19l+4vVu/GMOKLbQhTtNPEZ+2dw4YtIiUmJz/9o/ARdTaI8XMFWQxQCEgdnii+I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ+RjRoJoQLTxQ=="


      Content signed by Azure HSM looks like this



      string(342) "SgPUHc0bKz9d6KetdnNZxIguqDmrj9-B9kQO0t3mxObZ2-EndJ0MEDIuYEcj20BaIlXuM-IAFz25jeZy7VnoGsq-r_L3nxi4b-C6HE7Nw1EyQ3Hz5Tm53bdjr0w25LDOvRFxnxqrzzkxo2K66_Lm0DHMs1r_7XcQhpYEKhZsMCwnk4KzPt3YdE_WpdO-yyVoaM19l-4vVu_GMOKLbQhTtNPEZ-2dw4YtIiUmJz_9o_ARdTaI8XMFWQxQCEgdnii-I1TuuQVKa2BQPPAPNYjJJFU2H9UzxXj1dKxHinCnW8jNZ57gf41PEypqtf8ebFSunWyxdtWdIQ-RjRoJoQLTxQ"


      There are just few differences:
      instead of + char Azure HSM returns -
      instead of / char Azure HSM returns _
      and signature from Azure is not padded.



      These characters are not allowed by base 64: https://en.wikipedia.org/wiki/Base64#Base64_table



      Does anyone have an idea from where these differences may come from?







      php azure ssl rsa hsm






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 12 at 14:12









      Sayed Mohd Ali

      6141316




      6141316










      asked Nov 12 at 12:32









      Michal Piotrowski

      82




      82
























          1 Answer
          1






          active

          oldest

          votes


















          1















          Does anyone have an idea from where these differences may came from?




          Azure appears to use URL safe base64, as specific in RFC 4648. You can find it in the “Variants summary table” section of the Wikipedia article you linked.






          share|improve this answer





















          • Thank you very much. RFC 4648 was the right keywords here.
            – Michal Piotrowski
            Nov 12 at 12:48











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262295%2fazure-rsa-hsm-signing-bad-chars-in-base64%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1















          Does anyone have an idea from where these differences may came from?




          Azure appears to use URL safe base64, as specific in RFC 4648. You can find it in the “Variants summary table” section of the Wikipedia article you linked.






          share|improve this answer





















          • Thank you very much. RFC 4648 was the right keywords here.
            – Michal Piotrowski
            Nov 12 at 12:48
















          1















          Does anyone have an idea from where these differences may came from?




          Azure appears to use URL safe base64, as specific in RFC 4648. You can find it in the “Variants summary table” section of the Wikipedia article you linked.






          share|improve this answer





















          • Thank you very much. RFC 4648 was the right keywords here.
            – Michal Piotrowski
            Nov 12 at 12:48














          1












          1








          1







          Does anyone have an idea from where these differences may came from?




          Azure appears to use URL safe base64, as specific in RFC 4648. You can find it in the “Variants summary table” section of the Wikipedia article you linked.






          share|improve this answer













          Does anyone have an idea from where these differences may came from?




          Azure appears to use URL safe base64, as specific in RFC 4648. You can find it in the “Variants summary table” section of the Wikipedia article you linked.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 12 at 12:34









          TimWolla

          23.7k64777




          23.7k64777












          • Thank you very much. RFC 4648 was the right keywords here.
            – Michal Piotrowski
            Nov 12 at 12:48


















          • Thank you very much. RFC 4648 was the right keywords here.
            – Michal Piotrowski
            Nov 12 at 12:48
















          Thank you very much. RFC 4648 was the right keywords here.
          – Michal Piotrowski
          Nov 12 at 12:48




          Thank you very much. RFC 4648 was the right keywords here.
          – Michal Piotrowski
          Nov 12 at 12:48


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262295%2fazure-rsa-hsm-signing-bad-chars-in-base64%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python