Skip to content

Commit 3d0f9a0

Browse files
committed
Test invalid master keys with authentication
1 parent 4fa9c6d commit 3d0f9a0

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

client_test.go

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,89 @@ func TestTriggerInvalidMasterKey(t *testing.T) {
357357
assert.Contains(t, err.Error(), "valid base64")
358358
}
359359

360+
func TestAuthenticateInvalidMasterKey(t *testing.T) {
361+
server := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
362+
t.Fatal("No HTTP request should have been made")
363+
}))
364+
defer server.Close()
365+
u, _ := url.Parse(server.URL)
366+
367+
params := []byte("channel_name=private-encrypted-test_channel&socket_id=12345.12345")
368+
369+
// too short (deprecated)
370+
client := Client{
371+
AppID: "appid",
372+
Key: "key",
373+
Secret: "secret",
374+
Host: u.Host,
375+
EncryptionMasterKey: "this is 31 bytes 12345678901234",
376+
}
377+
_, err := client.AuthenticatePrivateChannel(params)
378+
assert.Error(t, err)
379+
assert.Contains(t, err.Error(), "32 bytes")
380+
381+
// too long (deprecated)
382+
client = Client{
383+
AppID: "appid",
384+
Key: "key",
385+
Secret: "secret",
386+
Host: u.Host,
387+
EncryptionMasterKey: "this is 33 bytes 1234567890123456",
388+
}
389+
_, err = client.AuthenticatePrivateChannel(params)
390+
assert.Error(t, err)
391+
assert.Contains(t, err.Error(), "32 bytes")
392+
393+
// both provided
394+
client = Client{
395+
AppID: "appid",
396+
Key: "key",
397+
Secret: "secret",
398+
Host: u.Host,
399+
EncryptionMasterKey: "this is 32 bytes 123456789012345",
400+
EncryptionMasterKeyBase64: "dGhpcyBpcyAzMiBieXRlcyAxMjM0NTY3ODkwMTIzNDU=",
401+
}
402+
_, err = client.AuthenticatePrivateChannel(params)
403+
assert.Error(t, err)
404+
assert.Contains(t, err.Error(), "both")
405+
406+
// too short
407+
client = Client{
408+
AppID: "appid",
409+
Key: "key",
410+
Secret: "secret",
411+
Host: u.Host,
412+
EncryptionMasterKeyBase64: "dGhpcyBpcyAzMSBieXRlcyAxMjM0NTY3ODkwMTIzNA==",
413+
}
414+
_, err = client.AuthenticatePrivateChannel(params)
415+
assert.Error(t, err)
416+
assert.Contains(t, err.Error(), "32 bytes")
417+
418+
// too long
419+
client = Client{
420+
AppID: "appid",
421+
Key: "key",
422+
Secret: "secret",
423+
Host: u.Host,
424+
EncryptionMasterKeyBase64: "dGhpcyBpcyAzMiBieXRlcyAxMjM0NTY3ODkwMTIzNDU2",
425+
}
426+
_, err = client.AuthenticatePrivateChannel(params)
427+
assert.Error(t, err)
428+
assert.Contains(t, err.Error(), "32 bytes")
429+
430+
// invalid base64
431+
client = Client{
432+
AppID: "appid",
433+
Key: "key",
434+
Secret: "secret",
435+
Host: u.Host,
436+
EncryptionMasterKeyBase64: "dGhp!yBpcyAzMiBieXRlcy#xMjM0NTY3ODkwMTIzNDU=",
437+
}
438+
_, err = client.AuthenticatePrivateChannel(params)
439+
assert.Error(t, err)
440+
assert.Contains(t, err.Error(), "valid base64")
441+
}
442+
360443
func TestErrorResponseHandler(t *testing.T) {
361444
server := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
362445
res.WriteHeader(400)

0 commit comments

Comments
 (0)