ara-identity
Version:
Create and resolve decentralized identity based Ara identifiers.
25 lines (20 loc) • 685 B
JavaScript
const { DID } = require('did-uri')
const crypto = require('ara-crypto')
const ss = require('ara-secret-storage')
const { resolve } = require('./resolve')
const fs = require('./fs')
async function sign(uri, message, opts) {
const ddo = await resolve(uri, opts)
const did = new DID(ddo.id)
const buffer = await fs.readFile(did.identifier, 'keystore/ara', {
cache: opts.cache,
network: opts.network,
})
const keystore = JSON.parse(buffer)
const password = crypto.blake2b(Buffer.from(opts.password))
const secretKey = ss.decrypt(keystore, { key: password.slice(0, 16) })
return crypto.ed25519.sign(Buffer.from(message), secretKey)
}
module.exports = {
sign
}