@@ -38,7 +38,7 @@ test('sasl/scram', function () {
38
38
test ( 'fails when last session message was not SASLInitialResponse' , function ( ) {
39
39
assert . throws (
40
40
function ( ) {
41
- sasl . continueSession ( { } )
41
+ sasl . continueSession ( { } , '' , '' )
42
42
} ,
43
43
{
44
44
message : 'SASL: Last message was not SASLInitialResponse' ,
@@ -53,6 +53,7 @@ test('sasl/scram', function () {
53
53
{
54
54
message : 'SASLInitialResponse' ,
55
55
} ,
56
+ 'bad-password' ,
56
57
's=1,i=1'
57
58
)
58
59
} ,
@@ -69,6 +70,7 @@ test('sasl/scram', function () {
69
70
{
70
71
message : 'SASLInitialResponse' ,
71
72
} ,
73
+ 'bad-password' ,
72
74
'r=1,i=1'
73
75
)
74
76
} ,
@@ -85,7 +87,8 @@ test('sasl/scram', function () {
85
87
{
86
88
message : 'SASLInitialResponse' ,
87
89
} ,
88
- 'r=1,s=1'
90
+ 'bad-password' ,
91
+ 'r=1,s=abcd'
89
92
)
90
93
} ,
91
94
{
@@ -102,7 +105,8 @@ test('sasl/scram', function () {
102
105
message : 'SASLInitialResponse' ,
103
106
clientNonce : '2' ,
104
107
} ,
105
- 'r=1,s=1,i=1'
108
+ 'bad-password' ,
109
+ 'r=1,s=abcd,i=1'
106
110
)
107
111
} ,
108
112
{
@@ -117,12 +121,12 @@ test('sasl/scram', function () {
117
121
clientNonce : 'a' ,
118
122
}
119
123
120
- sasl . continueSession ( session , 'password' , 'r=ab,s=x ,i=1' )
124
+ sasl . continueSession ( session , 'password' , 'r=ab,s=abcd ,i=1' )
121
125
122
126
assert . equal ( session . message , 'SASLResponse' )
123
- assert . equal ( session . serverSignature , 'TtywIrpWDJ0tCSXM2mjkyiaa8iGZsZG7HllQxr8fYAo =' )
127
+ assert . equal ( session . serverSignature , 'jwt97IHWFn7FEqHykPTxsoQrKGOMXJl/PJyJ1JXTBKc =' )
124
128
125
- assert . equal ( session . response , 'c=biws,r=ab,p=KAEPBUTjjofB0IM5UWcZApK1dSzFE0o5vnbWjBbvFHA =' )
129
+ assert . equal ( session . response , 'c=biws,r=ab,p=mU8grLfTjDrJer9ITsdHk0igMRDejG10EJPFbIBL3D0 =' )
126
130
} )
127
131
} )
128
132
@@ -138,15 +142,32 @@ test('sasl/scram', function () {
138
142
)
139
143
} )
140
144
145
+ test ( 'fails when server signature is not valid base64' , function ( ) {
146
+ assert . throws (
147
+ function ( ) {
148
+ sasl . finalizeSession (
149
+ {
150
+ message : 'SASLResponse' ,
151
+ serverSignature : 'abcd' ,
152
+ } ,
153
+ 'v=x1' // Purposefully invalid base64
154
+ )
155
+ } ,
156
+ {
157
+ message : 'SASL: SCRAM-SERVER-FINAL-MESSAGE: server signature must be base64' ,
158
+ }
159
+ )
160
+ } )
161
+
141
162
test ( 'fails when server signature does not match' , function ( ) {
142
163
assert . throws (
143
164
function ( ) {
144
165
sasl . finalizeSession (
145
166
{
146
167
message : 'SASLResponse' ,
147
- serverSignature : '3 ' ,
168
+ serverSignature : 'abcd ' ,
148
169
} ,
149
- 'v=4 '
170
+ 'v=xyzq '
150
171
)
151
172
} ,
152
173
{
@@ -159,9 +180,9 @@ test('sasl/scram', function () {
159
180
sasl . finalizeSession (
160
181
{
161
182
message : 'SASLResponse' ,
162
- serverSignature : '5 ' ,
183
+ serverSignature : 'abcd ' ,
163
184
} ,
164
- 'v=5 '
185
+ 'v=abcd '
165
186
)
166
187
} )
167
188
} )
0 commit comments