signature_test.go 1.59 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
package federation
//
// GangGo Diaspora Federation Library
// Copyright (C) 2017 Lukas Matt <lukas@zauberstuhl.de>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

import (
  "testing"
Ghost User's avatar
Ghost User committed
22 23
  "crypto/rsa"
  "crypto/rand"
24 25
)

Ghost User's avatar
Ghost User committed
26 27 28 29
func TestSignature(t *testing.T) {
  var helloWorldSignature string
  var helloWorldSubject = []string{"hello", "world"}
  privKey, err := rsa.GenerateKey(rand.Reader, 2048)
30 31 32 33
  if err != nil {
    t.Errorf("Some error occured while parsing: %v", err)
  }

Ghost User's avatar
Ghost User committed
34 35
  for i, delim := range []string{SignatureDelimiter, SignatureAuthorDelimiter} {
    signature := (&signature{}).New(helloWorldSubject, delim)
36

Ghost User's avatar
Ghost User committed
37 38 39 40
    err = signature.Sign(privKey, &helloWorldSignature)
    if err != nil {
      t.Errorf("#%d: Some error occured while parsing: %v", i, err)
    }
41

Ghost User's avatar
Ghost User committed
42 43 44 45
    if helloWorldSignature == "" {
      t.Errorf("#%d: Expected non empty string, got '%s'",
        i, helloWorldSignature)
    }
46

Ghost User's avatar
Ghost User committed
47 48 49
    if !signature.Verify(&privKey.PublicKey, helloWorldSignature) {
      t.Errorf("#%d: Expected a valid signature", i)
    }
50
  }
Ghost User's avatar
Ghost User committed
51
}
52 53