Compare commits

...

5 Commits

5 changed files with 13 additions and 9 deletions

View File

@@ -15,7 +15,7 @@ pool.addRelay('ws://some.relay.com', {read: true, write: true})
pool.addRelay('ws://other.relay.cool', {read: true, write: true})
// example callback function for a subscription
function onEvent(event, relay) => {
function onEvent(event, relay) {
console.log(`got an event from ${relay.url} which is already validated.`, event)
}

View File

@@ -52,5 +52,7 @@ export function verifySignature(event) {
}
export async function signEvent(event, key) {
return secp256k1.schnorr.sign(getEventHash(event), key)
return Buffer.from(secp256k1.schnorr.sign(getEventHash(event), key)).toString(
'hex'
)
}

View File

@@ -5,5 +5,5 @@ export function generatePrivateKey() {
}
export function getPublicKey(privateKey) {
return secp256k1.schnorr.getPublicKey(privateKey)
return Buffer.from(secp256k1.schnorr.getPublicKey(privateKey)).toString('hex')
}

View File

@@ -5,7 +5,7 @@ import * as secp256k1 from '@noble/secp256k1'
export function encrypt(privkey, pubkey, text) {
const key = secp256k1.getSharedSecret(privkey, '02' + pubkey)
const normalizedKey = getOnlyXFromFullSharedSecret(key)
const normalizedKey = getNormalizedX(key)
let iv = Uint8Array.from(randomBytes(16))
var cipher = aes.createCipheriv(
@@ -22,7 +22,7 @@ export function encrypt(privkey, pubkey, text) {
export function decrypt(privkey, pubkey, ciphertext) {
let [cip, iv] = ciphertext.split('?iv=')
let key = secp256k1.getSharedSecret(privkey, '02' + pubkey)
let normalizedKey = getOnlyXFromFullSharedSecret(key)
let normalizedKey = getNormalizedX(key)
var decipher = aes.createDecipheriv(
'aes-256-cbc',
@@ -35,6 +35,8 @@ export function decrypt(privkey, pubkey, ciphertext) {
return decryptedMessage
}
function getOnlyXFromFullSharedSecret(fullSharedSecretCoordinates) {
return Buffer.from(fullSharedSecretCoordinates).toString('hex').substr(2, 64)
function getNormalizedX(key) {
return typeof key === 'string'
? key.substr(2, 64)
: Buffer.from(key.slice(1, 33)).toString('hex')
}

View File

@@ -1,6 +1,6 @@
{
"name": "nostr-tools",
"version": "0.21.1",
"version": "0.22.0",
"description": "Tools for making a Nostr client.",
"repository": {
"type": "git",
@@ -8,7 +8,7 @@
},
"dependencies": {
"@noble/hashes": "^0.5.7",
"@noble/secp256k1": "^1.3.0",
"@noble/secp256k1": "^1.5.2",
"browserify-cipher": ">=1",
"buffer": ">=5",
"create-hash": "^1.2.0",