# xsalsa20

> XSalsa20 implemented in Javascript and WebAssembly

Latest version **1.2.0** (published 2021-11-22) · MIT license · 0 weekly downloads

## Install

```sh
npm install xsalsa20
pnpm add xsalsa20
yarn add xsalsa20
bun add xsalsa20
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.0 |
| Published | 2021-11-22 |
| First published | 2017-06-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/xsalsa20) |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 46.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 33 |
| Author | Mathias Buus |
| Maintainers | mafintosh |

## Links

- npm: https://www.npmjs.com/package/xsalsa20
- Repository: https://github.com/mafintosh/xsalsa20
- Issues: https://github.com/mafintosh/xsalsa20/issues
- npm.io page: https://npm.io/package/xsalsa20

## Recent versions

- 1.2.0 (latest) — 2021-11-22
- 1.1.0 — 2019-11-13
- 1.0.2 — 2017-06-28
- 1.0.1 — 2017-06-28
- 1.0.0 — 2017-06-27

## README

# xsalsa20

XSalsa20 implemented in Javascript and WebAssembly.

```
npm install xsalsa20
```

[![build status](https://travis-ci.org/mafintosh/xsalsa20.svg?branch=master)](https://travis-ci.org/mafintosh/xsalsa20)


## Usage

``` js
var crypto = require('crypto')
var xsalsa20 = require('xsalsa20')
var key = crypto.randomBytes(32)
var nonce = crypto.randomBytes(24)

var xor = xsalsa20(nonce, key)

console.log(xor.update(Buffer.from('hello')))
console.log(xor.update(Buffer.from('world')))

xor.finalize()
```

## API

#### `var xor = xsalsa20(nonce, key)`

Create a new xor instance.

Nonce should be a 24 byte buffer/uint8array and key should be 32 bytes.

#### `var output = xor.update(input, [output])`

Update the xor instance with a new input buffer. Optionally you can pass in an output buffer.

#### `xor.finalize()`

Call this method last. Clears internal state.

## Contributing

The bulk of this module is implemented in WebAssembly in the [xsalsa20.wat](xsalsa20.wat) file. To build the thin Javascript wrapper do:

```
npm run compile
```

## License

MIT

---
_Source: https://npm.io/package/xsalsa20 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
