-func TestSignLocator(t *testing.T) {
- PermissionSecret = []byte(known_key)
- defer func() { PermissionSecret = nil }()
-
- if ts, err := ParseHexTimestamp(known_timestamp); err != nil {
- t.Errorf("bad known_timestamp %s", known_timestamp)
- } else {
- if known_signed_locator != SignLocator(known_locator, known_token, ts) {
- t.Fail()
- }
- }
-}
-
-func TestVerifySignature(t *testing.T) {
- PermissionSecret = []byte(known_key)
- defer func() { PermissionSecret = nil }()
-
- if !VerifySignature(known_signed_locator, known_token) {
- t.Fail()
- }
-}
-
-func TestVerifySignatureExtraHints(t *testing.T) {
- PermissionSecret = []byte(known_key)
- defer func() { PermissionSecret = nil }()
-
- if !VerifySignature(known_locator+"+K@xyzzy"+known_sig_hint, known_token) {
- t.Fatal("Verify cannot handle hint before permission signature")
- }
-
- if !VerifySignature(known_locator+known_sig_hint+"+Zfoo", known_token) {
- t.Fatal("Verify cannot handle hint after permission signature")
- }
-
- if !VerifySignature(known_locator+"+K@xyzzy"+known_sig_hint+"+Zfoo", known_token) {
- t.Fatal("Verify cannot handle hints around permission signature")
- }
-}
-
-// The size hint on the locator string should not affect signature validation.
-func TestVerifySignatureWrongSize(t *testing.T) {
- PermissionSecret = []byte(known_key)
- defer func() { PermissionSecret = nil }()
-
- if !VerifySignature(known_hash+"+999999"+known_sig_hint, known_token) {
- t.Fatal("Verify cannot handle incorrect size hint")
- }
-
- if !VerifySignature(known_hash+known_sig_hint, known_token) {
- t.Fatal("Verify cannot handle missing size hint")
- }
-}
-
-func TestVerifySignatureBadSig(t *testing.T) {
- PermissionSecret = []byte(known_key)
- defer func() { PermissionSecret = nil }()
-
- bad_locator := known_locator + "+Aaaaaaaaaaaaaaaa@" + known_timestamp
- if VerifySignature(bad_locator, known_token) {
- t.Fail()