PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/webcrypto-core
Просмотр файла: README.md
[](https://raw.githubusercontent.com/PeculiarVentures/webcrypto-core/master/LICENSE)
[](https://github.com/PeculiarVentures/webcrypto-core/actions/workflows/test.yml)
[](https://coveralls.io/github/PeculiarVentures/webcrypto-core?branch=master)
[](https://badge.fury.io/js/webcrypto-core)
[](https://nodei.co/npm/webcrypto-core/)
# webcrypto-core
We have created a number of WebCrypto polyfills including: [node-webcrypto-ossl](https://github.com/PeculiarVentures/node-webcrypto-ossl), [node-webcrypto-p11](https://github.com/PeculiarVentures/node-webcrypto-p11), and [webcrypto-liner](https://github.com/PeculiarVentures/webcrypto-liner). `webcrypto-core` was designed to be a common layer to be used by all of these libraries for input validation.
Unless you intend to create a WebCrypto polyfill this library is probably not useful to you.
## Installing
```
npm install webcrypto-core
```
## Example
Current examples shows how you can implement your own WebCrypt interface
```js
const core = require(".");
const crypto = require("crypto");
class Sha1Provider extends core.ProviderCrypto {
constructor() {
super();
this.name = "SHA-1";
this.usages = [];
}
async onDigest(algorithm, data) {
const hash = crypto.createHash("SHA1").update(Buffer.from(data)).digest();
return new Uint8Array(hash).buffer;
}
}
class SubtleCrypto extends core.SubtleCrypto {
constructor() {
super();
// Add SHA1 provider to SubtleCrypto
this.providers.set(new Sha1Provider());
}
}
class Crypto extends core.Crypto {
constructor() {
this.subtle = new SubtleCrypto();
}
getRandomValues(array) {
const buffer = Buffer.from(array.buffer);
crypto.randomFillSync(buffer);
return array;
}
}
const webcrypto = new Crypto();
webcrypto.subtle.digest("SHA-1", Buffer.from("TEST MESSAGE"))
.then((hash) => {
console.log(Buffer.from(hash).toString("hex")); // dbca505deb07e1612d944a69c0c851f79f3a4a60
})
.catch((err) => {
console.error(err);
});
```Выполнить команду
Для локальной разработки. Не используйте в интернете!