| 11 | ) |
| 12 | |
| 13 | func TestSignRequest(t *testing.T) { |
| 14 | require := require.New(t) |
| 15 | req, err := http.NewRequest("GET", "https://example.com/users/foo", nil) |
| 16 | req.Header.Set("Accept", "application/ld+json") |
| 17 | require.NoError(err) |
| 18 | |
| 19 | const keyID = "https://example.com#main-key" |
| 20 | privatekey, err := rsa.GenerateKey(rand.Reader, 2048) |
| 21 | require.NoError(err) |
| 22 | pubKey := &privatekey.PublicKey |
| 23 | |
| 24 | err = Sign(req, keyID, privatekey, nil) |
| 25 | require.NoError(err) |
| 26 | |
| 27 | verifier, err := httpsig.NewVerifier(req) |
| 28 | require.NoError(err) |
| 29 | require.Equal(keyID, verifier.KeyId()) |
| 30 | err = verifier.Verify(pubKey, httpsig.RSA_SHA256) |
| 31 | require.NoError(err, "req.Signature: %s", req.Header.Get("Signature")) |
| 32 | } |