Skip to content

Commit e81bb9f

Browse files
danbevMylesBorins
authored andcommitted
crypto: add getIntOption function to reduce dupl
This commit adds a getIntOption function to reduce the code duplicated for getting the padding, and saltLength options. PR-URL: #20247 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 391d2f8 commit e81bb9f

1 file changed

Lines changed: 23 additions & 32 deletions

File tree

‎lib/internal/crypto/sig.js‎

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,25 @@ Sign.prototype.update = function update(data, encoding) {
5353
returnthis;
5454
};
5555

56+
functiongetPadding(options){
57+
returngetIntOption('padding',RSA_PKCS1_PADDING,options);
58+
}
59+
60+
functiongetSaltLength(options){
61+
returngetIntOption('saltLength',RSA_PSS_SALTLEN_AUTO,options);
62+
}
63+
64+
functiongetIntOption(name,defaultValue,options){
65+
if(options.hasOwnProperty(name)){
66+
if(options[name]===options[name]>>0){
67+
returnoptions[name];
68+
}else{
69+
thrownewERR_INVALID_OPT_VALUE(name,options[name]);
70+
}
71+
}
72+
returndefaultValue;
73+
}
74+
5675
Sign.prototype.sign=functionsign(options,encoding){
5776
if(!options)
5877
thrownewERR_CRYPTO_SIGN_KEY_REQUIRED();
@@ -61,23 +80,9 @@ Sign.prototype.sign = function sign(options, encoding) {
6180
varpassphrase=options.passphrase||null;
6281

6382
// Options specific to RSA
64-
varrsaPadding=RSA_PKCS1_PADDING;
65-
if(options.hasOwnProperty('padding')){
66-
if(options.padding===options.padding>>0){
67-
rsaPadding=options.padding;
68-
}else{
69-
thrownewERR_INVALID_OPT_VALUE('padding',options.padding);
70-
}
71-
}
83+
varrsaPadding=getPadding(options);
7284

73-
varpssSaltLength=RSA_PSS_SALTLEN_AUTO;
74-
if(options.hasOwnProperty('saltLength')){
75-
if(options.saltLength===options.saltLength>>0){
76-
pssSaltLength=options.saltLength;
77-
}else{
78-
thrownewERR_INVALID_OPT_VALUE('saltLength',options.saltLength);
79-
}
80-
}
85+
varpssSaltLength=getSaltLength(options);
8186

8287
key=toBuf(key);
8388
if(!isArrayBufferView(key)){
@@ -119,23 +124,9 @@ Verify.prototype.verify = function verify(options, signature, sigEncoding) {
119124
sigEncoding=sigEncoding||getDefaultEncoding();
120125

121126
// Options specific to RSA
122-
varrsaPadding=RSA_PKCS1_PADDING;
123-
if(options.hasOwnProperty('padding')){
124-
if(options.padding===options.padding>>0){
125-
rsaPadding=options.padding;
126-
}else{
127-
thrownewERR_INVALID_OPT_VALUE('padding',options.padding);
128-
}
129-
}
127+
varrsaPadding=getPadding(options);
130128

131-
varpssSaltLength=RSA_PSS_SALTLEN_AUTO;
132-
if(options.hasOwnProperty('saltLength')){
133-
if(options.saltLength===options.saltLength>>0){
134-
pssSaltLength=options.saltLength;
135-
}else{
136-
thrownewERR_INVALID_OPT_VALUE('saltLength',options.saltLength);
137-
}
138-
}
129+
varpssSaltLength=getSaltLength(options);
139130

140131
key=toBuf(key);
141132
if(!isArrayBufferView(key)){

0 commit comments

Comments
 (0)