@@ -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
0 commit comments