Nebulous Pumpkin Moons

    jquery-ecdsa

    1.0.0 • Public • Published

    jquery-ecdsa

    ecdsa jquery plugin for the browser using the webcrypto api

    Demo: https://angeal185.github.io/jquery-ecdsa

    Installation

    npm

    $ npm install jquery-ecdsa --save

    bower

    $ bower install jquery-ecdsa

    git

    $ git clone git@github.com:angeal185/jquery-ecdsa.git

    browser

    <script src="./dist/jq-ecdsa.min.js"></script>

    API

     
    /**
     *  generate ecdsa keypair
     *  @param {string} curve ~ '256'/'384'/'521'
     *  @param {function} cb ~ callback function(err,res)
     **/
     
    $.ecGen(curve, cb)
     
     
    /**
     *  create signature
     *  @param {string} key ~ valid jwk
     *  @param {string} data ~ data to be signed
     *  @param {string} hash ~ '128'/'256'/'512'
     *  @param {string} digest ~ 'hex'/'base64'/'Uint8'
     *  @param {function} cb ~ callback function(err,res)
     **/
     
    $.ecSign(key, data, hash, digest, cb)
     
     
    /**
     *  verify signature
     *  @param {string} key ~ valid jwk
     *  @param {string} sig ~ valid signature
     *  @param {string} data ~ data to verify
     *  @param {string} hash ~ '128'/'256'/'512'
     *  @param {string} digest ~ 'hex'/'base64'/'Uint8'
     *  @param {function} cb ~ callback function(err,res)
     **/
     
    $.ecVerify(key, sig, data, hash, digest, cb)
     
    /**
     *  create signature
     *  @param {string} ele ~ location of data to sign
     *  @param {string} key ~ valid jwk
     *  @param {string} hash ~ '128'/'256'/'512'
     *  @param {string} digest ~ 'hex'/'base64'/'Uint8'
     *  @param {function} cb ~ callback function(err,res)
     **/
     
    $(ele).ecSign(key, hash, digest, cb)
     
     
    /**
     *  verify signature
     *  @param {string} ele ~ location of data to verify
     *  @param {string} key ~ valid jwk
     *  @param {string} sig ~ valid signature
     *  @param {string} hash ~ '128'/'256'/'512'
     *  @param {string} digest ~ 'hex'/'base64'/'Uint8'
     *  @param {function} cb ~ callback function(err,res)
     **/
     
    $(ele).ecVerify(key, sig, hash, digest, cb)
     
     
     
    //demo
     
    const config = {
      curve: '521', // P-521
      hash: '512', // SHA-512
      degest: 'hex', // hexadecimal
      data: 'test'
    }
     
    //generate p-521 ecdsa keypair
    $.ecGen(config.curve, function(err, gen){
      if(err){return console.log(err)}
      console.log(gen)
     
      //sign some data
      $.ecSign(gen.private, config.data, config.hash, config.digest, function(err, sig){
        if(err){return console.log(err)}
        console.log(res)
     
        //verify signature
        $.ecVerify(gen.public, sig, config.data, config.hash, config.digest, function(err, res){
          if(err){return console.log(err)}
          if(res){
            return console.log('ecdsa test pass')
          }
          return console.log('ecdsa test fail')
        })
      })
     
     
      //sign some data
      $('#data-to-sign').ecSign(gen.private, config.hash, config.digest, function(err, sig){
        if(err){return console.log(err)}
        console.log(res)
     
        //verify signature
        $('.data-to-verify').ecVerify(gen.public, sig, config.hash, config.digest, function(err, res){
          if(err){return console.log(err)}
          if(res){
            return console.log('ecdsa test pass')
          }
          return console.log('ecdsa test fail')
        })
      })
     
     
    })
     
     
     
     

    Install

    npm i jquery-ecdsa

    DownloadsWeekly Downloads

    7

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    23.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • angeal185