Skip to content

Commit

Permalink
feat: add worktop/crypto module (#11)
Browse files Browse the repository at this point in the history
* chore: setup `worktop/crypto` submodule

* feat(crypto): add `digest` export

* feat(crrypto): add named `SHA*` exports
  • Loading branch information
lukeed committed Mar 23, 2021
1 parent 2ef01d0 commit d8ee779
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ node_modules

/kv
/cache
/crypto
/base64
/request
/response
Expand Down
1 change: 1 addition & 0 deletions bin/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Promise.all([
bundle('src/base64.ts', pkg.exports['./base64']),
bundle('src/request.ts', pkg.exports['./request']),
bundle('src/response.ts', pkg.exports['./response']),
bundle('src/crypto.ts', pkg.exports['./crypto']),
bundle('src/utils.ts', pkg.exports['./utils']),
bundle('src/kv.ts', pkg.exports['./kv']),
]).then(table);
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
".": "./router/index.mjs",
"./kv": "./kv/index.mjs",
"./cache": "./cache/index.mjs",
"./base64": "./base64/index.mjs",
"./crypto": "./crypto/index.mjs",
"./request": "./request/index.mjs",
"./response": "./response/index.mjs",
"./base64": "./base64/index.mjs",
"./utils": "./utils/index.mjs",
"./package.json": "./package.json"
},
"files": [
"cache",
"crypto",
"base64",
"request",
"response",
Expand Down
6 changes: 6 additions & 0 deletions src/crypto.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export function digest(algo: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512', message: string): Promise<string>;

export function SHA1(message: string): Promise<string>;
export function SHA256(message: string): Promise<string>;
export function SHA384(message: string): Promise<string>;
export function SHA512(message: string): Promise<string>;
10 changes: 10 additions & 0 deletions src/crypto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { encode, toHEX } from 'worktop/utils';

export function digest(algo: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512', message: string): Promise<string> {
return crypto.subtle.digest(algo, encode(message)).then(toHEX);
}

export const SHA1 = /*#__PURE__*/ digest.bind(0, 'SHA-1');
export const SHA256 = /*#__PURE__*/ digest.bind(0, 'SHA-256');
export const SHA384 = /*#__PURE__*/ digest.bind(0, 'SHA-384');
export const SHA512 = /*#__PURE__*/ digest.bind(0, 'SHA-512');

0 comments on commit d8ee779

Please sign in to comment.