How to encrypt between two parties

Universal Wallet uses eth-crypto to encrypt content between two parties, eg Alice and Bob.

Example

// Obtain a previously created account
let acct = await wallet.getAccount()

// add Alice and Bob wallets with auto generated mnemonic
const walletAId = await wallet.addWallet()
const walletBId = await wallet.addWallet()

// create DIDs
const did = await wallet.createEd25519({
  walletId: walletAId
})
const didBob = await wallet.createEd25519({
  walletId: walletBId
})

// create Alice IPLD Manager
const ipfsManager = new IPLDManager(did.did)
await ipfsManager.start()

// Authenticate with DID
await did.did.authenticate()
await didBob.did.authenticate()

// Alice encrypts, and both Alice and Bob can decrypt
const enc = await ipfsManager.encryptObject('Hola Mundo !!!', [
  didBob.did.id,
])

// Bob DID decrypts content
const res = await ipfsManager.decryptObject(didBob.did, enc.toString(), {})
expect(res.cleartext).toEqual('Hola Mundo !!!')

Last updated