Skip to content

Commit cf321b1

Browse files
committed
add algo in signatureScheme
1 parent 49fb347 commit cf321b1

File tree

3 files changed

+55
-17
lines changed

3 files changed

+55
-17
lines changed

deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tls/enum",
3-
"version": "0.8.2",
3+
"version": "0.8.3",
44
"exports": "./src/mod.ts",
55
"publish": {
66
"exclude": ["dist/"]

src/signaturescheme.js

Lines changed: 49 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class SignatureScheme extends Enum {
6666
* @returns {number} The bit length, which is always 16.
6767
*/
6868
get bit() { return 16; }
69-
get length() { return 2;}
69+
get length() { return 2; }
7070

7171
/**
7272
* Converts the SignatureScheme to a Uint16 representation.
@@ -79,34 +79,48 @@ export class SignatureScheme extends Enum {
7979
get algo() {
8080
switch (this) {
8181
case SignatureScheme.ECDSA_SECP256R1_SHA256: return {
82-
name: "ECDSA",
83-
hash: "SHA-256"
82+
import: EcKeyImportParams(256),
83+
sign: EcdsaParams(256),
84+
verify: EcdsaParams(256)
8485
}
8586
case SignatureScheme.ECDSA_SECP384R1_SHA384: return {
86-
name: "ECDSA",
87-
hash: "SHA-384"
87+
import: EcKeyImportParams(384),
88+
sign: EcdsaParams(384),
89+
verify: EcdsaParams(384)
8890
}
8991
case SignatureScheme.ECDSA_SECP521R1_SHA512: return {
90-
name: "ECDSA",
91-
hash: "SHA-512"
92+
import: EcKeyImportParams(521),
93+
sign: EcdsaParams(512),
94+
verify: EcdsaParams(512)
95+
}
96+
case SignatureScheme.ED25519: return {
97+
import: { name: 'Ed25519' },
98+
sign: { name: 'Ed25519' },
99+
verify: { name: 'Ed25519' }
100+
}
101+
case SignatureScheme.ED448: return {
102+
import: { name: 'Ed448' },
103+
sign: { name: 'Ed448' },
104+
verify: { name: 'Ed448' }
92105
}
93-
case SignatureScheme.ED25519: return { name: 'Ed25519' }
94-
case SignatureScheme.ED448: return { name: 'Ed448' }
95106
case SignatureScheme.RSA_PSS_RSAE_SHA384:
96107
case SignatureScheme.RSA_PSS_PSS_SHA384: return {
97-
name: "RSA-PSS",// RSAprivateKey.algorithm.name,
98-
saltLength: 48 // 384 / 8
108+
import: RsaHashedImportParams(384),
109+
sign: RsaPssParams(384),
110+
verify: RsaPssParams(384),
99111
}
100112
case SignatureScheme.RSA_PSS_RSAE_SHA512:
101113
case SignatureScheme.RSA_PSS_PSS_SHA512: return {
102-
name: "RSA-PSS",// RSAprivateKey.algorithm.name,
103-
saltLength: 64 // 512 / 8
114+
import: RsaHashedImportParams(512),
115+
sign: RsaPssParams(512),
116+
verify: RsaPssParams(512),
104117
}
105118
case SignatureScheme.RSA_PSS_RSAE_SHA256:
106119
case SignatureScheme.RSA_PSS_PSS_SHA256:
107120
default: return {
108-
name: "RSA-PSS",// RSAprivateKey.algorithm.name,
109-
saltLength: 32 // 256 / 8
121+
import: RsaHashedImportParams(256),
122+
sign: RsaPssParams(256),
123+
verify: RsaPssParams(256),
110124
}
111125
}
112126
return {
@@ -117,5 +131,25 @@ export class SignatureScheme extends Enum {
117131

118132
}
119133

134+
const EcdsaParams = (num) => ({
135+
name: "ECDSA",
136+
hash: `SHA-${num}`
137+
})
138+
139+
const RsaPssParams = (num) => ({
140+
name: "RSA-PSS",
141+
saltLength: num / 8
142+
})
143+
144+
const EcKeyImportParams = (num) => ({
145+
name: "ECDSA",
146+
namedCurve: `P-${num}`
147+
})
148+
149+
const RsaHashedImportParams = (num) => ({
150+
name: "RSA-PSS",
151+
hash: `SHA-${num}`
152+
})
153+
120154

121155
// npx -p typescript tsc ./src/signaturescheme.js --declaration --allowJs --emitDeclarationOnly --lib ESNext --outDir ./dist

type/signaturescheme.d.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,11 @@ export declare class SignatureScheme extends Enum {
5858
* Retrieves the algorithm details for the SignatureScheme.
5959
* @returns An object describing the algorithm and hash details.
6060
*/
61-
get algo(): { name: string; hash?: string; saltLength?: number };
61+
get algo(): {
62+
import: object,
63+
sign: object,
64+
verify: object,
65+
};
6266

6367
}
6468

0 commit comments

Comments
 (0)