Implement NIP-44: secure versioned replacement for NIP4 (#221)

This commit is contained in:
Paul Miller
2023-09-30 01:43:48 +02:00
committed by GitHub
parent c73268c4e2
commit eb0a9093f2
6 changed files with 424 additions and 51 deletions

View File

@@ -224,7 +224,7 @@ assert(data.relays.length === 2)
### Encrypting and decrypting direct messages
```js
import { nip04, getPublicKey, generatePrivateKey } from 'nostr-tools'
import {nip44, getPublicKey, generatePrivateKey} from 'nostr-tools'
// sender
let sk1 = generatePrivateKey()
@@ -236,7 +236,8 @@ let pk2 = getPublicKey(sk2)
// on the sender side
let message = 'hello'
let ciphertext = await nip04.encrypt(sk1, pk2, message)
let key = nip44.getSharedSecret(sk1, pk2)
let ciphertext = nip44.encrypt(key, message)
let event = {
kind: 4,
@@ -251,8 +252,9 @@ sendEvent(event)
// on the receiver side
sub.on('event', async event => {
let sender = event.pubkey
pk1 === sender
let plaintext = await nip04.decrypt(sk2, pk1, event.content)
// pk1 === sender
let _key = nip44.getSharedSecret(sk2, pk1)
let plaintext = nip44.decrypt(_key, event.content)
})
```