Skip to content

Commit 4f1aad4

Browse files
committed
TextEncoder使い回す, .jsつける
1 parent 1a73971 commit 4f1aad4

File tree

11 files changed

+48
-35
lines changed

11 files changed

+48
-35
lines changed

src/const.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const textEncoder = new TextEncoder();

src/digest/digest-rfc3230.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { collectHeaders, compareUint8Array, encodeArrayBufferToBase64, getHeaderValue } from '../utils';
2-
import { DigestSource, createBase64Digest } from './utils';
3-
import { DigestHashAlgorithm, IncomingRequest } from '../types';
1+
import { collectHeaders, compareUint8Array, encodeArrayBufferToBase64, getHeaderValue } from '../utils.js';
2+
import { DigestSource, createBase64Digest } from './utils.js';
3+
import { DigestHashAlgorithm, IncomingRequest } from '../types.js';
44
import { base64 } from 'rfc4648';
55

66
export async function genRFC3230DigestHeader(body: DigestSource, hashAlgorithm: DigestHashAlgorithm) {

src/digest/digest-rfc9530.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { collectHeaders, getHeaderValue } from '../utils';
2-
import { DigestSource, createBase64Digest } from './utils';
3-
import type { DigestHashAlgorithm, IncomingRequest } from '../types';
1+
import { collectHeaders, getHeaderValue } from '../utils.js';
2+
import { DigestSource, createBase64Digest } from './utils.js';
3+
import type { DigestHashAlgorithm, IncomingRequest } from '../types.js';
44
import * as sh from 'structured-headers';
55
import { base64 } from 'rfc4648';
66

src/digest/digest.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { IncomingRequest } from "../types";
2-
import { collectHeaders } from "../utils";
3-
import { verifyRFC3230DigestHeader } from "./digest-rfc3230";
4-
import { DigestSource } from "./utils";
1+
import { IncomingRequest } from "../types.js";
2+
import { collectHeaders } from "../utils.js";
3+
import { verifyRFC3230DigestHeader } from "./digest-rfc3230.js";
4+
import { DigestSource } from "./utils.js";
55

66
export async function verifyDigestHeader(
77
request: IncomingRequest,

src/digest/utils.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { DigestHashAlgorithm } from '../types';
2-
import { getWebcrypto } from '../utils';
1+
import { textEncoder } from '../const.js';
2+
import { DigestHashAlgorithm } from '../types.js';
3+
import { getWebcrypto } from '../utils.js';
34

45
export type DigestSource = BufferSource | string;
56

@@ -11,7 +12,7 @@ export async function createBase64Digest(
1112
hash = 'SHA-1';
1213
}
1314
if (typeof body === 'string') {
14-
body = (new TextEncoder()).encode(body);
15+
body = textEncoder.encode(body);
1516
}
1617
return await (await getWebcrypto()).subtle.digest(hash, body);
1718
}

src/draft/sign.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { IncomingRequest, PrivateKey, SignatureHashAlgorithmUpperSnake } fr
22
import { type SignInfoDefaults, defaultSignInfoDefaults, encodeArrayBufferToBase64, getWebcrypto, genAlgorithmForSignAndVerify, collectHeaders } from '../utils.js';
33
import { importPrivateKey } from '../pem/pkcs8.js';
44
import { keyHashAlgosForDraftEncofing } from './const.js';
5+
import { textEncoder } from '../const.js';
56

67
/**
78
* Get the algorithm string for draft encoding
@@ -86,7 +87,7 @@ export function genDraftSigningString(
8687
}
8788

8889
export async function genDraftSignature(privateKey: CryptoKey, signingString: string, defaults: SignInfoDefaults = defaultSignInfoDefaults) {
89-
const signatureAB = await (await getWebcrypto()).subtle.sign(genAlgorithmForSignAndVerify(privateKey.algorithm, defaults.hash), privateKey, new TextEncoder().encode(signingString));
90+
const signatureAB = await (await getWebcrypto()).subtle.sign(genAlgorithmForSignAndVerify(privateKey.algorithm, defaults.hash), privateKey, textEncoder.encode(signingString));
9091
return encodeArrayBufferToBase64(signatureAB);
9192
}
9293

src/draft/verify.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import { ParsedDraftSignature } from "../types";
2-
import { parseAndImportPublicKey } from "../pem/spki";
3-
import { parseSignInfo } from "../shared/verify";
4-
import { getWebcrypto } from "../utils";
1+
import { ParsedDraftSignature } from "../types.js";
2+
import { parseAndImportPublicKey } from "../pem/spki.js";
3+
import { parseSignInfo } from "../shared/verify.js";
4+
import { getWebcrypto } from "../utils.js";
55
import { base64 } from "rfc4648";
6+
import { textEncoder } from "../const.js";
67

78
/**
89
* @deprecated Use `parseSignInfo`
@@ -22,7 +23,7 @@ export async function verifyDraftSignature(
2223
): Promise<boolean> {
2324
try {
2425
const { publicKey, algorithm } = await parseAndImportPublicKey(key, ['verify'], parsed.algorithm);
25-
const verify = await (await getWebcrypto()).subtle.verify(algorithm, publicKey, base64.parse(parsed.params.signature), (new TextEncoder()).encode(parsed.signingString));
26+
const verify = await (await getWebcrypto()).subtle.verify(algorithm, publicKey, base64.parse(parsed.params.signature), textEncoder.encode(parsed.signingString));
2627
if (verify !== true) throw new Error(`verification simply failed, result: ${verify}`);
2728
return verify;
2829
} catch (e) {

src/keypair.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
* SPDX-License-Identifier: MIT
44
*/
55

6-
import { encodeArrayBufferToBase64, getWebcrypto, splitPer64Chars } from './utils';
7-
import type { ECNamedCurve } from './types';
6+
import { encodeArrayBufferToBase64, getWebcrypto, splitPer64Chars } from './utils.js';
7+
import type { ECNamedCurve } from './types.js';
88

99
export async function exportPublicKeyPem(key: CryptoKey) {
1010
const ab = await (await getWebcrypto()).subtle.exportKey('spki', key);

src/pem/pkcs1.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import ASN1 from '@lapo/asn1js';
2-
import { asn1ToArrayBuffer, decodePem } from './spki';
3-
import { genASN1Length } from 'src/utils';
2+
import { asn1ToArrayBuffer, decodePem } from './spki.js';
3+
import { genASN1Length } from '../utils.js';
44

55
export class Pkcs1ParseError extends Error {
66
constructor(message: string) { super(message); }

src/pem/spki.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import ASN1 from '@lapo/asn1js';
22
import Hex from '@lapo/asn1js/hex.js';
33
import Base64 from '@lapo/asn1js/base64.js';
4-
import { genSpkiFromPkcs1, parsePkcs1 } from './pkcs1';
5-
import { ECNamedCurve, KeyAlgorithmName } from '../types';
6-
import { SignInfoDefaults, defaultSignInfoDefaults, genAlgorithmForSignAndVerify, genSignInfo, getWebcrypto } from '../utils';
7-
import { parseSignInfo } from '../shared/verify';
4+
import { genSpkiFromPkcs1, parsePkcs1 } from './pkcs1.js';
5+
import { ECNamedCurve, KeyAlgorithmName } from '../types.js';
6+
import { SignInfoDefaults, defaultSignInfoDefaults, genAlgorithmForSignAndVerify, genSignInfo, getWebcrypto } from '../utils.js';
7+
import { parseSignInfo } from '../shared/verify.js';
88

99
export class SpkiParseError extends Error {
1010
constructor(message: string) { super(message); }

0 commit comments

Comments
 (0)