Skip to content

bicycle-codes/message

Repository files navigation

message

tests Socket Badge types module install size license

Create and verify signed messages with the webcrypto API.

Contents

install

npm i -S @bicycle-codes/message

example

create a message

import { create } from '@bicycle-codes/message'

// const { crypto } = program.components
await create(crypto, { type: 'test', value: 'wooo' })

The returned object has a format like

{
    author: 'did:key:...',
    signature: '123abc',
    ...message
}

Note

the message will have the fields author and signature appended to it. author is the DID that was used to sign this message. It is read by verify(message).

import { test } from '@nichoth/tapzero'
import { create } from '@bicycle-codes/message'

let req
test('create message', async t => {
    // program is from
    // const program = await odd.program({
    //   ...config
    // })
    const { crypto } = program.components

    req = await create(crypto, { type: 'test', value: 'wooo' })
    t.ok(req, 'message was created')
    t.equal(typeof req.signature, 'string', 'should have a signature')
    t.ok(req.author.includes, 'did:key:', 'should have an author field')
    t.equal(req.type, 'test', 'should have the properties we passed in')
})

verify a message

import { test } from '@nichoth/tapzero'
import { verify } from '@bicycle-codes/message'

test('verify a message', async t => {
    // `req` is the message we created above
    const isOk = await verify(req)
    t.equal(isOk, true, 'should return true for a valid message')
})

About

Create and verify signed messages

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •