File tree 3 files changed +25
-2
lines changed
3 files changed +25
-2
lines changed Original file line number Diff line number Diff line change @@ -99,10 +99,17 @@ Fingerprint.parse = function (fp, options) {
99
99
alg = 'md5' ;
100
100
if ( parts [ 0 ] . toLowerCase ( ) === 'md5' )
101
101
parts = parts . slice ( 1 ) ;
102
+ parts = parts . map ( function ( p ) {
103
+ while ( p . length < 2 )
104
+ p = '0' + p ;
105
+ if ( p . length > 2 )
106
+ throw ( new FingerprintFormatError ( fp ) ) ;
107
+ return ( p ) ;
108
+ } ) ;
102
109
parts = parts . join ( '' ) ;
103
110
/*JSSTYLED*/
104
111
var md5RE = / ^ [ a - f A - F 0 - 9 ] + $ / ;
105
- if ( ! md5RE . test ( parts ) || md5RE . length % 2 !== 0 )
112
+ if ( ! md5RE . test ( parts ) || parts . length % 2 !== 0 )
106
113
throw ( new FingerprintFormatError ( fp ) ) ;
107
114
try {
108
115
hash = Buffer . from ( parts , 'hex' ) ;
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " sshpk" ,
3
- "version" : " 1.15.0 " ,
3
+ "version" : " 1.15.1 " ,
4
4
"description" : " A library for finding and using SSH public keys" ,
5
5
"main" : " lib/index.js" ,
6
6
"scripts" : {
Original file line number Diff line number Diff line change @@ -84,6 +84,18 @@ test('fingerprint matches', function(t) {
84
84
'SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w' ) ;
85
85
t . ok ( f . matches ( k2 ) ) ;
86
86
t . ok ( ! f . matches ( k1 ) ) ;
87
+ var f2 = sshpk . parseFingerprint (
88
+ '59:a4:61:0e:38:18:9f:0f:28:58:2a:27:f7:65:c5:87' ) ;
89
+ t . ok ( f2 . matches ( k1 ) ) ;
90
+ t . ok ( ! f2 . matches ( k2 ) ) ;
91
+ var f3 = sshpk . parseFingerprint (
92
+ 'MD5:59:a4:61:e:38:18:9f:f:28:58:2a:27:f7:65:c5:87' ) ;
93
+ t . ok ( f3 . matches ( k1 ) ) ;
94
+ t . ok ( ! f3 . matches ( k2 ) ) ;
95
+ var f4 = sshpk . parseFingerprint (
96
+ 'SHA1:3JP2y/wCv8KnvAunLz7EjcEhKeE' ) ;
97
+ t . ok ( f4 . matches ( k1 ) ) ;
98
+ t . ok ( ! f4 . matches ( k2 ) ) ;
87
99
t . end ( ) ;
88
100
} ) ;
89
101
@@ -118,5 +130,9 @@ test('invalid fingerprints', function(t) {
118
130
var fp = sshpk . parseFingerprint (
119
131
'59:a4:61:0e:38:18:9f:0f:28:58:2a:27:f7:65:c5:878' ) ;
120
132
} , sshpk . FingerprintFormatError ) ;
133
+ t . throws ( function ( ) {
134
+ var fp = sshpk . parseFingerprint (
135
+ '59:a46:1:0e:38:18:9f:0f:28:58:2a:27:f7:65:c5:87' ) ;
136
+ } , sshpk . FingerprintFormatError ) ;
121
137
t . end ( ) ;
122
138
} ) ;
You can’t perform that action at this time.
0 commit comments