this is tuto1

This commit is contained in:
nemunaire 2019-03-04 09:00:22 +01:00
commit 9262917553
19 changed files with 928 additions and 68 deletions

View file

@ -1,6 +1,7 @@
package main
import (
"bytes"
"crypto/hmac"
"crypto/sha512"
"encoding/hex"
@ -127,13 +128,35 @@ func challengePing(s *Student, t *givenToken, chid int) error {
expected = []byte("deadbeef")
}
// Allow 1 iteration or the 10 ones
var expected10 []byte
for i := 0; i < 10; i++ {
expected10 = append(expected10, expected...)
}
// Make it case insensitive
expectedC := bytes.ToUpper(expected)
expected10C := bytes.ToUpper(expected10)
pkey := s.GetPKey()
if expectedToken, err := GenerateToken(pkey, chid, expected); err != nil {
if expectedToken, err := GenerateToken(pkey, 0, expected); err != nil {
return err
} else if ! hmac.Equal(expectedToken, t.token) {
return errors.New("This is not the expected token.")
} else {
} else if hmac.Equal(expectedToken, t.token) {
return nil
} else if expectedToken, err := GenerateToken(pkey, 0, expectedC); err != nil {
return err
} else if hmac.Equal(expectedToken, t.token) {
return nil
} else if expectedToken, err := GenerateToken(pkey, 0, expected10); err != nil {
return err
} else if hmac.Equal(expectedToken, t.token) {
return nil
} else if expectedToken, err := GenerateToken(pkey, 0, expected10C); err != nil {
return err
} else if hmac.Equal(expectedToken, t.token) {
return nil
} else {
return errors.New("This is not the expected token.")
}
}