Node HmacSHA1 Seed2019 Community Moderator ElectionSOAP, WCF, and message signaturesUsing xml-crypto with PSHA1How to append to a file in Node?Remove all child elements of a DOM node in JavaScriptHmacSHA1 generates different signatures on different systems using same secretNode.js verify function does not verify signature when openssl command line doesHow to uninstall npm modules in node js?node how to create a directory if doesn't exist?Golang signing with ecdsa and Private Key from a SHA224 digestRSA Signature having public key as text not verified in javaNode 6 upgrade caused SignatureDoesNotMatch errors from aws-sdk because of crypto.DEFAULT_ENCODING='binary'How to convert this signature method from crypto (node) to crypto-js (browser)?

Symbolism of 18 Journeyers

Does the Shadow Magic sorcerer's Eyes of the Dark feature work on all Darkness spells or just his/her own?

Are hand made posters acceptable in Academia?

DisplayForm problem with pi in FractionBox

Why is participating in the European Parliamentary elections used as a threat?

What is the reasoning behind standardization (dividing by standard deviation)?

Was World War I a war of liberals against authoritarians?

Why is this tree refusing to shed its dead leaves?

What are the consequences of changing the number of hours in a day?

Why didn’t Eve recognize the little cockroach as a living organism?

Why does Surtur say that Thor is Asgard's doom?

Do native speakers use "ultima" and "proxima" frequently in spoken English?

Exit shell with shortcut (not typing exit) that closes session properly

Fair way to split coins

What is it called when someone votes for an option that's not their first choice?

PTIJ: Which Dr. Seuss books should one obtain?

Output visual diagram of picture

Is there any common country to visit for uk and schengen visa?

Have the tides ever turned twice on any open problem?

Why is "la Gestapo" feminine?

When did hardware antialiasing start being available?

Asserting that Atheism and Theism are both faith based positions

What (if any) is the reason to buy in small local stores?

Air travel with refrigerated insulin



Node HmacSHA1 Seed



2019 Community Moderator ElectionSOAP, WCF, and message signaturesUsing xml-crypto with PSHA1How to append to a file in Node?Remove all child elements of a DOM node in JavaScriptHmacSHA1 generates different signatures on different systems using same secretNode.js verify function does not verify signature when openssl command line doesHow to uninstall npm modules in node js?node how to create a directory if doesn't exist?Golang signing with ecdsa and Private Key from a SHA224 digestRSA Signature having public key as text not verified in javaNode 6 upgrade caused SignatureDoesNotMatch errors from aws-sdk because of crypto.DEFAULT_ENCODING='binary'How to convert this signature method from crypto (node) to crypto-js (browser)?










0















I'm trying to send a SOAP request via Node, talking to a service which is secured with WSS.



I need to sign the XML response with a SignedInfo element which requires me combining a Nonce Binary secret I generated, with a Nonce binary secret returned from the initial token request - PSHA1 format.



I've been able to validate this using Java, by utilising the following class (Where the secret is my client nonce and the seed is the server nonce):



https://github.com/apache/wss4j/blob/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/derivedKey/P_SHA1.java#L57



With the following Java code:



Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec key = new SecretKeySpec(getSharedKey(), "HmacSHA1");
mac.init(key);

String bytesToSign = "<XML_TO_SIGN_GOES_HERE>";

String signature = Base64.encodeBytes(mac.doFinal(bytesToSign.getBytes()));


I need to do this in a Node project though, I've looked at the Crypto API and numerous plugins but I'm unable to generate the same signature.



How do I specify a seed for a HmacSHA1 using node?










share|improve this question






















  • Could you provide a simple XML example, with the expected result?

    – Pierre
    Mar 7 at 4:07















0















I'm trying to send a SOAP request via Node, talking to a service which is secured with WSS.



I need to sign the XML response with a SignedInfo element which requires me combining a Nonce Binary secret I generated, with a Nonce binary secret returned from the initial token request - PSHA1 format.



I've been able to validate this using Java, by utilising the following class (Where the secret is my client nonce and the seed is the server nonce):



https://github.com/apache/wss4j/blob/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/derivedKey/P_SHA1.java#L57



With the following Java code:



Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec key = new SecretKeySpec(getSharedKey(), "HmacSHA1");
mac.init(key);

String bytesToSign = "<XML_TO_SIGN_GOES_HERE>";

String signature = Base64.encodeBytes(mac.doFinal(bytesToSign.getBytes()));


I need to do this in a Node project though, I've looked at the Crypto API and numerous plugins but I'm unable to generate the same signature.



How do I specify a seed for a HmacSHA1 using node?










share|improve this question






















  • Could you provide a simple XML example, with the expected result?

    – Pierre
    Mar 7 at 4:07













0












0








0








I'm trying to send a SOAP request via Node, talking to a service which is secured with WSS.



I need to sign the XML response with a SignedInfo element which requires me combining a Nonce Binary secret I generated, with a Nonce binary secret returned from the initial token request - PSHA1 format.



I've been able to validate this using Java, by utilising the following class (Where the secret is my client nonce and the seed is the server nonce):



https://github.com/apache/wss4j/blob/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/derivedKey/P_SHA1.java#L57



With the following Java code:



Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec key = new SecretKeySpec(getSharedKey(), "HmacSHA1");
mac.init(key);

String bytesToSign = "<XML_TO_SIGN_GOES_HERE>";

String signature = Base64.encodeBytes(mac.doFinal(bytesToSign.getBytes()));


I need to do this in a Node project though, I've looked at the Crypto API and numerous plugins but I'm unable to generate the same signature.



How do I specify a seed for a HmacSHA1 using node?










share|improve this question














I'm trying to send a SOAP request via Node, talking to a service which is secured with WSS.



I need to sign the XML response with a SignedInfo element which requires me combining a Nonce Binary secret I generated, with a Nonce binary secret returned from the initial token request - PSHA1 format.



I've been able to validate this using Java, by utilising the following class (Where the secret is my client nonce and the seed is the server nonce):



https://github.com/apache/wss4j/blob/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/derivedKey/P_SHA1.java#L57



With the following Java code:



Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec key = new SecretKeySpec(getSharedKey(), "HmacSHA1");
mac.init(key);

String bytesToSign = "<XML_TO_SIGN_GOES_HERE>";

String signature = Base64.encodeBytes(mac.doFinal(bytesToSign.getBytes()));


I need to do this in a Node project though, I've looked at the Crypto API and numerous plugins but I'm unable to generate the same signature.



How do I specify a seed for a HmacSHA1 using node?







javascript node.js cryptography hmacsha1






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 6 at 23:11









Anton RandAnton Rand

157118




157118












  • Could you provide a simple XML example, with the expected result?

    – Pierre
    Mar 7 at 4:07

















  • Could you provide a simple XML example, with the expected result?

    – Pierre
    Mar 7 at 4:07
















Could you provide a simple XML example, with the expected result?

– Pierre
Mar 7 at 4:07





Could you provide a simple XML example, with the expected result?

– Pierre
Mar 7 at 4:07












1 Answer
1






active

oldest

votes


















0














I managed to get there in the end, there's an NPM module called psha1 (https://www.npmjs.com/package/psha1).



Using that library I created the following a generateSignature module which looks as follows:



const crypto = require('crypto');
const psha1 = require('psha1');

export const generateSignatureValue = (
clientSecret,
serverSecret,
messageToSign,
) =>

const secretKey =
psha1(clientSecret, serverSecret, 256);

const hash =
crypto
.createHmac('sha1', Buffer.from(secretKey, 'base64'))
.update(messageToSign)
.digest('binary');

return Buffer
.from(hash, 'binary')
.toString('base64');
;

export default generateSignatureValue;


This gives me the desired output :)






share|improve this answer






















    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%2f55033643%2fnode-hmacsha1-seed%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









    0














    I managed to get there in the end, there's an NPM module called psha1 (https://www.npmjs.com/package/psha1).



    Using that library I created the following a generateSignature module which looks as follows:



    const crypto = require('crypto');
    const psha1 = require('psha1');

    export const generateSignatureValue = (
    clientSecret,
    serverSecret,
    messageToSign,
    ) =>

    const secretKey =
    psha1(clientSecret, serverSecret, 256);

    const hash =
    crypto
    .createHmac('sha1', Buffer.from(secretKey, 'base64'))
    .update(messageToSign)
    .digest('binary');

    return Buffer
    .from(hash, 'binary')
    .toString('base64');
    ;

    export default generateSignatureValue;


    This gives me the desired output :)






    share|improve this answer



























      0














      I managed to get there in the end, there's an NPM module called psha1 (https://www.npmjs.com/package/psha1).



      Using that library I created the following a generateSignature module which looks as follows:



      const crypto = require('crypto');
      const psha1 = require('psha1');

      export const generateSignatureValue = (
      clientSecret,
      serverSecret,
      messageToSign,
      ) =>

      const secretKey =
      psha1(clientSecret, serverSecret, 256);

      const hash =
      crypto
      .createHmac('sha1', Buffer.from(secretKey, 'base64'))
      .update(messageToSign)
      .digest('binary');

      return Buffer
      .from(hash, 'binary')
      .toString('base64');
      ;

      export default generateSignatureValue;


      This gives me the desired output :)






      share|improve this answer

























        0












        0








        0







        I managed to get there in the end, there's an NPM module called psha1 (https://www.npmjs.com/package/psha1).



        Using that library I created the following a generateSignature module which looks as follows:



        const crypto = require('crypto');
        const psha1 = require('psha1');

        export const generateSignatureValue = (
        clientSecret,
        serverSecret,
        messageToSign,
        ) =>

        const secretKey =
        psha1(clientSecret, serverSecret, 256);

        const hash =
        crypto
        .createHmac('sha1', Buffer.from(secretKey, 'base64'))
        .update(messageToSign)
        .digest('binary');

        return Buffer
        .from(hash, 'binary')
        .toString('base64');
        ;

        export default generateSignatureValue;


        This gives me the desired output :)






        share|improve this answer













        I managed to get there in the end, there's an NPM module called psha1 (https://www.npmjs.com/package/psha1).



        Using that library I created the following a generateSignature module which looks as follows:



        const crypto = require('crypto');
        const psha1 = require('psha1');

        export const generateSignatureValue = (
        clientSecret,
        serverSecret,
        messageToSign,
        ) =>

        const secretKey =
        psha1(clientSecret, serverSecret, 256);

        const hash =
        crypto
        .createHmac('sha1', Buffer.from(secretKey, 'base64'))
        .update(messageToSign)
        .digest('binary');

        return Buffer
        .from(hash, 'binary')
        .toString('base64');
        ;

        export default generateSignatureValue;


        This gives me the desired output :)







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 7 at 22:21









        Anton RandAnton Rand

        157118




        157118





























            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55033643%2fnode-hmacsha1-seed%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

            Save data to MySQL database using ExtJS and PHP [closed]2019 Community Moderator ElectionHow can I prevent SQL injection in PHP?Which MySQL data type to use for storing boolean valuesPHP: Delete an element from an arrayHow do I connect to a MySQL Database in Python?Should I use the datetime or timestamp data type in MySQL?How to get a list of MySQL user accountsHow Do You Parse and Process HTML/XML in PHP?Reference — What does this symbol mean in PHP?How does PHP 'foreach' actually work?Why shouldn't I use mysql_* functions in PHP?

            Compiling GNU Global with universal-ctags support Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Tags for Emacs: Relationship between etags, ebrowse, cscope, GNU Global and exuberant ctagsVim and Ctags tips and trickscscope or ctags why choose one over the other?scons and ctagsctags cannot open option file “.ctags”Adding tag scopes in universal-ctagsShould I use Universal-ctags?Universal ctags on WindowsHow do I install GNU Global with universal ctags support using Homebrew?Universal ctags with emacsHow to highlight ctags generated by Universal Ctags in Vim?

            Add ONERROR event to image from jsp tldHow to add an image to a JPanel?Saving image from PHP URLHTML img scalingCheck if an image is loaded (no errors) with jQueryHow to force an <img> to take up width, even if the image is not loadedHow do I populate hidden form field with a value set in Spring ControllerStyling Raw elements Generated from JSP tagds with Jquery MobileLimit resizing of images with explicitly set width and height attributeserror TLD use in a jsp fileJsp tld files cannot be resolved